- Stepper Motors:
- Beregning af trin pr. Revolution for trinmotor:
- Hvorfor har vi brug for drivermoduler til trinmotorer?
- Kredsløbsdiagram for roterende trinmotor ved hjælp af potentiometer:
- Kode til Arduino Board:
- Arbejder:
Trinmotorer tager i stigende grad sin position i elektronikens verden. Startende fra et normalt overvågningskamera til en kompliceret CNC-maskine / robot bruges disse stepmotorer overalt som aktuatorer, da de giver nøjagtig kontrol. I denne vejledning lærer vi om den mest almindeligt / billigt tilgængelige trinmotor 28-BYJ48 og hvordan man bruger den til Arduino ved hjælp af ULN2003 trinmodul.
I det sidste projekt har vi simpelthen interfaced stepmotor med Arduino, hvor du kan rotere stepmotoren ved at indtaste rotationsvinklen i Serial Monitor of Arduino. Her i dette projekt vil vi rotere trinmotoren ved hjælp af potentiometer og Arduino, som hvis du drejer potentiometeret med uret, så drejer stepper med uret, og hvis du drejer potentiometeret mod uret, vil det rotere mod uret.
Stepper Motors:
Lad os se på denne 28-BYJ48 trinmotor.
Okay, så i modsætning til en normal jævnstrømsmotor har denne fem ledninger i alle smarte farver, der kommer ud af den, og hvorfor er det så? For at forstå dette skal vi først vide, hvordan en stepper fungerer, og hvad dens specialitet er. Først og fremmest roterer steppermotorer ikke, de træder, og de er også kendt som trinmotorer. Det betyder, at de kun bevæger sig et trin ad gangen. Disse motorer har en sekvens af spoler til stede, og disse spoler skal aktiveres på en bestemt måde for at få motoren til at rotere. Når hver spole aktiveres, tager motoren et skridt, og en sekvens af aktivering får motoren til at tage kontinuerlige trin og dermed få den til at rotere. Lad os tage et kig på spolerne i motoren for at vide nøjagtigt, hvorfra disse ledninger kommer fra.
Som du kan se, har motoren Unipolar 5-leder spolearrangement. Der er fire spoler, der skal aktiveres i en bestemt rækkefølge. De røde ledninger leveres med + 5V, og de resterende fire ledninger trækkes til jorden for at udløse den respektive spole. Vi bruger en mikrokontroller som Arduino, der aktiverer disse spoler i en bestemt rækkefølge og får motoren til at udføre det krævede antal trin.
Så nu, hvorfor hedder denne motor 28-BYJ48 ? Helt seriøst!!! Jeg ved ikke. Der er ingen teknisk grund til, at denne motor bliver navngivet sådan; måske skulle vi dykke meget dybere ned i det. Lad os se på nogle af de vigtige tekniske data opnået fra databladet til denne motor i billedet nedenfor.
Det er et hoved fuld af information, men vi er nødt til at se på nogle få vigtige for at vide, hvilken type stepper vi bruger, så vi kan programmere det effektivt. Først ved vi, at det er en 5V trinmotor, da vi strømmer den røde ledning med 5V. Derefter ved vi også, at det er en firetrins trinmotor, da den havde fire spoler i den. Nu er gearforholdet givet 1:64. Dette betyder, at akslen, som du ser udenfor, kun vil foretage en fuldstændig rotation, hvis motoren indeni drejer 64 gange. Dette skyldes de gear, der er forbundet mellem motoren og udgangsakslen, og disse gear hjælper med at øge drejningsmomentet.
En anden vigtig data, der skal bemærkes, er Stride Angle: 5.625 ° / 64. Dette betyder, at motoren, når den kører i 8-trins sekvens, bevæger sig 5,625 grader for hvert trin, og det tager 64 trin (5,625 * 64 = 360) for at fuldføre en fuld rotation.
Beregning af trin pr. Revolution for trinmotor:
Det er vigtigt at vide, hvordan man beregner trinene pr. Revolution for din trinmotor, for kun da kan du programmere den effektivt.
I Arduino vil vi køre motoren i 4-trins sekvens, så skridtvinklen vil være 11,25 °, da den er 5,625 ° (givet i datablad) for 8-trins sekvens, vil den være 11,25 ° (5,625 * 2 = 11,25).
Trin pr. Omdrejning = 360 / trinvinkel
Her er 360 / 11,25 = 32 trin pr. Omdrejning.
Hvorfor har vi brug for drivermoduler til trinmotorer?
De fleste trinmotorer fungerer kun ved hjælp af et drivermodul. Dette skyldes, at controllermodulet (i vores tilfælde Arduino) ikke er i stand til at levere tilstrækkelig strøm fra sine I / O-ben til, at motoren kan fungere. Så vi bruger et eksternt modul som ULN2003- modul som trinmotordriver. Der er mange typer drivermodul, og vurderingen af en ændres afhængigt af den anvendte motortype. Det primære princip for alle førermoduler er at kilde / synke nok strøm til, at motoren kan køre.
Kredsløbsdiagram for roterende trinmotor ved hjælp af potentiometer:
Kredsløbsdiagrammet for den styrende trinmotor ved hjælp af potentiometer og Arduino er vist ovenfor. Vi har brugt 28BYJ-48 trinmotor og ULN2003 Driver modul. For at aktivere de fire spoler i trinmotoren bruger vi de digitale ben 8,9,10 og 11. Drivermodulet drives af 5V-stiften på Arduino Board. Et potentiometer er forbundet til A0, hvis værdier vi vil dreje trinmotoren.
Men tænd for driveren med ekstern strømforsyning, når du tilslutter en del belastning til steppemotoren. Da jeg bare bruger motoren til demonstrationsformål, har jeg brugt + 5V-skinnen fra Arduino Board. Husk også at forbinde Arduino-jorden med Driver-modulets jord.
Kode til Arduino Board:
Før vi begynder at programmere med vores Arduino, lad os forstå, hvad der faktisk skal ske inde i programmet. Som tidligere nævnt bruger vi 4-trins sekvensmetode, så vi har fire trin til at udføre en komplet rotation.
Trin |
Pin Energized |
Spoler aktiveret |
Trin 1 |
8 og 9 |
A og B |
Trin 2 |
9 og 10 |
B og C |
Trin 3 |
10 og 11 |
C og D |
Trin 4 |
11 og 8 |
D og A |
Driver-modulet har fire lysdioder, hvor vi til enhver tid kan kontrollere, hvilken spole der får strøm. Den komplette demonstrationsvideo kan findes i slutningen af denne tutorial.
I denne vejledning skal vi programmere Arduino på en sådan måde, at vi kan dreje potentiometeret, der er tilsluttet pin A0, og styre retningen af trinmotoren. Det komplette program kan findes i slutningen af vejledningen, nogle få vigtige linjer forklares nedenfor.
Antallet af trin pr. Omdrejning for vores trinmotor blev beregnet til at være 32; derfor indtaster vi det som vist i linjen nedenfor
#definer TRIN 32
Derefter skal du oprette tilfælde, hvor vi angiver de ben, som vi har tilsluttet trinmotoren.
Stepper-trin (STEPS, 8, 10, 9, 11);
Bemærk: Stifternes nummer er uordnet som 8,10,9,11 med vilje. Du skal følge det samme mønster, selvom du skifter de ben, som din motor er tilsluttet.
Da vi bruger Arduino stepper-biblioteket, kan vi indstille motorens hastighed ved hjælp af nedenstående linje. Hastigheden kan variere mellem 0 og 200 for 28-BYJ48 trinmotorer.
stepper.setSpeed (200);
For at få motoren til at bevæge sig et trin med uret kan vi bruge følgende linje.
stepper.trin (1);
For at få motoren til at bevæge sig et trin mod uret kan vi bruge følgende linje.
stepper.step (-1);
I vores program læser vi værdien af den analoge pin A0 og sammenligner den med den tidligere værdi (Pval). Hvis det er steget, bevæger vi os 5 trin med uret, og hvis det mindskes, bevæger vi os 5 trin mod uret.
potVal = kort (analogRead (A0), 0,1024,0.500); hvis (potVal> Pval) stepper.step (5); hvis (potVal
Arbejder:
Når forbindelsen er oprettet, skal hardwaren se sådan ud på billedet nedenfor.
Upload nu nedenstående program i din Arduino UNO, og åbn den serielle skærm. Som diskuteret tidligere skal du dreje potentiometeret for at kontrollere trin på motoren. Ved at dreje den med uret vil trinmotoren dreje med uret og omvendt.
Håber du forstod projektet og nød at bygge det. Den komplette bearbejdning af projektet vises i videoen nedenfor. Hvis du er i tvivl, kan du skrive dem i kommentarfeltet nedenfor eller på vores fora.