- Stepper Motors:
- Beräkning av steg per varv för stegmotor:
- Varför behöver vi drivarmoduler för stegmotorer?
- Kretsschema för roterande stegmotor med potentiometer:
- Kod för Arduino Board:
- Arbetssätt:
Stegmotorer tar alltmer sin position i elektronikvärlden. Från en vanlig övervakningskamera till en komplicerad CNC-maskin / robot används dessa stegmotorer överallt som ställdon eftersom de ger noggrann styrning. I den här handledningen lär vi oss om den vanligaste / billigaste stegmotorn 28-BYJ48 och hur man gränssnitt den med Arduino med hjälp av ULN2003 stegmodul.
I det senaste projektet har vi helt enkelt interfaced Stepper Motor med Arduino, där du kan rotera stegmotorn genom att ange rotationsvinkeln i Serial Monitor of Arduino. Här i det här projektet kommer vi att rotera stegmotorn med hjälp av potentiometer och Arduino, som om du vrider potentiometern medurs så vrider steget medurs och om du vrider potentiometern moturs så roterar den moturs.
Stepper Motors:
Låt oss titta på den här 28-BYJ48 stegmotorn.
Okej, så till skillnad från en vanlig likströmsmotor har den här fem ledningar i alla fina färger som kommer ut ur den och varför är det så? För att förstå detta bör vi först veta hur en stepper fungerar och vad dess specialitet är. Först och främst stegmotorer roterar inte, de trampar och så kallas de också stegmotorer. Det betyder att de bara rör sig ett steg i taget. Dessa motorer har en sekvens av spolar närvarande och dessa spolar måste aktiveras på ett visst sätt för att få motorn att rotera. När varje spole aktiveras tar motorn ett steg och en energisekvens kommer att få motorn att ta kontinuerliga steg och därmed få den att rotera. Låt oss ta en titt på spolarna som finns i motorn för att veta exakt varifrån dessa ledningar kommer.
Som du kan se har motorn Unipolär 5-ledars spolarrangemang. Det finns fyra spolar som måste aktiveras i en viss sekvens. De röda ledningarna levereras med + 5V och de återstående fyra ledningarna dras till marken för att utlösa respektive spole. Vi använder en mikrokontroller som Arduino, aktiverar dessa spolar i en viss sekvens och får motorn att utföra det antal steg som krävs.
Så varför heter den här motorn 28-BYJ48 ? Allvarligt!!! jag vet inte. Det finns ingen teknisk anledning för att denna motor ska kallas så; kanske vi borde dyka mycket djupare in i det. Låt oss titta på några av de viktiga tekniska data som erhållits från databladet för denna motor i bilden nedan.
Det är ett huvud fullt av information, men vi behöver titta på några viktiga för att veta vilken typ av steg vi använder så att vi kan programmera det effektivt. Först vet vi att det är en 5V stegmotor eftersom vi ger den röda ledningen energi med 5V. Sedan vet vi också att det är en fyrfas stegmotor eftersom den hade fyra spolar i sig. Nu är utväxlingsförhållandet 1:64. Det betyder att axeln som du ser utanför kommer att göra en fullständig rotation endast om motorn inuti roterar 64 gånger. Detta beror på kugghjulen som är anslutna mellan motor och utgående axel, dessa kugghjul hjälper till att öka vridmomentet.
En annan viktig information att märka är Stride Angle: 5.625 ° / 64. Detta innebär att motorn när den körs i 8-stegssekvens kommer att flytta 5,625 grader för varje steg och det tar 64 steg (5,625 * 64 = 360) för att slutföra en full rotation.
Beräkning av steg per varv för stegmotor:
Det är viktigt att veta hur man beräknar stegen per revolution för din stegmotor, för först då kan du programmera den effektivt.
I Arduino kommer vi att använda motorn i 4-stegssekvens så att stegvinkeln blir 11,25 ° eftersom den är 5,625 ° (ges i datablad) för 8-stegssekvensen blir den 11,25 ° (5,625 * 2 = 11,25).
Steg per varv = 360 / stegvinkel
Här är 360 / 11,25 = 32 steg per varv.
Varför behöver vi drivarmoduler för stegmotorer?
De flesta stegmotorer fungerar endast med hjälp av en drivmodul. Detta beror på att styrenhetsmodulen (i vårt fall Arduino) inte kommer att kunna ge tillräckligt med ström från sina I / O-stift för att motorn ska fungera. Så vi kommer att använda en extern modul som ULN2003- modul som stegmotordrivrutin. Det finns många typer av drivarmoduler och betyget på en kommer att ändras beroende på vilken typ av motor som används. Den primära principen för alla förarmoduler är att källa / sänka tillräckligt med ström för att motorn ska fungera.
Kretsschema för roterande stegmotor med potentiometer:
Kretsschemat för den styrande stegmotorn med hjälp av potentiometer och Arduino visas ovan. Vi har använt stegmotorn 28BYJ-48 och drivrutinsmodulen ULN2003. För att aktivera stegmotorns fyra spolar använder vi de digitala stiften 8,9,10 och 11. Drivmodulen drivs av 5V-stiftet på Arduino Board. En potentiometer är ansluten till A0 baserat på vars värden vi roterar stegmotorn.
Men driv drivrutinen med extern strömförsörjning när du ansluter en del belastning till stäppmotorn. Eftersom jag bara använder motorn för demonstrationsändamål har jag använt Arduino Board + 5V-skenan. Kom också ihåg att ansluta Arduino Ground med Driver Driver-modulen.
Kod för Arduino Board:
Innan vi börjar programmera med vår Arduino, låt oss förstå vad som faktiskt ska hända i programmet. Som sagt tidigare kommer vi att använda 4-stegs sekvensmetod så vi kommer att ha fyra steg att utföra för att göra en fullständig rotation.
Steg |
Pin Energized |
Spolar aktiverade |
Steg 1 |
8 och 9 |
A och B |
Steg 2 |
9 och 10 |
B och C |
Steg 3 |
10 och 11 |
C och D |
Steg 4 |
11 och 8 |
D och A |
Driver-modulen kommer att ha fyra lysdioder med vilka vi kan kontrollera vilken spole som aktiveras vid varje given tidpunkt. Den fullständiga demonstrationsvideon finns i slutet av denna handledning.
I denna handledning ska vi programmera Arduino på ett sådant sätt att vi kan vrida potentiometern ansluten till stift A0 och styra stegmotorns riktning. Det fullständiga programmet finns i slutet av handledningen, några viktiga rader förklaras nedan.
Antalet steg per varv för vår stegmotor beräknades till 32; därför anger vi det som visas i raden nedan
#define STEG 32
Därefter måste du skapa instanser där vi anger stiften som vi har anslutit stegmotorn till.
Stegsteg (STEG, 8, 10, 9, 11);
Obs: Stiftens nummer är ordentligt störda som 8,10,9,11. Du måste följa samma mönster även om du byter stift som din motor är ansluten till.
Eftersom vi använder Arduino-stegbiblioteket kan vi ställa in motorns hastighet med nedanstående rad. Hastigheten kan ligga mellan 0 och 200 för 28-BYJ48 stegmotorer.
stepper.setSpeed (200);
För att få motorn att röra sig ett steg medurs kan vi använda följande rad.
stepper.step (1);
För att få motorn att röra sig ett steg moturs kan vi använda följande rad.
stepper.step (-1);
I vårt program läser vi värdet på den analoga stift A0 och jämför det med tidigare värde (Pval). Om det har ökat flyttar vi 5 steg medurs och om det minskar flyttar vi 5 steg moturs.
potVal = karta (analogRead (A0), 0,1024,0,500); om (potVal> Pval) stepper.step (5); if (potVal
Arbetssätt:
När anslutningen har gjorts ska hårdvaran se ut så här på bilden nedan.
Ladda nu upp programmet nedan i din Arduino UNO och öppna den seriella bildskärmen. Som diskuterats tidigare måste du rotera potentiometern för att styra stegmotorns rotation. Att vrida den medurs vrider stegmotorn medurs och tvärtom.
Hoppas att du förstod projektet och gillade att bygga det. Hela arbetet med projektet visas i videon nedan. Om du är osäker, lägg upp dem i kommentarsektionen nedan eller på våra forum.