Satura rādītājs:

Atmega128A proporcionāla braukšana ar motoru - ATMEL ICE AVR taimeris UART PWM vadība: 4 soļi
Atmega128A proporcionāla braukšana ar motoru - ATMEL ICE AVR taimeris UART PWM vadība: 4 soļi

Video: Atmega128A proporcionāla braukšana ar motoru - ATMEL ICE AVR taimeris UART PWM vadība: 4 soļi

Video: Atmega128A proporcionāla braukšana ar motoru - ATMEL ICE AVR taimeris UART PWM vadība: 4 soļi
Video: Bērnu padomi bērniem: Kā pārvietoties droši ar savu braucamrīku 2024, Novembris
Anonim
Atmega128A proporcionāla braukšana ar motoru - ATMEL ICE AVR taimeris UART PWM vadība
Atmega128A proporcionāla braukšana ar motoru - ATMEL ICE AVR taimeris UART PWM vadība
Atmega128A proporcionāla braukšana ar motoru - ATMEL ICE AVR taimeris UART PWM vadība
Atmega128A proporcionāla braukšana ar motoru - ATMEL ICE AVR taimeris UART PWM vadība
Atmega128A proporcionāla braukšana ar motoru - ATMEL ICE AVR taimeris UART PWM vadība
Atmega128A proporcionāla braukšana ar motoru - ATMEL ICE AVR taimeris UART PWM vadība
Atmega128A proporcionāla braukšana ar motoru - ATMEL ICE AVR taimeris UART PWM vadība
Atmega128A proporcionāla braukšana ar motoru - ATMEL ICE AVR taimeris UART PWM vadība

Šajā pamācībā es jums paskaidrošu, kā to izdarīt

  • kontrolēt līdzstrāvas motoru ar PWM
  • sazināties, izmantojot UART
  • roktura taimeris pārtrauc

Pirmkārt, mēs izmantosim AVR Core sistēmas izstrādes plati, kuru varat atrast vietnē Aliexpress ap 4 USD. Saite uz attīstības padomi ir šeit. Programmatūras programmēšanai un atkļūdošanai mēs izmantosim arī Atmel ICE atkļūdotāju un Atmel Studio.

1. darbība: dziļa niršana datu lapā un avota kodā - pulksteņa ātrums

Dziļa niršana datu lapā un avota kodā - pulksteņa ātrums
Dziļa niršana datu lapā un avota kodā - pulksteņa ātrums
Dziļa niršana datu lapā un avota kodā - pulksteņa ātrums
Dziļa niršana datu lapā un avota kodā - pulksteņa ātrums
Dziļa niršana datu lapā un avota kodā - pulksteņa ātrums
Dziļa niršana datu lapā un avota kodā - pulksteņa ātrums

Lodē 1. mēs definējam savu kristāla frekvenci, kur mēs varam redzēt uz tāfeles

2. darbība: UART reģistru iestatīšana

UART reģistru iestatīšana
UART reģistru iestatīšana
UART reģistru iestatīšana
UART reģistru iestatīšana
UART reģistru iestatīšana
UART reģistru iestatīšana
UART reģistru iestatīšana
UART reģistru iestatīšana

Lai sazinātos ar UART, jums ir pareizi jāiestata USART Baud Rate Registers - UBRRnL un UBRRnH, jūs varat to aprēķināt pats vai arī varat izmantot tiešsaistes kalkulatoru, lai viegli iegūtu pareizās vērtības

Tiešsaistes kalkulators

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

Tātad MYUBBR vērtība tiek aprēķināta, tad reģistrā UCSR0B mēs iespējojam RXEN0 (recv enable) TXEN0 (pārraides iespējošana) un RXCIE0 (RX pārtraukumam). UCSR0C reģistrā mēs izvēlamies 8 bitu rakstzīmju lielumu.

Kad esam iestatījuši RX pārtraukšanas bitu, mums jāpievieno ISR funkcija USART0_RX_vect

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

Pārtraucot pakalpojumu, jums nevajadzētu veikt uzņēmējdarbības loģiku. Jums ir jāatgriež funkcija pēc iespējas ātrāk.

3. darbība: PWM iestatījumi

PWM iestatījumi
PWM iestatījumi

Funkcijā initPWM mēs iestatījām mūsu CPU pulksteņa mērītāju, taimera/skaitītāja režīmu kā ātru PWM un iestatījām tā darbību ar COM bitiem

Mums vajadzētu arī savienot līdzstrāvas motoru ar OC2 tapu, kas norādīta 66. tabulā. Salīdziniet izvades režīmu, ātro PWM režīmu mūsu datu lapā, jūs arī redzēsit, ka OC2 tapa ir (OC2/OC1C) PB7

4. solis: rezultāts

Rezultāts
Rezultāts
Rezultāts
Rezultāts

Augšupielādējot avota kodu pielikumā.

Jūs varat ievadīt jaunu PWM vērtību (0-255) no UART (varat izmantot arduino seriālā porta termināli), lai iestatītu līdzstrāvas motora ātrumu.

Ieteicams: