- Stepper Motors:
- Beregning af trin pr. Revolution for trinmotor:
- Hvorfor har vi brug for drivermoduler til trinmotorer?
- Arduino Stepper Motor Position Circuit Diagram og forklaring:
- Kode til Arduino Board:
- Arbejd af trinmotor med Arduino:
Trinmotorer tager i stigende grad sin position i elektronikens verden. Startende fra et normalt overvågningskamera til en kompliceret CNC-maskine / robot, disse trinmotorer bruges overalt som aktuatorer, da de giver nøjagtig kontrol. En trinmotor er en børsteløs, synkron motor, der fuldender en fuld rotation i et antal trin. I denne Arduino stepmotor-tutorial lærer vi om den mest almindelige stepmotor 28-BYJ48 og hvordan man bruger den til Arduino ved hjælp af ULN2003 stepmotor-modul.
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. Du kan lære mere om arbejde med trinmotorer med ARM LPC2148, ATMega16 Microcontroller, MSP430.
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.
Arduino Stepper Motor Position Circuit Diagram og forklaring:
Kredsløbsdiagrammet til arduino stepper motor kontrolprojektet 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.
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 Diver-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. Videoen, der viser sekvensen af energisering, kan findes i slutningen af denne vejledning.
I denne vejledning skal vi skrive arduino stepmotor-koden, og for det vil vi programmere Arduino på en sådan måde, at vi kan indtaste antallet af trin, der skal tages af stepmotoren gennem den serielle skærm på Arduino. 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 kan vi bruge følgende linje.
stepper.step (val);
Antallet af trin, der skal flyttes, tilvejebringes af variablen "val". Da vi har 32 trin og 64 som udvekslingsforholdet, skal vi flytte 2048 (32 * 64 = 2048) for at foretage en komplet rotation.
Værdien af variablen "val" kan indtastes af brugeren ved hjælp af den serielle skærm.
Arbejd af trinmotor med Arduino:
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 tidligere diskuteret bliver vi nødt til at lave 2048 trin for at foretage en komplet rotation, så når vi går ind i 2048, vil motoren foretage en komplet rotation med uret ved at lave 2048 trin. For at rotere mod uret skal du blot indtaste tallet med “-“ negativt tegn. Så ved at komme ind i -1024 vil motoren rotere halvvejs mod uret. Du kan indtaste alle ønskede værdier, som f.eks. Indtastning 1 får motoren til kun at tage et trin.
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 sende dem til kommentarsektionen under vores på vores fora.