INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
In hierdie instruksies sal ek u verduidelik hoe u dit moet doen
- beheer 'n GS -motor met PWM
- kommunikeer via UART
- hanteer timer onderbreek
In die eerste plek gebruik ons 'n AVR Core -stelselontwikkelingskaart wat u op Aliexpress ongeveer 4 USD kan vind. Die skakel vir ontwikkelingsbord is hier. Ons sal ook Atmel ICE Debugger en Atmel Studio gebruik om ons sagteware te programmeer en te ontfout.
Stap 1: Diep in die datablad en bronkode - kloksnelheid
In 1. die koeël definieer ons ons kristalfrekwensie waar ons op die ontwikkelingsbord kan sien
Stap 2: Stel UART -registers op
Om met UART te kommunikeer, moet u USART Baud Rate Registers - UBRRnL en UBRRnH korrek stel, u kan dit self bereken, of u kan die aanlyn sakrekenaar gebruik om die korrekte waardes maklik te kry
Aanlyn sakrekenaar
ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…
So word die MYUBBR -waarde dan bereken: in register UCSR0B aktiveer ons RXEN0 (recv enable) TXEN0 (transmit enable) en RXCIE0 (RX vir onderbreking). In register UCSR0C kies ons 8 bit char grootte.
Nadat ons die RX -onderbreekbit ingestel het, moet ons die ISR -funksie byvoeg vir USART0_RX_vect
ISR (USART0_RX_vect) {char rcvChar = UDR0; as (rcvChar! = '\ n') {buffer [bufferIndex] = rcvChar; bufferIndex ++; }}
U moet geen logika in u diensroetine doen nie. U moet die funksie so gou moontlik laat terugkeer.
Stap 3: PWM -instellings
In funksie initPWM stel ons ons CPU -klokskaler, Timer/Counter -modus as Fast PWM in en stel die gedrag daarvan op met COM -bisse
Ons moet ook die GS -motor aansluit op die OC2 -pen wat in tabel 66 gespesifiseer word. Vergelyk die uitvoermodus, die vinnige PWM -modus in ons datablad, u sal ook sien dat die OC2 -pen (OC2/OC1C) PB7 is
Stap 4: Resultaat
As u die bronkode in die aanhangsel oplaai.
U kan 'n nuwe PWM-waarde (0-255) vanaf UART invoer (u kan die arduino-seriële poortterminal gebruik) om die DC-motorsnelheid in te stel.