- Súčasti sú povinné
- Kolík Popis krokového motora
- Schéma zapojenia krokového motora pomocou modulu ULN2003
- Schéma zapojenia krokového motora pomocou modulu L293D:
- Ovládanie krokového motora pomocou AVR ATmega16
Krokové motory sú jednosmerné jednosmerné motory, ktoré sa môžu otáčať od 0 do 360 ° v krokoch. Krokový motor využíva elektronické signály na točenie motora v krokoch a každý signál otáča hriadeľ v pevnom prírastku (jeden krok). Rotačný anjel sa ovláda pomocou určitej postupnosti signálov. Na rozdiel od servomotora môžu byť krokové motory poháňané pomocou pinov GPIO mikrokontroléra namiesto pinov PWM a môžu sa otáčať v (+360 0) a (-360 0). Poradie signálov určuje krokový motor v smere a proti smeru hodinových ručičiek. Na riadenie rýchlosti motora stačí zmeniť rýchlosť použitých riadiacich signálov. Krokové motory sa otáčajú postupne. Existuje niekoľko režimov krokov na obsluhu krokového motora, ako napríklad celý krok, polkrok a mikrokrok. Ak sa chcete dozvedieť viac o základoch, teórii a princípe fungovania krokového motora, kliknite na odkaz.
Predtým sme prepojili krokový motor s mnohými mikrokontrolérmi:
- Prepojovací krokový motor s ARM7-LPC2148
- Prepojovací krokový motor s Arduino Uno
- Prepojovací krokový motor s MSP430G2
- Prepojovací krokový motor s STM32F103C8
- Prepojovací krokový motor s mikrokontrolérom PIC
- Prepojovací krokový motor s mikrokontrolérom 8051
- Prepojovací krokový motor s Raspberry Pi
V tomto výučbe prepojíme krokový motor 28BYJ-48 s mikrokontrolérom Atmega16 AVR pomocou programu Atmel Studio 7.0. Krokový motor je dimenzovaný na prácu s napätím 5 V. Budeme prepojovať krokový motor s obidvomi vodičmi motora, tj s ULN2003 a L293. Oba budú poháňané 5V napájaním. Pre zjednodušenie prepojenia používame pred zostavením modul oboch ovládačov motora. Môžete tiež použiť samostatné integrované obvody ULN2003 a L293D. Počet vodičov a prepojok môže byť viac, takže pri pripájaní všetkých pripojení buďte opatrní.
Súčasti sú povinné
- Krokový motor (28BYJ-48)
- Ovládač motora ULN2003 / L293D
- Integrovaný obvod mikrokontroléra Atmega16
- Krištáľový oscilátor 16 MHz
- Dva kondenzátory 100nF
- Dva kondenzátory 22pF
- Tlačidlo
- Prepojovacie drôty
- Nepál
- USBASP v2.0
- LED (ľubovoľná farba)
Kolík Popis krokového motora
Schéma zapojenia krokového motora pomocou modulu ULN2003
Pri použití ULN2003 pripojte všetky komponenty, ako je znázornené na obrázku nižšie. Podobne to v ďalšom kroku prepojíme pomocou L293D. Na prepojenie krokového motora pre obidva ovládače motora používame PORTA z Atmega16. Nie je potrebné pripájať 5V pin krokového motora. Na pohyb krokového motora sú potrebné iba kolíky cievky. Poradie pinov je pre pohon krokového motora veľmi dôležité, pretože napájanie cievok by malo byť na dosiahnutie krokov. V tomto projekte sú použité štyri vstupy ULN2003 a štyri výstupy ULN2003. Vstupy budú pripojené k pinom PORTA a výstupy k pinom krokového motora. Pripojte tiež jedno tlačidlo do kolíka Reset na resetovanie Atmega16, kedykoľvek je to potrebné. Pripojte Atmega16 k správnemu obvodu kryštálového oscilátora. Celý systém bude napájaný zdrojom 5 V.
Nižšie je uvedený skutočný obrázok modulu ovládača motora ULN2003:
Ďalej uvádzame pinové pripojenie Atmega16 s ULN2003 a L293D na otáčanie krokového motora. Prepojenie krokového motora s modulom L293D je vysvetlené v ďalšej časti. Pamätajte, že na riadenie krokového motora je potrebný iba jeden modul ULN2003 alebo L293D.
Pinové pripojenia pre VSTUP sú nasledovné:
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é pripojenia pre VÝSTUP sú nasledujúce:
Krokový motor |
ULN2003 |
L293D |
Oranžová |
OUT1 (PIN16) |
OUT1 (PIN3) |
žltá |
OUT2 (PIN15) |
OUT2 (PIN6) |
Ružová |
OUT3 (PIN14) |
OUT3 (PIN11) |
Modrá |
OUT4 (PIN13) |
OUT4 (PIN14) |
Schéma zapojenia krokového motora pomocou modulu L293D:
Ovládanie krokového motora pomocou AVR ATmega16
Ako už bolo povedané, na rozdiel od servomotorov, krokové motory potrebujú externé ovládače, napr. Ovládač motora ULN2003 alebo L293D. Takže stačí pripojiť obvod ako je uvedené vyššie a nahrať program main.c uvedený na konci.
Náčrt ukazuje, že krokový motor sa otáča obojstranne, tj v smere hodinových ručičiek a proti smeru hodinových ručičiek. Ak chcete stepper otočiť jedným smerom, jednoducho v skici odkomentujte kódové riadky iného smeru.
Kompletný AVR kód na ovládanie krokového motora je uvedený nižšie. Kód je jednoduchý a dá sa ľahko pochopiť. Ďalej sú uvedené dva kódy, jeden pre rotačný krokový motor s ULN2003 a druhý pre modul L293D.
Pripojte svoj USBASP v2.0 a podľa pokynov v tomto odkaze naprogramujte mikrokontrolér Atmega16 AVR pomocou USBASP a Atmel Studio 7.0. Stačí zostaviť náčrt a nahrať pomocou externého reťazca nástrojov.
Kompletný kód s demonštračným videom je uvedený nižšie.