Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Selles juhendis selgitan teile, kuidas seda teha
- juhtida alalisvoolumootorit PWM -iga
- suhelda UART kaudu
- käepideme taimer katkestab
Esiteks kasutame AVR Core süsteemi arendusplaati, mille leiate Aliexpressist umbes 4 USD. Arendusplaadi link on siin. Samuti kasutame oma tarkvara programmeerimiseks ja silumiseks Atmel ICE silurit ja Atmel Stuudiot.
Samm: sügav sukeldumine andmelehele ja lähtekoodi - kella kiirus
1. täppis määratleme oma kristallsageduse, kus me näeme arenduslaual
2. samm: UART -registrite seadistamine
UART -iga suhtlemiseks peate seadistama USART Baud Rate Registers - UBRRnL ja UBRRnH õigesti, saate selle ise arvutada või kasutada veebikalkulaatorit õigete väärtuste hõlpsaks leidmiseks
Online kalkulaator
ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…
Seega arvutatakse MYUBBR väärtus, registris UCSR0B lubame RXEN0 (recv lubada) TXEN0 (edastamise lubamine) ja RXCIE0 (RX katkestamiseks). Registris UCSR0C valime 8 -bitise sümboli suuruse.
Pärast RX -i katkestusbiti seadistamist peaksime lisama ISR -funktsiooni USART0_RX_vect jaoks
ISR (USART0_RX_vect) {char rcvChar = UDR0; if (rcvChar! = '\ n') {puhver [bufferIndex] = rcvChar; bufferIndex ++; }}
Te ei tohiks oma teenuste katkestamise rutiinis ärilist loogikat teha. Peate funktsiooni võimalikult kiiresti tagastama.
Samm: PWM -i seaded
Funktsioonis initPWM seadsime oma CPU kella skaleerija, taimer/loendurirežiimi kiireks PWM -iks ja määrasime selle käitumise COM -bittidega
Samuti peaksime ühendama alalisvoolumootori OC2 tihvtiga, mis on toodud tabelis 66. Võrrelge meie andmelehe väljundrežiimi, kiiret PWM -režiimi, näete ka, et OC2 tihvt on (OC2/OC1C) PB7
4. samm: tulemus
Kui laadite manusesse lähtekoodi üles.
DC-mootori kiiruse määramiseks saate UART-ist sisestada uue PWM-väärtuse (0–255) (saate kasutada arduino jadaporti).