- Žingsniniai varikliai:
- Apskaičiuojant žingsnių per variklį žingsnių skaičių:
- Kodėl mums reikalingi „Stepper“ variklių vairuotojo moduliai?
- Besisukančio žingsninio variklio, naudojant potenciometrą, grandinės schema:
- „Arduino“ lentos kodas:
- 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ą. Šioje pamokoje sužinosime apie dažniausiai / pigiausiai gaunamą žingsninį variklį 28-BYJ48 ir kaip jį susieti su „ Arduino“ naudojant „ ULN2003“ žingsninį modulį.
Paskutiniame projekte mes tiesiog sujungėme žingsninį variklį su „Arduino“, kur galite pasukti žingsninį variklį, įvesdami pasukimo kampą „Arduino“ serijiniame monitoriuje. Šiame projekte mes pasuksime žingsninį variklį naudodami potenciometrą ir „Arduino“, pavyzdžiui, jei pasuksite potenciometrą pagal laikrodžio rodyklę, tada žingsnis pasuks pagal laikrodžio rodyklę, o jei pasuksite potenciometrą prieš laikrodžio rodyklę, jis pasuks prieš laikrodžio rodyklę.
Ž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).
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.
Besisukančio žingsninio variklio, naudojant potenciometrą, grandinės schema:
Aukščiau parodyta grandinės schema, skirta valdyti žingsninį variklį naudojant potenciometrą ir „Arduino“. 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. Potenciometras yra prijungtas prie A0 pagal kurio vertes mes pasuksime "Stepper" variklį.
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“ įžeminimą su „Driver“ modulio įžeminimu.
„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ė įjungiama bet kuriuo metu. Visą demonstracinį vaizdo įrašą rasite šios pamokos pabaigoje.
Šioje pamokoje ketiname programuoti „Arduino“ taip, kad galėtume pasukti potenciometrą, prijungtą prie kaiščio A0, ir valdyti „Stepper“ variklio kryptį. 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 pagal laikrodžio rodyklę, galime naudoti šią eilutę.
stepper.step (1);
Kad variklis judėtų vienu žingsniu prieš laikrodžio rodyklę, galime naudoti šią eilutę.
žingsnis. žingsnis (-1);
Savo programoje mes perskaitysime analoginio kaiščio A0 vertę ir palyginsime ją su ankstesne reikšme (Pval). Jei jis padidėjo, mes judame 5 žingsnius pagal laikrodžio rodyklę, o jei jis yra sumažintas, mes judame 5 žingsnius prieš laikrodžio rodyklę.
potVal = žemėlapis (analogRead (A0), 0,1024,0 500); if (potVal> Pval) stepper.step (5); jei (potVal
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 aptarta anksčiau, turite sukti potenciometrą, kad valdytumėte „Stepper“ variklio sukimąsi. Pasukus jį pagal laikrodžio rodyklę, žingsninis variklis pasisuks pagal laikrodžio rodyklę ir atvirkščiai.
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 žemiau esančiame komentarų skyriuje arba mūsų forumuose.