- Stepper Motors:
- Beregning av trinnene per revolusjon for trinnmotor:
- Hvorfor trenger vi drivermoduler for trinnmotorer?
- Arduino Stepper Motor Position Circuit Diagram og forklaring:
- Kode for Arduino Board:
- Arbeid av trinnmotor med Arduino:
Steppermotorer tar i økende grad sin posisjon i elektronikkens verden. Start fra et vanlig overvåkningskamera til en komplisert CNC-maskin / robot, disse trinnmotorene brukes overalt som aktuatorer, siden de gir nøyaktig kontroll. En trinnmotor er en børsteløs, synkron motor som fullfører en full rotasjon i flere trinn. I denne Arduino trinnmotoropplæringen vil vi lære om den mest tilgjengelige trinnmotoren 28-BYJ48 og hvordan du kan grensesnittet med Arduino ved hjelp av ULN2003 trinnmotormodul.
Stepper Motors:
La oss ta en titt på denne 28-BYJ48 trinnmotoren.
Ok, så i motsetning til en vanlig DC-motor har denne fem ledninger i alle fancy farger som kommer ut av den, og hvorfor er det slik? For å forstå dette, bør vi først vite hvordan en stepper fungerer og hva spesialiteten er. Først av alt trinnmotorer roterer ikke, de tråkker, så de kalles også trinnmotorer. Betydning, de vil bare bevege seg ett trinn av gangen. Disse motorene har en sekvens av spoler tilstede i seg, og disse spolene må aktiveres på en bestemt måte for å få motoren til å rotere. Når hver spole aktiveres, tar motoren et skritt, og en sekvens av aktivering vil få motoren til å ta kontinuerlige trinn, og dermed få den til å rotere. La oss ta en titt på spolene som er tilstede i motoren for å vite nøyaktig hvor disse ledningene kommer fra.
Som du kan se, har motoren Unipolar 5-leder spolearrangement. Det er fire spoler som må aktiveres i en bestemt sekvens. De røde ledningene leveres med + 5V, og de resterende fire ledningene trekkes til bakken for å utløse den respektive spolen. Vi bruker en mikrokontroller som Arduino, som gir disse spolene energi i en bestemt sekvens og får motoren til å utføre det nødvendige antall trinn.
Så nå, hvorfor heter denne motoren 28-BYJ48 ? Alvor!!! Jeg vet ikke. Det er ingen teknisk grunn til at denne motoren blir kalt det; kanskje vi skal dykke mye dypere inn i det. La oss se på noen av de viktige tekniske dataene som er innhentet fra databladet til denne motoren i bildet nedenfor.
Det er et hode full av informasjon, men vi må se på noen få viktige for å vite hvilken type stepper vi bruker, slik at vi kan programmere den effektivt. Først vet vi at det er en 5V trinnmotor siden vi gir strøm til den røde ledningen med 5V. Så vet vi også at det er en firetrinns trinnmotor siden den hadde fire spoler. Nå er girutvekslingen 1:64. Dette betyr at akselen du ser utenfor, vil gjøre en fullstendig rotasjon bare hvis motoren inni roterer 64 ganger. Dette er på grunn av girene som er koblet mellom motoren og utgangsakselen, disse girene hjelper til med å øke dreiemomentet.
En annen viktig data å legge merke til er Stride Angle: 5.625 ° / 64. Dette betyr at motoren når den kjører i 8-trinns sekvens vil bevege seg 5,625 grader for hvert trinn, og det vil ta 64 trinn (5,625 * 64 = 360) for å fullføre en full rotasjon. Du kan lære mer om bruk av trinnmotorer med ARM LPC2148, ATMega16 Microcontroller, MSP430.
Beregning av trinnene per revolusjon for trinnmotor:
Det er viktig å vite hvordan du beregner trinnene per revolusjon for trinnmotoren din, fordi bare da kan du programmere den effektivt.
I Arduino vil vi kjøre motoren i 4-trinns sekvens, slik at trinnvinkelen vil være 11,25 ° siden den er 5,625 ° (gitt i databladet) for 8-trinns sekvens vil den være 11,25 ° (5,625 * 2 = 11,25).
Trinn per omdreining = 360 / trinnvinkel
Her er 360 / 11,25 = 32 trinn per omdreining.
Hvorfor trenger vi drivermoduler for trinnmotorer?
De fleste trinnmotorer vil bare fungere ved hjelp av en drivermodul. Dette skyldes at kontrollmodulen (i vårt tilfelle Arduino) ikke vil kunne gi nok strøm fra I / O-pinnene til at motoren skal kunne fungere. Så vi vil bruke en ekstern modul som ULN2003- modul som trinnmotordriver. Det finnes mange typer drivermoduler, og rangering av en vil endres basert på hvilken type motor som brukes. Det primære prinsippet for alle drivermoduler vil være å kilde / synke nok strøm til at motoren skal fungere.
Arduino Stepper Motor Position Circuit Diagram og forklaring:
Kretsdiagrammet for arduino stepper motor control project er vist ovenfor. Vi har brukt 28BYJ-48 trinnmotor og ULN2003 drivermodul. For å aktivere de fire spolene i trinnmotoren bruker vi de digitale pinnene 8,9,10 og 11. Drivermodulen drives av 5V-pinnen på Arduino Board.
Men driv driveren med ekstern strømforsyning når du kobler litt belastning til steppemotoren. Siden jeg nettopp bruker motoren for demonstrasjonsformål, har jeg brukt + 5V-skinnen til Arduino Board. Husk også å koble bakken til Arduino med bakken på dykkermodulen.
Kode for Arduino Board:
Før vi begynner å programmere med Arduino, la oss forstå hva som egentlig skal skje inne i programmet. Som sagt tidligere, vil vi bruke 4-trinns sekvensmetode, så vi vil ha fire trinn å utføre for å gjøre en fullstendig rotasjon.
Steg |
Pin Energized |
Spoler energisert |
Trinn 1 |
8 og 9 |
A og B |
Steg 2 |
9 og 10 |
B og C |
Trinn 3 |
10 og 11 |
C og D |
Trinn 4 |
11 og 8 |
D og A |
Driver-modulen vil ha fire lysdioder som vi kan sjekke hvilken spole som tilføres til enhver tid. Videoen som viser sekvensen av energisering finner du på slutten av denne veiledningen.
I denne opplæringen skal vi skrive arduino trinnmotorkoden, og for det vil vi programmere Arduino på en slik måte at vi kan angi antall trinn som trinnmotoren skal ta gjennom den serielle skjermen til Arduino. Hele programmet finner du på slutten av opplæringen, noen viktige linjer er forklart nedenfor.
Antall trinn per omdreining for trinnmotoren vår ble beregnet til å være 32; derfor skriver vi inn det som vist i linjen nedenfor
#define TRINN 32
Deretter må du lage tilfeller der vi spesifiserer pinnene som vi har koblet trinnmotoren til.
Stepper stepper (TRINN, 8, 10, 9, 11);
Merk: Pinnetallet er uordnet som 8,10,9,11 med vilje. Du må følge det samme mønsteret selv om du bytter pinnene som motoren din er koblet til.
Siden vi bruker Arduino stepper-biblioteket, kan vi stille hastigheten på motoren ved hjelp av linjen nedenfor. Hastigheten kan variere mellom 0 og 200 for 28-BYJ48 trinnmotorer.
stepper.setSpeed (200);
Nå, for å få motoren til å bevege seg ett trinn, kan vi bruke følgende linje.
stepper.step (val);
Antall trinn som skal flyttes vil bli gitt av variabelen "val". Siden vi har 32 trinn og 64 som girforholdet, trenger vi å flytte 2048 (32 * 64 = 2048), for å gjøre en fullstendig rotasjon.
Verdien på variabelen “val” kan legges inn av brukeren ved hjelp av den serielle skjermen.
Arbeid av trinnmotor med Arduino:
Når tilkoblingen er opprettet, bør maskinvaren se ut som dette på bildet nedenfor.
Last nå opp programmet nedenfor i Arduino UNO og åpne seriell skjerm. Som diskutert tidligere, må vi gjøre 2048 trinn for å gjøre en fullstendig rotasjon, så når vi går inn i 2048, vil motoren gjøre en fullstendig rotasjon med urviseren ved å gjøre 2048 trinn. For å rotere mot klokken, skriv bare inn tallet med "-" negativt tegn. Så når du går inn i -1024, vil motoren rotere halvveis mot klokken. Du kan angi alle ønskede verdier, for eksempel å angi 1, vil få motoren til å ta bare ett trinn.
Håper du forsto prosjektet og likte å bygge det. Fullstendig bearbeiding av prosjektet er vist i videoen nedenfor. Hvis du er i tvil, legg dem inn i kommentarseksjonen under vårt på forumet vårt.