- Koračni motorji:
- Izračun korakov na vrtljaj za koračni motor:
- Zakaj torej potrebujemo pogonske module za koračne motorje?
- Shema vezja za vrtljivi koračni motor z uporabo potenciometra:
- Koda za Arduino Board:
- Delo:
Koračni motorji vedno bolj zasedajo svoj položaj v svetu elektronike. Od običajne nadzorne kamere do zapletenih CNC strojev / robotov se ti koračni motorji povsod uporabljajo kot aktuatorji, saj zagotavljajo natančen nadzor. V tem tečaju se bomo spoznali najpogosteje / ceneje na voljo koračni motor 28-BYJ48 in kako ga vmesnik z Arduino uporabi ULN2003 koračni modula.
V zadnjem projektu smo preprosto povezali koračni motor z Arduino, kjer lahko koračni motor zasukate tako, da vnesete kot vrtenja v serijski monitor Arduino. V tem projektu bomo koračni motor zasukali s potenciometrom in Arduino, na primer, če potenciometer obračate v smeri urinega kazalca, se bo koračni korak zasukal v smeri urnega kazalca in če potenciometer obračate v nasprotni smeri urnega kazalca.
Koračni motorji:
Oglejmo si ta 28-BYJ48 koračni motor.
V redu, za razliko od običajnega enosmernega motorja ima ta pet žic vseh modnih barv in zakaj je tako? Da bi to razumeli, bi morali najprej vedeti, kako deluje stepper in v čem je njegova posebnost. Najprej se koračni motorji ne vrtijo, temveč stopijo, zato so znani tudi kot koračni motorji. To pomeni, da se bodo premaknili le en korak naenkrat. Ti motorji imajo v sebi zaporedje tuljav, ki jih je treba na poseben način napajati, da se motor vrti. Ko se vsaka tuljava napaja, motor naredi korak in zaporedje napajanja povzroči, da motor neprekinjeno koraka, tako da se vrti. Oglejmo si tuljave v motorju, da natančno vemo, od kod prihajajo te žice.
Kot lahko vidite, ima motor enopolno 5-svinčno tuljavo. Obstajajo štiri tuljave, ki jih je treba v določenem zaporedju napajati. Rdeče žice bodo dobavljene z + 5V, preostale štiri žice pa bodo potegnjene na tla za sprožitev ustrezne tuljave. Uporabljamo mikrokrmilnik, kot je Arduino, v določenem zaporedju napaja te tuljave in poskrbi, da motor izvede potrebno število korakov.
Zakaj se torej ta motor imenuje 28-BYJ48 ? Resno !!! Nevem. Za ta motor ni nobenega tehničnega razloga, da bi ga tako poimenovali; mogoče bi se morali poglobiti vanjo. Oglejmo si nekaj pomembnih tehničnih podatkov, dobljenih iz podatkovnega lista tega motorja na spodnji sliki.
To je glava polna informacij, vendar moramo preučiti nekaj pomembnih, da bomo vedeli, katero vrsto koraka uporabljamo, da ga lahko učinkovito programiramo. Najprej vemo, da gre za 5V koračni motor, saj rdečo žico napajamo s 5V. Nato vemo tudi, da gre za štirifazni koračni motor, saj je imel v sebi štiri tuljave. Zdaj je prestavno razmerje 1:64. To pomeni, da se gred, ki jo vidite zunaj, popolnoma zavrti le, če se motor v notranjosti zavrti 64-krat. To je posledica zobnikov, ki so povezani med motorjem in izhodno gredjo, zato ti zobniki pomagajo povečati navor.
Drug pomemben podatek, ki ga je treba opaziti, je kot koraka: 5,625 ° / 64. To pomeni, da se bo motor, če deluje v 8-stopenjskem zaporedju, premaknil za 5,625 stopinj za vsak korak in bo potreboval 64 korakov (5,625 * 64 = 360), da bo dokončal eno popolno rotacijo.
Izračun korakov na vrtljaj za koračni motor:
Pomembno je vedeti, kako izračunati korake na vrtljaj za vaš koračni motor, saj ga le tako lahko učinkovito programirate.
V Arduinu bomo motor poganjali v 4-stopenjskem zaporedju, tako da bo kot koraka 11,25 °, saj je 5,625 ° (podano v obrazcu), za 8-stopenjsko zaporedje pa 11,25 ° (5,625 * 2 = 11,25).
Koraki na vrtljaj = 360 / kot koraka
Tu je 360 / 11,25 = 32 korakov na vrtljaj.
Zakaj torej potrebujemo pogonske module za koračne motorje?
Večina koračnih motorjev bo delovala le s pomočjo gonilniškega modula. To je zato, ker krmilni modul (v našem primeru Arduino) ne bo mogel zagotoviti dovolj toka iz svojih I / O zatičev za delovanje motorja. Kot gonilnik koračnega motorja bomo uporabili zunanji modul, kot je ULN2003. Obstaja veliko vrst vozniških modulov, ki se bodo spremenile glede na vrsto uporabljenega motorja. Primarno načelo vseh gonilnih modulov bo, da vir / potop dovolj toka za delovanje motorja.
Shema vezja za vrtljivi koračni motor z uporabo potenciometra:
Shema vezja za krmiljenje koračnega motorja s pomočjo potenciometra in Arduina je prikazana zgoraj. Uporabili smo koračni motor 28BYJ-48 in pogonski modul ULN2003. Za napajanje štirih tuljav koračnega motorja uporabljamo digitalne nožice 8,9,10 in 11. Vozniški modul napaja 5V zatič plošče Arduino. Na A0 je priključen potenciometer, na podlagi katerega bomo vrteli koračni motor.
Ko napajate stepski motor, pa napajajte gonilnik z zunanjim napajalnikom. Ker motor samo uporabljam za predstavitev, sem uporabil tirnico + 5V plošče Arduino. Ne pozabite priključiti tudi tal Arduino z ozemljitvijo modula Driver.
Koda za Arduino Board:
Preden začnemo programirati z našim Arduinom, naj razumemo, kaj bi se dejansko moralo zgoditi znotraj programa. Kot smo že omenili, bomo uporabili 4-stopenjsko zaporedno metodo, tako da bomo za izvedbo ene popolne rotacije izvedli štiri korake.
Korak |
Pin Energized |
Tuljave pod napetostjo |
Korak 1 |
8 in 9 |
A in B |
2. korak |
9 in 10 |
B in C |
3. korak |
10 in 11 |
C in D |
4. korak |
11 in 8 |
D in A |
Vozniški modul bo imel štiri LED, s pomočjo katerih lahko preverimo, katera tuljava je v določenem trenutku pod napetostjo. Celoten predstavitveni video lahko najdete na koncu te vadnice.
V tej vadnici bomo Arduino programirali tako, da bomo lahko potenciometer, priključen na zatič A0, obračali in nadzorovali smer koračnega motorja. Celoten program najdete na koncu vadnice, nekaj pomembnih vrstic pa je razloženih spodaj.
Število korakov na vrtljaj za naš koračni motor je bilo izračunano na 32; zato vnesemo to, kot je prikazano v spodnji vrstici
#define STEPS 32
Nato morate ustvariti primerke, v katerih določimo nožice, na katere smo priključili koračni motor.
Koračni koračni korak (KORAKI, 8, 10, 9, 11);
Opomba: Število zatičev je namerno neurejeno kot 8,10,9,11. Upoštevati morate isti vzorec, tudi če zamenjate nožice, na katere je priključen vaš motor.
Ker uporabljamo koračno knjižnico Arduino, lahko hitrost motorja nastavimo s spodnjo vrstico. Hitrost se pri koračnih motorjih 28-BYJ48 lahko giblje med 0 in 200.
stepper.setSpeed (200);
Zdaj, da se motor premakne za en korak v smeri urnega kazalca, lahko uporabimo naslednjo vrstico.
stepper.step (1);
Če želite, da se motor premakne za en korak v levo, lahko uporabimo naslednjo vrstico.
stepper.step (-1);
V našem programu bomo prebrali vrednost analognega zatiča A0 in jo primerjali s prejšnjo vrednostjo (Pval). Če se je povečala, premaknemo 5 korakov v smeri urnega kazalca, če pa se zmanjša, premaknemo 5 korakov v nasprotni smeri urnega kazalca.
potVal = zemljevid (analogRead (A0), 0,1024,0,500); if (potVal> Pval) stepper.step (5); if (potVal
Delo:
Ko je povezava vzpostavljena, mora strojna oprema videti približno tako na spodnji sliki.
Zdaj naložite spodnji program v svoj Arduino UNO in odprite serijski monitor. Kot smo že omenili, morate potenciometer zavrtiti za nadzor vrtenja koračnega motorja. Če ga zasukate v smeri urinega kazalca, boste koračni motor obrnili v smeri urnega kazalca in obratno.
Upam, da ste projekt razumeli in ste ga radi zgradili. Popolno delovanje projekta je prikazano v spodnjem videu. Če dvomite, jih objavite v spodnjem oddelku za komentarje ali na naših forumih.