Turinys:

„Atmega128A“proporcingas variklio vairavimas - „ATMEL ICE AVR Timer UART PWM Control“: 4 žingsniai
„Atmega128A“proporcingas variklio vairavimas - „ATMEL ICE AVR Timer UART PWM Control“: 4 žingsniai

Video: „Atmega128A“proporcingas variklio vairavimas - „ATMEL ICE AVR Timer UART PWM Control“: 4 žingsniai

Video: „Atmega128A“proporcingas variklio vairavimas - „ATMEL ICE AVR Timer UART PWM Control“: 4 žingsniai
Video: Трактористы (комедия, реж. Иван Пырьев, 1939 г.) 2024, Lapkritis
Anonim
„Atmega128A“proporcingas variklio vairavimas - „ATMEL ICE AVR Timer UART PWM Control“
„Atmega128A“proporcingas variklio vairavimas - „ATMEL ICE AVR Timer UART PWM Control“
„Atmega128A“proporcingas variklio vairavimas - „ATMEL ICE AVR Timer UART PWM Control“
„Atmega128A“proporcingas variklio vairavimas - „ATMEL ICE AVR Timer UART PWM Control“
„Atmega128A“proporcingas variklio vairavimas - „ATMEL ICE AVR Timer UART PWM Control“
„Atmega128A“proporcingas variklio vairavimas - „ATMEL ICE AVR Timer UART PWM Control“
„Atmega128A“proporcingas variklio vairavimas - „ATMEL ICE AVR Timer UART PWM Control“
„Atmega128A“proporcingas variklio vairavimas - „ATMEL ICE AVR Timer UART PWM Control“

Šioje pamokoje aš jums paaiškinsiu, kaip tai padaryti

  • valdyti nuolatinės srovės variklį su PWM
  • bendrauti per UART
  • pertraukia rankenos laikmatis

Visų pirma, mes naudosime AVR pagrindinės sistemos kūrimo plokštę, kurią galite rasti „Aliexpress“maždaug 4 USD. Plėtros lentos nuoroda yra čia. Programinei įrangai programuoti ir derinti taip pat naudosime „Atmel ICE Debugger“ir „Atmel Studio“.

1 žingsnis: giliai pasinerkite į duomenų lapą ir šaltinio kodą - laikrodžio greitis

Gilus nardymas į duomenų lapą ir šaltinio kodą - laikrodžio greitis
Gilus nardymas į duomenų lapą ir šaltinio kodą - laikrodžio greitis
Gilus nardymas į duomenų lapą ir šaltinio kodą - laikrodžio greitis
Gilus nardymas į duomenų lapą ir šaltinio kodą - laikrodžio greitis
Gilus nardymas į duomenų lapą ir šaltinio kodą - laikrodžio greitis
Gilus nardymas į duomenų lapą ir šaltinio kodą - laikrodžio greitis

1. kulkoje mes apibrėžiame savo kristalų dažnį, kur galime matyti kūrimo lentoje

2 veiksmas: UART registrų nustatymas

UART registrų nustatymas
UART registrų nustatymas
UART registrų nustatymas
UART registrų nustatymas
UART registrų nustatymas
UART registrų nustatymas
UART registrų nustatymas
UART registrų nustatymas

Norėdami bendrauti su UART, turite teisingai nustatyti USART Baud Rate Registrus - UBRRnL ir UBRRnH, galite juos apskaičiuoti patys arba galite naudoti internetinę skaičiuoklę, kad lengvai gautumėte teisingas vertes

Internetinė skaičiuoklė

ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…

Taigi MYUBBR vertė apskaičiuojama tada, UCSR0B registre įjungiame RXEN0 (recv enable) TXEN0 (perdavimo įgalinimas) ir RXCIE0 (RX pertraukimui). UCSR0C registre pasirenkame 8 bitų simbolių dydį.

Nustatę RX pertraukimo bitą, turėtume pridėti USR funkciją USART0_RX_vect

ISR (USART0_RX_vect) {char rcvChar = UDR0; if (rcvChar! = '\ n') {buferis [bufferIndex] = rcvChar; bufferIndex ++; }}

Jūs neturėtumėte daryti jokios verslo logikos pertraukdami paslaugų teikimo tvarką. Turite kuo greičiau grąžinti funkciją.

3 žingsnis: PWM nustatymai

PWM nustatymai
PWM nustatymai

Funkcijoje initPWM mes nustatome savo CPU laikrodžio skalę, laikmačio/skaitiklio režimą kaip greitą PWM ir nustatome jo elgesį su COM bitais

Taip pat turėtume prijungti nuolatinės srovės variklį prie OC2 kaiščio, kuris nurodytas 66 lentelėje. Palyginkite išvesties režimą, greitą PWM režimą mūsų duomenų lape, taip pat pamatysite, kad OC2 kaištis yra (OC2/OC1C) PB7

4 žingsnis: rezultatas

Rezultatas
Rezultatas
Rezultatas
Rezultatas

Kai įkelsite šaltinio kodą priede.

Norėdami nustatyti nuolatinės srovės variklio greitį, galite įvesti naują PWM vertę (0–255) iš UART (galite naudoti „arduino“serijinio prievado terminalą).

Rekomenduojamas: