Sisukord:

Atmega128A proportsionaalne mootoriga sõitmine - ATMEL ICE AVR taimer UART PWM juhtimine: 4 sammu
Atmega128A proportsionaalne mootoriga sõitmine - ATMEL ICE AVR taimer UART PWM juhtimine: 4 sammu

Video: Atmega128A proportsionaalne mootoriga sõitmine - ATMEL ICE AVR taimer UART PWM juhtimine: 4 sammu

Video: Atmega128A proportsionaalne mootoriga sõitmine - ATMEL ICE AVR taimer UART PWM juhtimine: 4 sammu
Video: Микроконтроллеры ATMEL - ATmega128A-AU ... 2024, November
Anonim
Atmega128A Proportsionaalne mootoriga sõitmine - ATMEL ICE AVR taimer UART PWM juhtimine
Atmega128A Proportsionaalne mootoriga sõitmine - ATMEL ICE AVR taimer UART PWM juhtimine
Atmega128A Proportsionaalne mootoriga sõitmine - ATMEL ICE AVR taimer UART PWM juhtimine
Atmega128A Proportsionaalne mootoriga sõitmine - ATMEL ICE AVR taimer UART PWM juhtimine
Atmega128A Proportsionaalne mootoriga sõitmine - ATMEL ICE AVR taimer UART PWM juhtimine
Atmega128A Proportsionaalne mootoriga sõitmine - ATMEL ICE AVR taimer UART PWM juhtimine
Atmega128A Proportsionaalne mootoriga sõitmine - ATMEL ICE AVR taimer UART PWM juhtimine
Atmega128A Proportsionaalne mootoriga sõitmine - ATMEL ICE AVR taimer UART PWM juhtimine

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

Sügav sukeldumine andmelehele ja lähtekoodi - kella kiirus
Sügav sukeldumine andmelehele ja lähtekoodi - kella kiirus
Sügav sukeldumine andmelehele ja lähtekoodi - kella kiirus
Sügav sukeldumine andmelehele ja lähtekoodi - kella kiirus
Sügav sukeldumine andmelehele ja lähtekoodi - kella kiirus
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 -registrite seadistamine
UART -registrite seadistamine
UART -registrite seadistamine
UART -registrite seadistamine
UART -registrite seadistamine
UART -registrite seadistamine
UART -registrite seadistamine
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

PWM seaded
PWM 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

Tulemus
Tulemus
Tulemus
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).

Soovitan: