Tartalomjegyzék:

Atmega128A arányos motorhajtás - ATMEL ICE AVR időzítő UART PWM vezérlés: 4 lépés
Atmega128A arányos motorhajtás - ATMEL ICE AVR időzítő UART PWM vezérlés: 4 lépés

Videó: Atmega128A arányos motorhajtás - ATMEL ICE AVR időzítő UART PWM vezérlés: 4 lépés

Videó: Atmega128A arányos motorhajtás - ATMEL ICE AVR időzítő UART PWM vezérlés: 4 lépés
Videó: Микроконтроллеры ATMEL - ATmega128A-AU ... 2024, November
Anonim
Atmega128A arányos motorhajtás - ATMEL ICE AVR időzítő UART PWM vezérlés
Atmega128A arányos motorhajtás - ATMEL ICE AVR időzítő UART PWM vezérlés
Atmega128A arányos motorhajtás - ATMEL ICE AVR időzítő UART PWM vezérlés
Atmega128A arányos motorhajtás - ATMEL ICE AVR időzítő UART PWM vezérlés
Atmega128A arányos motorhajtás - ATMEL ICE AVR időzítő UART PWM vezérlés
Atmega128A arányos motorhajtás - ATMEL ICE AVR időzítő UART PWM vezérlés
Atmega128A arányos motorhajtás - ATMEL ICE AVR időzítő UART PWM vezérlés
Atmega128A arányos motorhajtás - ATMEL ICE AVR időzítő UART PWM vezérlés

Ebben az utasításban elmagyarázom, hogyan kell

  • egyenáramú motor vezérlése PWM -el
  • kommunikálni UART -on keresztül
  • megszakítja a fogantyú időzítőjét

Először is egy AVR Core rendszerfejlesztő táblát fogunk használni, amelyet az Aliexpressen talál 4 USD körül. A Fejlesztőtábla linkje itt található. A szoftver programozásához és hibakereséséhez az Atmel ICE Debuggert és az Atmel Studiót is használjuk.

1. lépés: Mély merülés az adatlapba és a forráskódba - Óra sebessége

Mély merülés az adatlapba és a forráskódba - Óra sebesség
Mély merülés az adatlapba és a forráskódba - Óra sebesség
Mély merülés az adatlapba és a forráskódba - Óra sebesség
Mély merülés az adatlapba és a forráskódba - Óra sebesség
Mély merülés az adatlapba és a forráskódba - Óra sebesség
Mély merülés az adatlapba és a forráskódba - Óra sebesség

Az 1. pontban definiáljuk kristályfrekvenciánkat, ahol a fejlesztőtáblán láthatjuk

2. lépés: Az UART regiszterek beállítása

UART regiszterek beállítása
UART regiszterek beállítása
UART regiszterek beállítása
UART regiszterek beállítása
UART regiszterek beállítása
UART regiszterek beállítása
UART regiszterek beállítása
UART regiszterek beállítása

Az UART -val való kommunikációhoz helyesen kell beállítani az USART Baud Rate Registers - UBRRnL és UBRRnH beállításokat, akkor saját maga is kiszámíthatja, vagy használhatja az online számológépet a helyes értékek egyszerű lekéréséhez

Online kalkulátor

ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…

Tehát a MYUBBR érték kiszámítása, az UCSR0B regiszterben engedélyezzük az RXEN0 (recv enable) TXEN0 (átvitel engedélyezése) és az RXCIE0 (RX megszakítás) lehetőséget. Az UCSR0C regiszterben 8 bites karakterméretet választunk.

Miután beállítottuk az RX megszakítási bitet, hozzá kell adnunk az USR0 függvényt az USART0_RX_vecthez

ISR (USART0_RX_vect) {char rcvChar = UDR0; if (rcvChar! = '\ n') {puffer [bufferIndex] = rcvChar; bufferIndex ++; }}

Nem szabad üzleti logikát folytatnia a megszakítási szolgáltatási rutinjában. A funkciót mielőbb vissza kell állítania.

3. lépés: PWM beállítások

PWM beállítások
PWM beállítások

Az initPWM funkcióban a CPU órajel -skálázónkat, az időzítő/számláló módot gyors PWM -re állítjuk, és a viselkedését COM bitekkel állítjuk be

Ezenkívül az egyenáramú motort az OC2 tűhöz kell csatlakoztatnunk, amelyet a 66. táblázat határoz meg. Hasonlítsa össze a kimeneti módot, a gyors PWM módot az adatlapunkban, és látni fogja, hogy az OC2 tű (OC2/OC1C) PB7

4. lépés: Eredmény

Eredmény
Eredmény
Eredmény
Eredmény

Amikor feltölti a forráskódot a mellékletben.

Megadhat egy új PWM értéket (0-255) az UART-ból (használhatja az arduino soros port terminált) a DC motor fordulatszámának beállításához.

Ajánlott: