Obsah:
- Krok 1: Hluboké potápění do datového listu a zdrojového kódu - rychlost hodin
- Krok 2: Nastavení registrů UART
- Krok 3: Nastavení PWM
- Krok 4: Výsledek
Video: Atmega128A Proporcionální řízení motoru - ATMEL ICE AVR Timer UART PWM Control: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
V tomto návodu vám vysvětlím, jak na to
- ovládání stejnosměrného motoru pomocí PWM
- komunikovat přes UART
- zvládnout přerušení časovače
Nejprve použijeme vývojovou desku systému AVR Core, kterou najdete na Aliexpress kolem 4 USD. Odkaz na vývojovou desku je zde. K programování a ladění našeho softwaru použijeme také Atmel ICE Debugger a Atmel Studio.
Krok 1: Hluboké potápění do datového listu a zdrojového kódu - rychlost hodin
V 1. kulce definujeme naši krystalovou frekvenci, kde můžeme vidět na vývojové desce
Krok 2: Nastavení registrů UART
Abyste mohli komunikovat s UART, musíte správně nastavit registry přenosové rychlosti USART - UBRRnL a UBRRnH, můžete si to vypočítat sami nebo můžete pomocí online kalkulačky snadno získat správné hodnoty
Online kalkulačka
ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…
Takže se vypočítá hodnota MYUBBR, v registru UCSR0B povolíme RXEN0 (povolit příjem) TXEN0 (povolení přenosu) a RXCIE0 (RX pro přerušení). V registru UCSR0C vybereme 8bitovou velikost znaku.
Poté, co nastavíme bit přerušení RX, měli bychom přidat funkci ISR pro USART0_RX_vect
ISR (USART0_RX_vect) {char rcvChar = UDR0; if (rcvChar! = '\ n') {buffer [bufferIndex] = rcvChar; bufferIndex ++; }}
V rutině služby přerušení byste neměli dělat žádnou obchodní logiku. Musíte zajistit, aby se funkce vrátila co nejdříve.
Krok 3: Nastavení PWM
Ve funkci initPWM nastavíme náš scaler hodin CPU, režim Timer/Counter jako Fast PWM a nastavíme jeho chování s COM bity
Rovněž bychom měli připojit stejnosměrný motor na pin OC2, který je uveden v tabulce 66. Porovnejte výstupní režim, rychlý režim PWM v našem datovém listu, uvidíte také, že pin OC2 je (OC2/OC1C) PB7
Krok 4: Výsledek
Když nahrajete zdrojový kód v příloze.
Pro nastavení otáček motoru DC můžete zadat novou hodnotu PWM (0-255) z UART (můžete použít terminál sériového portu arduino).
Doporučuje:
Projekt řízení motoru s TB6612FNG: 4 kroky
Motor Control Project with TB6612FNG: This is just a simple project that is controlling a linear servortor and servo engine with SparkFUN TB6612FNG motor control breakout board and Arduino Uno. Vis my blog for more of my projects here
Řízení stejnosměrných motorů pomocí L298N pomocí mikrokontroléru CloudX: 3 kroky
Ovládání stejnosměrných motorů pomocí L298N pomocí mikrokontroléru CloudX: V tomto projektu si vysvětlíme, jak pomocí H-můstku L298N zvýšit a snížit rychlost stejnosměrného motoru. Modul H29 můstku L298N lze použít s motory s napětím mezi 5 a 35 V DC. K dispozici je také integrovaný 5V regulátor, takže pokud váš
Řízení motoru na bázi Arduino GSM (bez modulu GSM): 3 kroky
Řízení motoru na bázi Arduino GSM (bez modulu GSM): V tomto projektu vám ukážu základní, ale jedinečný způsob zapnutí a vypnutí čehokoli pomocí relé. S tímto nápadem přišlo několik lidí, kteří takové projekty dělají, ale měli problém, že byli všichni závislí na chování mobilního telefonu při volání. Zjednodušuji
PWM DC řízení rychlosti a světla motoru DC Dimmer: 7 kroků
PWM DC řízení rychlosti a světla motoru DC Dimmer: Dnes vám v tomto videu ukážu, jak ztlumit světla, ovládat rychlost motoru v DC nebo stejnosměrném proudu, takže začněme
SMĚR A RYCHLOST ŘÍZENÍ DC MOTORU S POUŽITÍM LABVIEW (PWM) A ARDUINO: 5 kroků
SMĚR A RYCHLOST ŘÍZENÍ DC MOTORU S POUŽITÍM LABVIEW (PWM) A ARDUINO: Dobrý den, pánové, v první řadě se omlouvám za mou zábavnou angličtinu. V tomto návodu vám ukážu, jak ovládat rychlost stejnosměrného motoru pomocí labview