Kazalo:

Atmega128A Proporcionalna vožnja motorja - ATMEL ICE AVR Timer UART PWM Control: 4 koraki
Atmega128A Proporcionalna vožnja motorja - ATMEL ICE AVR Timer UART PWM Control: 4 koraki

Video: Atmega128A Proporcionalna vožnja motorja - ATMEL ICE AVR Timer UART PWM Control: 4 koraki

Video: Atmega128A Proporcionalna vožnja motorja - ATMEL ICE AVR Timer UART PWM Control: 4 koraki
Video: Как прочитать прошивку из микроконтроллера. Краткий ликбез. 2024, November
Anonim
Atmega128A Proporcionalna vožnja motorja - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proporcionalna vožnja motorja - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proporcionalna vožnja motorja - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proporcionalna vožnja motorja - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proporcionalna vožnja motorja - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proporcionalna vožnja motorja - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proporcionalna vožnja motorja - ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proporcionalna vožnja motorja - ATMEL ICE AVR Timer UART PWM Control

V tem navodilu vam bom razložil, kako

  • krmilite enosmerni motor s PWM
  • komunicirati prek UART
  • ročaj časovnik prekinitve

Najprej bomo uporabili razvojno ploščo sistema AVR Core, ki jo najdete na Aliexpressu okoli 4 USD. Povezava razvojne plošče je tukaj. Za programiranje in odpravljanje napak naše programske opreme bomo uporabili tudi Atmel ICE Debugger in Atmel Studio.

1. korak: Poglobite se v podatkovni list in izvorno kodo - hitrost ure

Globoko potapljanje v podatkovni list in izvorno kodo - hitrost ure
Globoko potapljanje v podatkovni list in izvorno kodo - hitrost ure
Poglobitev v podatkovni list in izvorno kodo - hitrost ure
Poglobitev v podatkovni list in izvorno kodo - hitrost ure
Poglobitev v podatkovni list in izvorno kodo - hitrost ure
Poglobitev v podatkovni list in izvorno kodo - hitrost ure

V 1. črti definiramo našo kristalno frekvenco, ki jo lahko vidimo na razvojni plošči

2. korak: Nastavitev registrov UART

Nastavitev registrov UART
Nastavitev registrov UART
Nastavitev registrov UART
Nastavitev registrov UART
Nastavitev registrov UART
Nastavitev registrov UART
Nastavitev registrov UART
Nastavitev registrov UART

Če želite komunicirati z UART, morate pravilno nastaviti registre hitrosti prenosa podatkov USART - UBRRnL in UBRRnH, ki jih lahko sami izračunate ali pa z lahkoto dobite pravilne vrednosti s spletnim kalkulatorjem

Spletni kalkulator

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

Tako se izračuna vrednost MYUBBR. V registru UCSR0B omogočimo RXEN0 (omogoč. Recv) TXEN0 (omogoči prenos) in RXCIE0 (RX za prekinitev). V registru UCSR0C izberemo 8 -bitno velikost znakov.

Ko nastavimo prekinitveni bit RX, bi morali dodati funkcijo ISR za USART0_RX_vect

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

V rutini prekinitvenih storitev ne bi smeli delati poslovne logike. Funkcijo morate vrniti čim prej.

Korak: Nastavitve PWM

Nastavitve PWM
Nastavitve PWM

V funkciji initPWM nastavimo merilnik ure procesorja, način Timer/Counter kot Fast PWM in nastavimo njegovo vedenje s COM bitovi

Morali bi priključiti tudi enosmerni motor na pin OC2, ki je naveden v tabeli 66. Primerjajte izhodni način, hitri način PWM v našem podatkovnem listu, videli boste tudi, da je pin OC2 (OC2/OC1C) PB7

4. korak: Rezultat

Rezultat
Rezultat
Rezultat
Rezultat

Ko naložite izvorno kodo v prilogo.

Novo vrednost PWM (0-255) lahko vnesete iz UART (lahko uporabite terminal za serijska vrata arduino), da nastavite hitrost enosmernega motorja.

Priporočena: