Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Sa itinuturo na ito, ipapaliwanag ko sa iyo kung paano
- kontrolin ang isang DC motor na may PWM
- makipag-usap sa pamamagitan ng UART
- nakakagambala ang timer
Una sa lahat, gagamit kami ng isang AVR Core system Development board na maaari mong makita sa Aliexpress sa paligid ng 4 USD. Narito ang link ng Development board. Gagamitin din namin ang Atmel ICE Debugger at Atmel Studio upang i-program at i-debug ang aming software.
Hakbang 1: Malalim na Pagsisid Sa Datasheet at Source Code - Bilis ng Orasan
Sa 1. ang bala ay tinukoy namin ang aming dalas ng kristal kung saan maaari naming makita sa development board
Hakbang 2: Pagtatakda ng Mga Rehistro ng UART
Upang makipag-usap sa UART kailangan mong itakda ang USART Baud Rate Registro - UBRRnL at UBRRnH nang tama maaari mong kalkulahin ito sa iyong sarili o maaari mong gamitin ang online calculator upang makakuha ng wastong mga halaga
Online Calculator
ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…
Kaya't ang halaga ng MYUBBR ay kinakalkula pagkatapos, Sa pagrehistro ng UCSR0B pinapagana namin ang RXEN0 (recv paganahin) TXEN0 (ipadala ang paganahin) at RXCIE0 (RX para makagambala). Sa pagrehistro ng UCSR0C pinili namin ang 8 bit na laki ng char.
Matapos naming itakda ang RX makagambala kaunti, dapat naming idagdag ang pagpapaandar ng ISR para sa USART0_RX_vect
ISR (USART0_RX_vect) {char rcvChar = UDR0; kung (rcvChar! = '\ n') {buffer [bufferIndex] = rcvChar; bufferIndex ++; }}
Hindi ka dapat gumawa ng anumang lohika sa negosyo sa iyong nakakagambala na gawain sa serbisyo. Kailangan mong ibalik ang pagpapaandar nang mabilis.
Hakbang 3: Mga Setting ng PWM
Sa pagpapaandar initPWM itinakda namin ang aming CPU orasan scaler, Timer / Counter mode bilang Mabilis na PWM at itinakda ang pag-uugali nito sa mga COM bit
Dapat din nating ikonekta ang DC motor sa OC2 pin na tinukoy sa Talaan 66. Ihambing ang Output Mode, Mabilis na PWM Mode sa aming datasheet, makikita mo rin na ang OC2 pin ay (OC2 / OC1C) PB7
Hakbang 4: Resulta
Kapag na-upload mo ang source code sa kalakip.
Maaari kang magpasok ng isang bagong halaga ng PWM (0-255) mula sa UART (maaari mong gamitin ang arduino serial port terminal) upang maitakda ang bilis ng DC Motor.