- Koračni motorji:
- Izračun korakov na vrtljaj za koračni motor:
- Zakaj torej potrebujemo pogonske module za koračne motorje?
- Diagram in razlaga krmilnega položaja položaja koračnega motorja Arduino:
- Koda za Arduino Board:
- Delovanje koračnega motorja z Arduinom:
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. Koračni motor je sinhroni brezkrtačni motor, ki zaključi celotno rotacijo v več korakih. V tej vadnici koračnega motorja Arduino bomo spoznali najpogosteje dostopni koračni motor 28-BYJ48 in kako ga povezati z Arduino z uporabo modula koračnega motorja ULN2003.
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. Več o delovanju koračnih motorjev lahko izveste z ARM LPC2148, mikrokrmilnikom ATMega16, MSP430.
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.
Diagram in razlaga krmilnega položaja položaja koračnega motorja Arduino:
Shema vezja za projekt krmiljenja koračnega motorja arduino 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.
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 povezati tudi tla Arduino z zemljo modula Diver.
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. Video, ki prikazuje zaporedje napajanja, najdete na koncu te vadnice.
V tej vadnici bomo napisali kodo koračnega motorja arduino in za to bomo Arduino programirali tako, da bomo lahko skozi serijski monitor Arduina vnesli število korakov, ki jih mora narediti koračni motor. 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, lahko uporabimo naslednjo vrstico.
koračni korak (val);
Število korakov, ki jih je treba premakniti, bo podala spremenljivka "val". Ker imamo 32 stopnic in 64 kot prestavno razmerje, moramo premakniti 2048 (32 * 64 = 2048), da naredimo eno popolno rotacijo.
Vrednost spremenljivke “val” lahko uporabnik vnese s pomočjo serijskega monitorja.
Delovanje koračnega motorja z Arduinom:
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, bomo morali narediti 2048 korakov, da naredimo eno popolno rotacijo, tako da ko vstopimo v 2048, bo motor naredil eno popolno rotacijo v smeri urnega kazalca z 2048 koraki. Za vrtenje v nasprotni smeri urnega kazalca vnesite številko z negativnim predznakom "-". Torej, če vnesete -1024, se bo motor zavrtel na pol poti v nasprotni smeri urnega kazalca. Vnesete lahko poljubne vrednosti, na primer vnos 1, da bo motor naredil le en korak.
Upam, da ste projekt razumeli in ste ga radi zgradili. Popolno delovanje projekta je prikazano v spodnjem videu. Če dvomite, jih objavite v oddelku za komentarje pod našim forumom.