Talaan ng mga Nilalaman:

Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer UART PWM Control: 4 Hakbang
Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer UART PWM Control: 4 Hakbang

Video: Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer UART PWM Control: 4 Hakbang

Video: Atmega128A Proportional Motor Driving - ATMEL ICE AVR Timer UART PWM Control: 4 Hakbang
Video: Driving a DC motor with software PWM on AVR ATmega 2024, Nobyembre
Anonim
Atmega128A Proportional Motor Driving - Pagkontrol ng ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proportional Motor Driving - Pagkontrol ng ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proportional Motor Driving - Pagkontrol ng ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proportional Motor Driving - Pagkontrol ng ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proportional Motor Driving - Pagkontrol ng ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proportional Motor Driving - Pagkontrol ng ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proportional Motor Driving - Pagkontrol ng ATMEL ICE AVR Timer UART PWM Control
Atmega128A Proportional Motor Driving - Pagkontrol ng ATMEL ICE AVR Timer UART PWM Control

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

Malalim na Pagsisid Sa Datasheet at Source Code - Bilis ng Orasan
Malalim na Pagsisid Sa Datasheet at Source Code - Bilis ng Orasan
Malalim na Pagsisid Sa Datasheet at Source Code - Bilis ng Orasan
Malalim na Pagsisid Sa Datasheet at Source Code - Bilis ng Orasan
Malalim na Pagsisid Sa Datasheet at Source Code - Bilis ng Orasan
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

Pagtatakda ng Mga Rehistro ng UART
Pagtatakda ng Mga Rehistro ng UART
Pagtatakda ng Mga Rehistro ng UART
Pagtatakda ng Mga Rehistro ng UART
Pagtatakda ng Mga Rehistro ng UART
Pagtatakda ng Mga Rehistro ng UART
Pagtatakda ng Mga Rehistro ng UART
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

Mga setting ng PWM
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

Resulta
Resulta
Resulta
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.

Inirerekumendang: