Stepper Motor är en specialdesignad motor som roterar stegvis. Stegmotorns hastighet beror på hastigheten på den elektriska signalen som appliceras på den. Olika mönster kan styra stegmotorns riktning och rotationstyp. 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 stegmotor med PIC Microcontroller PIC16F877A.
Vi använder 28BYJ-48 stegmotor för detta projekt som är billigt och lättillgängligt. Det är 5V DC unipolär stegmotor. Vi använder också en modul som är tillgänglig med den här motorn och som består av ULN2003 stegmotorförare IC. ULN2003 är ett Darlington-pararray, vilket är användbart för att driva den här motorn, eftersom PIC-mikrokontroller inte kunde ge tillräckligt med ström för att köra. ULN2003A kan driva 500mA belastning med 600mA toppström.
Stegmotor:
Låt oss se specifikationen för stegmotorn 28BYJ-48 från databladet.
Hur man roterar stegmotor:
Om vi ser databladet ser vi pin-out.
Inuti motorn finns det två spolar med mittuttag tillgängliga. Röd ledning är vanligt för båda som kommer att anslutas vid VCC eller 5V.
Övriga fyra trådar rosa, rött, gult och blått styr vridningen beroende på den elektriska signalen. Beroende på rörelse kan denna motor också styras med 3 steg. Fullt körläge, halvt körläge och vågläge.
Tre körlägen för stegmotor:
Full Drive: Om två statorelektromagneter matas åt gången kommer motorn att köra med fullt vridmoment som kallas full-drive-sekvensläge.
Steg |
Blå |
Rosa |
Gul |
Orange |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Halvkörning: När alternativt en och två faser är strömförande, kommer motorn att gå i halv körläge. Den används för att öka vinkelupplösningen. Nackdelen är mindre vridmoment som produceras i denna rörelse.
Steg |
Blå |
Rosa |
Gul |
Orange |
1 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
0 |
3 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
1 |
0 |
5 |
0 |
0 |
1 |
1 |
6 |
0 |
0 |
0 |
1 |
7 |
1 |
0 |
0 |
1 |
8 |
1 |
0 |
0 |
0 |
Wave Drive: I det här läget är en statorelektromagnet påslagen. Dess följer fyra steg samma som Full-drive-läge. Den förbrukar låg effekt med lågt vridmoment.
Steg |
Blå |
Rosa |
Gul |
Orange |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
0 |
4 |
0 |
0 |
0 |
1 |
Vi har tidigare kopplat Stepper Motor med andra mikrokontroller:
Stegmotor kan också styras utan någon mikrokontroller, se denna stegmotordrivkrets.
ULN2003 stegmotorförare:
Låt oss förstå break-out-kortet som består av ULN2003 IC. Det är viktigt att förstå nålen.
Den gula delen används för att ansluta motorn, Den röda delen visar en bygel. Det är viktigt att placera bygeln eftersom det möjliggör frihjulsdiodskydd för motorn . Den rosa ingången är för mikrokontrolleranslutningen.
Vi kommer att rotera motorn i fullt körläge medurs och igen vrida den med vågläge moturs. Kolla demonstrationsvideon i slutet.
Nödvändiga komponenter
- Pic16F877A
- Programmeringssats
- Bakbord
- 20Mhz kristall
- 33pF skivkondensator - 2st
- 4,7 k motstånd
- Bergtrådar och stift
- ULN2003A breakout board tillsammans med 28BYJ-48 stegmotor.
- Ytterligare ledningar för anslutning
- 5V nätaggregat eller väggadapter med 500mA-klassning
Kretsschema och förklaring
I kretsschemat visar PIC16F877A på vänster sida och på högra sidan ULN2003A-anslutningen. ULN2003 och stegmotorns del är inne i brytbrädan.
Anslutningen från Breakout-kortet till mikrokontrollenheten kommer att
A. IN1 => Pin33
B. IN2 => Pin34
C. IN3 => Pin35
D. IN4 => Pin36
Jag anslöt alla komponenter och din hårdvara för att rotera Stepper motor med PIC-mikrokontroller är klar.
Om du är nybörjare i PIC Microcontroller än att följa våra PIC Microcontroller Tutorials som anger med Komma igång med PIC Microcontroller.
Kodförklaring
Fullständig kod för denna PIC-baserade stegmotorförare ges i slutet av denna handledning med en demonstrationsvideo. Som alltid först måste vi ställa in konfigurationsbitarna i pic-mikrokontrollern och sedan börja med ogiltig huvudfunktion.
Dessa är makron för konfigurationsbitar för mikrokontroller-enheten och bibliotekets rubrikfiler.
#define _XTAL_FREQ 200000000 // Crystal Frequency, used in delay #define speed 1 // Hastighetsområde 10 till 1 10 = lägsta, 1 = högsta # definiera steg 250 // hur mycket steg det tar # definiera medurs 0 // medurs riktning makro #definiera moturs 1 // moturs riktning makro
I den första raden definierade vi kristallfrekvensen som behövs för fördröjningsrutinen. Andra makron används för att definiera användarrelaterade alternativ.
Om du ser koden finns tre funktioner definierade för att köra motorn i tre lägen medurs och moturs. Här är de tre funktionerna:
1. ogiltig full_drive (char riktning)
2. ogiltig half_drive (char riktning)
3. void wave_drive (char direction)
Kontrollera definitionerna av dessa funktioner i den fullständiga koden nedan:
Nu i ogiltig huvudfunktion, kör vi motorn med full körningsläge beroende på stegen och efter några sekunders fördröjning vrider vi igen motorn medurs med vågkörningsläge.
ogiltigt huvud (ogiltigt) { system_init (); medan (1) { / * Kör motorn i full körning medurs * / för (int i = 0; i
Så här kan vi rotera stegmotorn med PIC Microcontroller. Stepper Motors är mycket användbara i CNC-maskiner, robotik och andra inbäddade applikationer.