- Žingsniniai varikliai:
- Apskaičiuojant žingsnių per variklį žingsnių skaičių:
- Kodėl mums reikalingi „Stepper“ variklių vairuotojo moduliai?
- „Arduino“ žingsninio variklio padėties valdymo grandinės schema ir paaiškinimas:
- „Arduino“ lentos kodas:
- „Stepper Motor“ su „Arduino“ darbas:
Stepper varikliai vis labiau užima savo pozicijas elektronikos pasaulyje. Pradedant nuo įprastos stebėjimo kameros ir baigiant sudėtingomis CNC mašinomis / robotais, šie žingsniniai varikliai naudojami visur kaip pavaros, nes jie užtikrina tikslų valdymą. „Stepper“ variklis yra sinchroninis variklis be šepetėlių, kuris visiškai sukasi į keletą pakopų. Šioje „ Arduino“ žingsninio variklio pamokoje sužinosime apie dažniausiai turimą žingsninį variklį 28-BYJ48 ir kaip jį susieti su „ Arduino“ naudojant „ ULN2003“ žingsninio variklio modulį.
Žingsniniai varikliai:
Pažvelkime į šį 28-BYJ48 Stepper variklį.
Gerai, taigi, skirtingai nuo įprasto nuolatinės srovės variklio, iš jo išeina penki laidai iš visų spalvų ir kodėl taip yra? Norėdami tai suprasti, pirmiausia turėtume žinoti, kaip veikia steperis ir kokia jo specialybė. Visų pirma, žingsniniai varikliai nesisuka, jie žingsniuoja ir taip dar vadinami žingsniniais varikliais. Reiškia, jie vienu metu judės tik vienu žingsniu. Šiuose varikliuose yra ritinių seka, todėl norint, kad variklis suktųsi, šias rites reikia įjungti tam tikru būdu. Kai kiekviena ritė yra įjungta, variklis žengia žingsnį, o įjungus energiją, variklis imsis nuolatinių žingsnių ir taip sukasi. Pažvelkime į variklio viduje esančias rites, kad tiksliai žinotume, iš kur šie laidai.
Kaip matote, variklis turi „Unipolar“ 5 laidų ritės išdėstymą. Yra keturios ritės, kurias reikia įjungti tam tikra seka. Raudoni laidai bus tiekiami su + 5 V įtampa, o likusieji keturi laidai bus ištraukti į žemę, kad suaktyvintų atitinkamą ritę. Mes naudojame mikrovaldiklį, pvz., „Arduino“, įjungdami šias rites tam tikra seka ir priverčiant variklį atlikti reikiamą skaičių veiksmų.
Taigi, kodėl šis variklis vadinamas 28-BYJ48 ? Rimtai !!! Nežinau. Nėra jokios techninės priežasties, kodėl šis variklis taip pavadintas; gal turėtume pasinerti į jį daug giliau. Pažvelkime į kai kuriuos svarbius techninius duomenis, gautus iš šio variklio duomenų lapo, esančio žemiau esančiame paveikslėlyje.
Tai galva, pilna informacijos, tačiau turime žinoti kelis svarbius dalykus, kad žinotume, kokio tipo steperius naudojame, kad galėtume efektyviai jį užprogramuoti. Pirmiausia mes žinome, kad tai yra 5 V žingsninis variklis, nes mes įjungiame raudoną laidą 5 V įtampa. Tada mes taip pat žinome, kad tai yra keturių fazių žingsninis variklis, nes jame buvo keturios ritės. Dabar pavaros santykis yra 1:64. Tai reiškia, kad velenas, kurį matote išorėje, sukasi vieną kartą tik tuo atveju, jei variklis viduje sukasi 64 kartus. Taip yra dėl pavarų, sujungtų tarp variklio ir išėjimo veleno, šios pavaros padeda padidinti sukimo momentą.
Kiti svarbūs pastebimi duomenys yra žingsnio kampas: 5,625 ° / 64. Tai reiškia, kad variklis, dirbdamas 8 pakopų seka, judės po 5,625 laipsnius kiekvienam žingsniui, o norint atlikti vieną pilną sukimąsi reikės 64 žingsnių (5,625 * 64 = 360). Galite sužinoti daugiau apie žingsninių variklių darbą su ARM LPC2148, ATMega16 mikrovaldikliu, MSP430.
Apskaičiuojant žingsnių per variklį žingsnių skaičių:
Svarbu žinoti, kaip apskaičiuoti žingsnių per žingsnį žingsninį variklį, nes tik tada galite jį efektyviai užprogramuoti.
„Arduino“ variklį veiksime 4 pakopomis, taigi žingsnio kampas bus 11,25 °, nes jis yra 5,625 ° (nurodytas duomenų lape), o 8 žingsnių sekoje jis bus 11,25 ° (5,625 * 2 = 11,25).
Žingsniai per apsisukimą = 360 / žingsnio kampas
Čia 360 / 11,25 = 32 žingsniai per apsisukimą.
Kodėl mums reikalingi „Stepper“ variklių vairuotojo moduliai?
Dauguma žingsninių variklių veiks tik su vairuotojo modulio pagalba. Taip yra todėl, kad valdiklio modulis (mūsų atveju „Arduino“) negalės tiekti pakankamai srovės iš jo įvesties / išvesties kaiščių, kad variklis galėtų veikti. Taigi kaip žingsninio variklio tvarkyklę naudosime išorinį modulį, pvz., ULN2003 modulį. Yra daugybė vairuotojo modulių tipų, o vieno įvertinimas pasikeis atsižvelgiant į naudojamo variklio tipą. Pagrindinis visų vairuotojo modulių principas bus tiekti / panardinti pakankamai srovės, kad variklis galėtų veikti.
„Arduino“ žingsninio variklio padėties valdymo grandinės schema ir paaiškinimas:
„ Arduino“ žingsninio variklio valdymo projekto schema parodyta aukščiau. Mes naudojome 28BYJ-48 Stepper variklį ir ULN2003 Driver modulį. Norėdami įjungti keturias žingsninio variklio ritines, mes naudojame skaitmeninius kaiščius 8, 9, 10 ir 11. Vairuotojo modulis maitinamas „Arduino“ plokštės 5 V kaiščiu.
Bet maitindami tvarkyklę naudokite išorinį maitinimo šaltinį, kai prie stepių variklio prijungiate tam tikrą apkrovą. Kadangi aš tiesiog naudoju variklį demonstravimo tikslais, aš naudoju „Arduino“ plokštės bėgį + 5 V. Taip pat nepamirškite prijungti „Arduino“ pagrindą su „Diver“ modulio žeme.
„Arduino“ lentos kodas:
Prieš pradėdami programuoti su „Arduino“, leiskite mums suprasti, kas iš tikrųjų turėtų vykti programos viduje. Kaip minėjome anksčiau, naudosime 4 pakopų sekos metodą, todėl turėsime atlikti keturis žingsnius, kad atliktume vieną pilną pasukimą.
Žingsnis |
Kaištis įjungtas |
Ritės įjungtos |
1 žingsnis |
8 ir 9 |
A ir B |
2 žingsnis |
9 ir 10 |
B ir C |
3 žingsnis |
10 ir 11 |
C ir D |
4 žingsnis |
11 ir 8 |
D ir A |
„Driver“ modulyje bus keturi šviesos diodai, kuriais naudodamiesi galėsime patikrinti, kuri ritė yra įjungta bet kuriuo metu. Vaizdo įrašą, kuriame rodoma energijos įvedimo seka, rasite šios pamokos pabaigoje.
Šioje pamokoje mes parašysime „ arduino“ žingsninio variklio kodą ir tam užprogramuosime „Arduino “ taip, kad per nuoseklų „Arduino“ monitorių galėtume įvesti žingsnių, kuriuos turi atlikti žingsninis variklis, skaičių. Visą programą rasite pamokos pabaigoje, keletas svarbių eilučių yra paaiškintos žemiau.
Apskaičiuota, kad mūsų žingsninio variklio žingsnių skaičius per apsisukimą yra 32; taigi mes įvedame tai, kaip parodyta žemiau esančioje eilutėje
#define 32 VEIKSMAI
Tada turite sukurti egzempliorius, kuriuose nurodome kaiščius, prie kurių prijungėme „Stepper“ variklį.
Žingsnis steperis (STEPS, 8, 10, 9, 11);
Pastaba: kaiščių skaičius netiksliai nustatytas kaip 8,10,9,11. Jūs turite laikytis to paties modelio, net jei pakeisite kaiščius, prie kurių prijungtas jūsų variklis.
Kadangi mes naudojame „Arduino“ stepper biblioteką, mes galime nustatyti variklio greitį naudodami žemiau pateiktą eilutę. 28-BYJ48 žingsninių variklių greitis gali svyruoti nuo 0 iki 200.
stepper.setSpeed (200);
Dabar, kad variklis judėtų vienu žingsniu, galime naudoti šią eilutę.
stepper.step (val);
Perkeliamų žingsnių skaičių pateiks kintamasis „val“. Kadangi mes turime 32 žingsnius ir 64 kaip pavaros santykį, turime judėti 2048 m. (32 * 64 = 2048), kad atliktume vieną pilną apsisukimą.
Kintamojo „val“ vertę vartotojas gali įvesti naudodamas nuoseklųjį monitorių.
„Stepper Motor“ su „Arduino“ darbas:
Užmezgus ryšį, aparatūra turėtų atrodyti panašiai, kaip parodyta toliau pateiktame paveikslėlyje.
Dabar įkelkite toliau nurodytą programą į „Arduino UNO“ ir atidarykite nuoseklųjį monitorių. Kaip jau aptarta anksčiau, turėsime atlikti 2048 žingsnius, kad galėtume sukti vieną kartą, taigi, įvažiavus į 2048 m., Variklis atliks vieną pilną sukimąsi pagal laikrodžio rodyklę, atlikdamas 2048 žingsnius. Norėdami pasukti prieš laikrodžio rodyklę, tiesiog įveskite skaičių su neigiamu ženklu „-“. Taigi, įvedus -1024, variklis sukasi pusę kelio prieš laikrodžio rodyklę. Galite įvesti bet kokias norimas reikšmes, pvz., Įvedę 1, variklis turės atlikti tik vieną žingsnį.
Tikiuosi, kad supratote projektą ir patiko jį kurti. Visas projekto darbas parodytas žemiau esančiame vaizdo įraše. Jei turite kokių nors abejonių, paskelbkite juos komentarų skiltyje žemiau mūsų forumuose.