- Būtini komponentai
- „Stepper“ variklio kaiščio aprašymas
- Grandinės variklio valdymo naudojant ULN2003 modulį schema
- Grandinės variklio valdymo naudojant L293D modulį schema:
- Žingsninio variklio valdymas naudojant AVR ATmega16
Žingsniniai varikliai yra nuolatinės srovės varikliai be šepetėlių, kurie gali pasisukti nuo 0 0 iki 360 0 pakopomis. Žingsninis variklis naudoja elektroninius signalus, kad suktų variklį pakopomis, o kiekvienas signalas sukasi ašį fiksuotu žingsniu (vienas žingsnis). Sukimosi angelas valdomas taikant tam tikrą signalų seką. Skirtingai nuo servovariklio, pakopinius variklius galima valdyti naudojant ne PWM kaiščius, o mikrokontrolerio GPIO kaiščius. Jie gali pasisukti (+360 0) ir (-360 0)). Signalų tvarka nustato žingsnio variklio kryptį pagal laikrodžio rodyklę ir prieš laikrodžio rodyklę. Norėdami valdyti variklio greitį, mes tiesiog turime pakeisti naudojamų valdymo signalų greitį. Žingsniniai varikliai sukasi pakopomis. Yra keli žingsnių režimai, skirti valdyti žingsninį variklį, pavyzdžiui, visas žingsnis, pusė žingsnio ir mikropelnas. Norėdami sužinoti daugiau apie žingsninio variklio pagrindus, teoriją ir veikimo principą, sekite nuorodą.
Anksčiau mes sujungėme „Stepper“ variklį su daugeliu mikrovaldiklių:
- Sąveikaujantis žingsninis variklis su ARM7-LPC2148
- „Stepper“ variklio sąsaja su „Arduino Uno“
- Sąveikaujantis žingsninis variklis su MSP430G2
- Sąveikaujantis žingsninis variklis su STM32F103C8
- Sąveikaujantis žingsninis variklis su PIC mikrovaldikliu
- Sąveikaujantis žingsninis variklis su 8051 mikrovaldikliu
- Sąveikaujantis žingsninis variklis su „Raspberry Pi“
Šioje pamokoje mes sąveikausime 28BYJ-48 žingsninį variklį su „Atmega16 AVR“ mikrovaldikliu, naudodami „Atmel Studio 7.0“. Žingsninis variklis veikia 5 V įtampa. Mes sujungsime žingsninį variklį su abiem varikliais, ty ULN2003 ir L293. Abu jie bus varomi 5 V maitinimo šaltiniu. Siekdami supaprastinti sąsają, mes naudojame abiejų variklių vairuotojų išankstinio kūrimo modulį. Taip pat galite naudoti ULN2003 ir L293D atskirus IC. Laidų ir džemperių gali būti daugiau, todėl tiesiog būkite atsargūs, jungdami visas jungtis.
Būtini komponentai
- Žingsninis variklis (28BYJ-48)
- ULN2003 modulio / L293D variklio tvarkyklė
- „Atmega16“ mikrovaldiklio IC
- 16Mhz kristalinis osciliatorius
- Du 100nF kondensatoriai
- Du 22pF kondensatoriai
- Paspauskite mygtuką
- Šuolių laidai
- Bandomoji Lenta
- „USBASP v2.0“
- Led (bet kokios spalvos)
„Stepper“ variklio kaiščio aprašymas
Grandinės variklio valdymo naudojant ULN2003 modulį schema
Naudodami ULN2003 prijunkite visus komponentus, kaip parodyta toliau pateiktoje diagramoje. Panašiai mes jį susiesime naudodami L293D kitame etape. Mes naudojame „Atmega16“ PORTA, kad sujungtume abiejų variklių vairuotojų žingsninį variklį. Nereikia prijungti 5 V koto žingsninio variklio. Žingsniniam varikliui judėti reikalingi tik ritės kaiščiai. Smeigtukų tvarka yra labai svarbi norint valdyti žingsninį variklį, nes ritiniams reikia įjungti energiją, kad būtų galima pasiekti žingsnius. Šiame projekte naudojami keturi ULN2003 įėjimai ir keturi ULN2003 išėjimai. Įėjimai bus prijungti prie PORTA kaiščių, o išėjimai - prie „Stepper Motor Signal“ kaiščių. Be to, prijunkite vieną mygtuką „Reset pin“, kad atkurtumėte „Atmega16“, kai to reikia. Prijunkite „Atmega16“ su tinkama kristalinio osciliatoriaus grandine. Visa sistema bus maitinama iš 5 V maitinimo šaltinio.
Žemiau yra tikrasis ULN2003 variklio tvarkyklės modulio paveikslėlis:
Žemiau pateikėme „Atmega16“ kaiščių jungtis su ULN2003 ir L293D, kad pasuktumėte žingsninį variklį. Žingsninio variklio sąsaja su L293D moduliu paaiškinta tolesniame skyriuje. Atminkite, kad žingsninio variklio valdymui reikalingas tik vienas modulis - ULN2003 arba L293D.
INPUT kaiščių jungtys yra šios:
16. „Atmega“ |
ULN2003 |
L293D |
A0 |
IN1 (PIN1) |
IN1 (PIN2) |
A1 |
IN2 (PIN2) |
IN2 (PIN7) |
A2 |
IN3 (PIN3) |
IN3 (PIN10) |
A3 |
IN4 (PIN4) |
IN4 (PIN15) |
OUTPUT kaiščių jungtys yra šios:
Žingsninis variklis |
ULN2003 |
L293D |
Oranžinė |
OUT1 (PIN16) |
OUT1 (PIN3) |
Geltona |
OUT2 (PIN15) |
OUT2 (PIN6) |
Rožinis |
OUT3 (PIN14) |
OUT3 (PIN11) |
Mėlyna |
OUT4 (PIN13) |
OUT4 (PIN14) |
Grandinės variklio valdymo naudojant L293D modulį schema:
Žingsninio variklio valdymas naudojant AVR ATmega16
Kaip jau minėta, skirtingai nei „Servo“ variklis, „Stepper“ varikliams reikalingos išorinės tvarkyklės, pvz., ULN2003 arba L293D variklio tvarkyklės. Taigi tiesiog prisijungti grandinė, kaip nurodyta pirmiau, ir įkelkite main.c programoje, atsižvelgiant pabaigoje.
Eskizas parodo žingsninio variklio sukimąsi abiejose pusėse, ty pagal laikrodžio rodyklę ir prieš laikrodžio rodyklę. Jei norite pasukti žingsnį viena kryptimi, eskize paprasčiausiai pakomentuokite kitos krypties kodo eilutes.
Pilnas AVR kodas, skirtas valdyti žingsninį variklį, pateiktas žemiau. Kodas yra paprastas ir lengvai suprantamas. Žemiau pateikiami du kodai, vienas skirtas sukamam žingsniniam varikliui su ULN2003, o antrasis - su L293D moduliu.
Prijunkite USBASP v2.0 ir vykdykite šioje nuorodoje pateiktas instrukcijas, kad programuotumėte „Atmega16 AVR“ mikrovaldiklį naudodami USBASP ir „Atmel Studio 7.0“. Tiesiog sukurkite eskizą ir įkelkite naudodami išorinę įrankių grandinę.
Visas kodas su demonstraciniu vaizdo įrašu pateiktas žemiau.