- Požadované komponenty
- Pin Popis krokového motoru
- Schéma zapojení krokového motoru pomocí modulu ULN2003
- Schéma zapojení krokového motoru pomocí modulu L293D:
- Ovládání krokového motoru s AVR ATmega16
Krokové motory jsou stejnosměrné střídavé motory, které se mohou otáčet z 0 0, aby o 360 0 v krocích. Krokový motor používá elektronické signály k otáčení motoru v krocích a každý signál otáčí hřídel v pevném přírůstku (jeden krok). Rotační anděl je řízen použitím určité posloupnosti signálů. Na rozdíl od servomotoru mohou být krokové motory poháněny pomocí pinů GPIO mikrokontroléru namísto pinů PWM a mohou se otáčet v (+360 0) a (-360 0). Pořadí signálů určuje krokový motor proti směru hodinových ručiček a proti směru hodinových ručiček. Pro řízení rychlosti motoru stačí změnit rychlost aplikovaných řídicích signálů. Krokové motory se otáčejí v krocích. Existuje několik režimů kroků k ovládání krokového motoru, jako je celý krok, půl krok a mikrokrok. Chcete-li se dozvědět více o základech, teorii a principu činnosti krokového motoru, klikněte na odkaz.
Dříve jsme propojili krokový motor s mnoha mikrokontroléry:
- Propojovací krokový motor s ARM7-LPC2148
- Propojovací krokový motor s Arduino Uno
- Propojovací krokový motor s MSP430G2
- Propojovací krokový motor s STM32F103C8
- Propojovací krokový motor s mikrokontrolérem PIC
- Propojovací krokový motor s mikrokontrolérem 8051
- Propojovací krokový motor s Raspberry Pi
V tomto tutoriálu budeme propojovat krokový motor 28BYJ-48 s mikrokontrolérem Atmega16 AVR pomocí Atmel Studio 7.0. Krokový motor je dimenzován pro práci v 5V. Budeme propojovat krokový motor s oběma ovladači motoru, tj. ULN2003 a L293. Oba budou poháněny 5V napájením. Abychom zjednodušili propojení, používáme prebuild modul obou ovladačů motoru. Můžete také použít samostatné integrované obvody ULN2003 a L293D. Počet vodičů a propojek může být více, takže při připojování všech připojení buďte opatrní.
Požadované komponenty
- Krokový motor (28BYJ-48)
- Ovladač motoru ULN2003 / L293D
- IC mikrokontroléru Atmega16
- 16MHz krystalový oscilátor
- Dva 100nF kondenzátory
- Dva kondenzátory 22pF
- Stiskněte tlačítko
- Propojovací dráty
- Nepájivá deska
- USBASP v2.0
- LED (libovolná barva)
Pin Popis krokového motoru
Schéma zapojení krokového motoru pomocí modulu ULN2003
Pokud používáte ULN2003, připojte všechny komponenty, jak je znázorněno na následujícím obrázku. Podobně jej v dalším kroku propojíme pomocí L293D. Používáme PORTA Atmega16 k propojení krokového motoru pro oba ovladače motoru. Není třeba připojovat 5V pin krokového motoru. K pohybu krokového motoru jsou zapotřebí pouze kolíky cívky. Pořadí kolíků je pro pohon krokového motoru velmi důležité, protože k dosažení kroků by mělo být napájení cívek. V tomto projektu jsou použity čtyři vstupy ULN2003 a čtyři výstupy ULN2003. Vstupy budou spojeny s piny PORTA a výstupy s piny krokového motoru. Připojte také jedno tlačítko do kolíku Reset pro resetování Atmega16, kdykoli je to potřeba. Připojte Atmega16 se správným obvodem krystalového oscilátoru. Celý systém bude napájen napájením 5 V.
Níže je uveden skutečný obrázek modulu ovladače motoru ULN2003:
Níže jsme uvedli pinové připojení Atmega16 s ULN2003 a L293D pro otáčení krokového motoru. Propojení krokového motoru s modulem L293D je vysvětleno v další části, nezapomeňte, že pro řízení krokového motoru je vyžadován pouze jeden modul ULN2003 nebo L293D.
Pinová připojení pro VSTUP jsou následující:
16. Atmega |
ULN2003 |
L293D |
A0 |
IN1 (PIN1) |
IN1 (PIN2) |
A1 |
IN2 (PIN2) |
IN2 (PIN7) |
A2 |
IN3 (PIN3) |
IN3 (PIN10) |
A3 |
IN4 (PIN4) |
IN4 (PIN15) |
Pinová připojení pro VÝSTUP jsou následující:
Krokový motor |
ULN2003 |
L293D |
oranžový |
OUT1 (PIN16) |
OUT1 (PIN3) |
Žlutá |
OUT2 (PIN15) |
OUT2 (PIN6) |
Růžový |
OUT3 (PIN14) |
OUT3 (PIN11) |
Modrý |
OUT4 (PIN13) |
OUT4 (PIN14) |
Schéma zapojení krokového motoru pomocí modulu L293D:
Ovládání krokového motoru s AVR ATmega16
Jak již bylo řečeno na rozdíl od servomotoru, krokové motory potřebují externí ovladače, např. Ovladač motoru ULN2003 nebo L293D. Stačí tedy připojit obvod, jak je uvedeno výše, a nahrát program main.c uvedený na konci.
Náčrt ukazuje, že krokový motor se otáčí na obou stranách, tj. Ve směru hodinových ručiček a proti směru hodinových ručiček. Pokud chcete otočit krokovač v jednom směru, jednoduše v náčrtu zakomentujte řádky kódu jiného směru.
Kompletní AVR kód pro ovládání krokového motoru je uveden níže. Kód je jednoduchý a lze mu snadno porozumět. Níže jsou uvedeny dva kódy, jeden pro rotační krokový motor s ULN2003 a druhý s modulem L293D.
Připojte svůj USBASP v2.0 a podle pokynů v tomto odkazu naprogramujte mikrokontrolér Atmega16 AVR pomocí USBASP a Atmel Studio 7.0. Stačí vytvořit náčrt a nahrát pomocí externího řetězce nástrojů.
Kompletní kód s ukázkovým videem je uveden níže.