- Material som krävs
- Stegmotor (28BYJ-48)
- ULN2003 Motor Driver IC
- Kretsschema och anslutningar
- Roterande stegmotor med STM32F103C8
- PROGRAMMERING STM32 för stegmotor
Stegmotor är borstlös likströmsmotor, som kan roteras i små vinklar, dessa vinklar kallas steg. Stegmotor använder i allmänhet 200 steg för att slutföra 360 graders rotation, vilket betyder att den roterar 1,8 grader per steg. Stegmotor används i många enheter som behöver exakt rotationsrörelse som robotar, antenner, hårddiskar etc. Vi kan rotera stegmotorn till en viss vinkel genom att ge den korrekta instruktioner. Huvudsakligen finns två typer av stegmotorer tillgängliga, Unipolar och Bipolar. Unipolar är lättare att använda, kontroll och också lättare att få. Här i denna handledning gränssnitt vi Stepper Motor med STM32F103C8 (Blue pill) -kort.
Material som krävs
- STM32F103C8 (blått piller)
- Stegmotor (28BYJ-48)
- ULN2003 IC
- Potentiometer 10k
- Bakbord
- Bygeltrådar
Stegmotor (28BYJ-48)
28BYJ-48 är en unipolär stegmotor som kräver 5V-matning. Motorn har ett unipolärt arrangemang med fyra spolar och varje spole är klassad för + 5V, därför är det relativt lätt att styra med alla mikrokontroller som Arduino, Raspberry Pi också STM32. förbrukar hög ström och det kan skada mikrokontroller.
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. Andra specifikationer finns i databladet nedan:
Kontrollera även gränssnittet med stegmotor med andra mikrokontroller:
- Gränssnittsmotor med Arduino Uno
- Stegmotorstyrning med Raspberry Pi
- Stegmotorgränssnitt med 8051 mikrokontroller
- Gränssnittsmotor med PIC-mikrokontroller
Stegmotor kan också styras utan någon mikrokontroller, se denna stegmotordrivkrets.
ULN2003 Motor Driver IC
Den används för att driva motorn enligt pulser som tas emot från mikrokontrollern. Nedan är bilddiagrammet för ULN2003:
Pins (IN1 till IN7) är ingångsstift och (OUT 1 till OUT 7) är motsvarande utgångsstift. COM ges positiv källspänning som krävs för utgångsenheter. Ytterligare anslutningar för stegmotor ges nedan i avsnittet kretsschema.
Kretsschema och anslutningar
Nedan är anslutningsförklaringen för ovanstående kretsschema.
STM32F103C8 (blå piller)
Som vi kan se i nedanstående diagram anges PWM-stiften i vågformat (~), det finns 15 sådana stift som kan användas för pulsutgång till stegmotor. Vi behöver bara fyra stift, vi använder (PA0 till PA3).
STM32F103C8 med ULN2003 Motor Driver IC
Pins (PA0 till PA3) betraktas som utgångsstift som är anslutna till ingångsstift (IN1-IN4) på ULN2003 IC.
STIFTAR AV STM32F103C8 |
PINS AV ULN2003 IC |
PA0 |
I 1 |
PA1 |
IN2 |
PA2 |
IN3 |
PA3 |
IN4 |
5V |
COM |
GND |
GND |
ULN2003 IC med stegmotor (28BYJ-48)
ULN2003 IC: s utgångsstift (OUT1-OUT4) är anslutna till stegmotorns stift (orange, gul, rosa och blå).
PINS AV ULN2003 IC |
STIFTMOTORNIPPAR |
UT1 |
ORANGE |
OUT2 |
GUL |
OUT3 |
ROSA |
OUT4 |
BLÅ |
COM |
RÖD |
STM32F103C8 med potentiometer
En potentiometer används för att ställa in stegmotorns hastighet.
POTENTIOMETER |
STM32F103C8 |
VÄNSTER (INGÅNG) |
3.3 |
CENTRUM (UTGÅNG) |
PA4 |
HÖGER (GND) |
GND |
Roterande stegmotor med STM32F103C8
Nedan följer några steg för att manövrera stegmotorn:
- Ställ in stegmotorns hastighet genom att variera potentiometern.
- Ange sedan manuellt steg för rotation antingen medurs (+ värden) eller moturs (-värden) via SERIALMONITER som finns i ARDUINO IDE (Verktyg-> Seriell bildskärm) eller CTRL + SKIFT + M.
- Enligt ingångsvärdet som ges i seriell bildskärm sker vissa rotationssteg i stegmotorn.
Till exempel
VÄRDE SOM GIVAS I SERIEMONITER |
ROTATION |
2048 |
(360) CLK WISE |
1024 |
(180) CLK WISE |
512 |
(90) CLK WISE |
-2048 |
(-360) ANTI CLK WISE |
-1024 |
(-180) ANTI CLK WISE |
-512 |
(-90) ANTI CLK WISE |
PROGRAMMERING STM32 för stegmotor
Liksom föregående handledning programmerade vi STM32F103C8 med Arduino IDE via USB-port utan att använda FTDI-programmerare. För att lära dig mer om programmering av STM32 med Arduino IDE, följ länken. Vi kan fortsätta programmera det som en Arduino. Komplett kod ges i slutet av projektet.
Först måste vi inkludera stegbiblioteksfilerna #include
#omfatta
Sedan definierar vi nej. av steg för att slutföra vid rotation, här använder vi 32 eftersom vi använder Full-Step (4 Step-sekvens) så (360/32 = 11,25 grader). Så för ett steg rör sig axeln 11,25 grader som är stegvinkel. I sekvens med 4 steg krävs fyra steg för en fullständig rotation.
#define STEG 32
Vi kan också använda halvstegsläge där det finns åtta stegs sekvens (360/64 = 5,625) stegvinkel.
Steg per varv = 360 / STEGVINKEL
När vi ställer in hastighet måste vi ta ett analogt värde från PA4 som är ansluten till potentiometer. Så vi måste förklara pin för det
const int speedm = PA4
Sedan har vi konverterat det analoga värdet till digitalt genom att lagra dessa värden i variabel av heltalstyp, efter det måste vi kartlägga ADC-värdena för att ställa in hastighet så vi använder nedanstående uttalande. Läs mer om hur du använder ADC med STM32 här.
int adc = analogRead (speedm); int-resultat = karta (adc , 0, 4096, 1, 1023);
För att ställa in hastighet använder vi stepper.setSpeed (resultat); Vi har ett hastighetsområde på (1-1023).
Vi måste skapa instans som nedan för att ställa in stiften som är anslutna till motorn. Var försiktig i dessa steg eftersom de flesta av dem gör ett misstag här i detta mönster. De ger fel mönster och på grund av det kan spolar inte få energi.
Stegsteg (STEPS, PA0, PA2, PA1, PA3);
Nedanstående uttalande används för att få värdet av steg från seriell bildskärm. Till exempel behöver vi 2048 värden för en hel rotation (32 * 64 = 2048), dvs. 64 kommer att vara utväxlingsförhållandet och 32 kommer att vara en halvstegsekvens för en rotation.
rotera = Serial.parseInt ();
Nedanstående kod används för att anropa förekomsten och köra motorn. Om rotationsvärdet är 1 kallar det funktionsstegern en gång och ett drag är gjort.
stepper.step (rotera);
Komplett kod med demonstrationsvideo ges nedan. Kontrollera också alla stegmotorrelaterade projekt här, med gränssnitt med olika andra mikrokontroller