- Stepper Motor:
- ULN2003 trinnmotordriver:
- Nødvendige komponenter
- Kretsdiagram og forklaring
- Kode Forklaring
Stepper Motor er en spesialdesignet motor som roterer trinnvis. Steppmotorens hastighet avhenger av hastigheten på det elektriske signalet som tilføres den. Ulike mønstre kan kontrollere trinnmotorens retning og rotasjonstype. Hovedsakelig er to typer trinnmotorer tilgjengelig, Unipolar og Bipolar. Unipolar er lettere å betjene, kontrollere og også lettere å få. Her i denne opplæringen kobler vi trinnmotor med PIC Microcontroller PIC16F877A.
Vi bruker 28BYJ-48 trinnmotor for dette prosjektet som er billig og lett tilgjengelig. Det er 5V DC unipolar trinnmotor. Vi bruker også en modul tilgjengelig med denne motoren som består av ULN2003 trinnmotordriver IC. ULN2003 er et Darlington-pararray, som er nyttig for å kjøre denne motoren, siden PIC-mikrokontroller ikke kunne gi nok strøm til å kjøre. ULN2003A er i stand til å kjøre 500mA last med 600mA toppstrøm.
Stepper Motor:
La oss se spesifikasjonen til 28BYJ-48 trinnmotor fra databladet.
Hvordan rotere trinnmotor:
Hvis vi ser databladet, vil vi se pin-out.
Inne i motoren er det to spoler som er tappet i midten. Rød ledning er vanlig for begge som skal kobles til på VCC eller 5V.
Andre fire ledninger rosa, rød, gul og blå vil kontrollere rotasjonen avhengig av det elektriske signalet. Avhengig av bevegelse kan denne motoren også styres ved hjelp av 3 trinn. Full kjøremodus, halv kjøremodus og Wave kjøremodus.
Tre kjøremåter av trinnmotor:
Full Drive: Hvis to statorelektromagneter får strøm om gangen, vil motoren gå med fullt dreiemoment, referert til som fulldrevssekvensmodus.
Steg |
Blå |
Rosa |
Gul |
oransje |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Halvkjøring: Når alternativt en og to faser er aktivert, vil motoren gå i halv kjøremodus. Den brukes til å øke vinkeloppløsningen. Ulempen er mindre dreiemoment produsert i denne bevegelsen.
Steg |
Blå |
Rosa |
Gul |
oransje |
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 denne modusen er en statorelektromagnet slått på. Det følger 4 trinn som Full-drive-modus. Den bruker lite strøm med lavt dreiemoment.
Steg |
Blå |
Rosa |
Gul |
oransje |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
0 |
4 |
0 |
0 |
0 |
1 |
Vi har tidligere koblet Stepper Motor til andre mikrokontrollere:
Stepper motor kan også styres uten mikrokontroller, se denne Stepper Motor Driver Circuit.
ULN2003 trinnmotordriver:
La oss forstå utbruddskortet som består av ULN2003 IC. Det er viktig å forstå nålen.
Den gule delen brukes til å koble til motoren. Den røde delen viser en jumper. Det er viktig å plassere genseren, da den vil muliggjøre frihjulsdiodebeskyttelse for motoren . Den rosa inngangen er for mikrokontrollertilkoblingen.
Vi vil rotere motoren i full kjøremodus i retning mot klokka og igjen rotere den med bølgedrivmodus mot klokken. Sjekk demonstrasjonsvideoen på slutten.
Nødvendige komponenter
- Pic16F877A
- Programmeringssett
- Brettbrett
- 20Mhz krystall
- 33pF skivekondensator - 2stk
- 4,7 k motstand
- Berg ledninger og pinner
- ULN2003A breakout board sammen med 28BYJ-48 Stepper motor.
- Ekstra ledninger for å koble til
- 5V strømforsyning eller veggadapter med 500mA vurdering
Kretsdiagram og forklaring
I kretsskjemaet viser PIC16F877A på venstre side og på høyre side viser ULN2003A-tilkoblingen. ULN2003 og trinnmotordelen er inne i brytebrettet.
Tilkoblingen fra Breakout-kortet til mikrokontrollerenheten vil være-
A. IN1 => Pin33
B. IN2 => Pin34
C. IN3 => Pin35
D. IN4 => Pin36
Jeg koblet til alle komponentene og maskinvaren din for å rotere Stepper motor med PIC-mikrokontroller er klar.
Hvis du ikke er kjent med PIC Microcontroller enn å følge PIC Microcontroller-veiledningene om hvordan du kommer i gang med PIC Microcontroller.
Kode Forklaring
Full kode for denne PIC-baserte trinnmotordriveren er gitt på slutten av denne opplæringen med en demonstrasjonsvideo. Som alltid først, må vi sette konfigurasjonsbitene i pic-mikrokontrolleren og deretter starte med ugyldig hovedfunksjon.
Dette er makroene for konfigurasjonsbiter for mikrokontrollerenheten og bibliotekets headerfiler.
#define _XTAL_FREQ 200000000 // Krystallfrekvens, brukt i forsinkelse #definer hastighet 1 // Hastighetsområde 10 til 1 10 = laveste, 1 = høyeste #definer trinn 250 // hvor mye trinn det tar # definer med klokken 0 // med urviseren makro #definer mot klokken 1 // mot klokken retning makro
I første linje definerte vi krystallfrekvens som er nødvendig for forsinkelsesrutinen. Andre makroer brukes til å definere brukerrelaterte alternativer.
Hvis du ser koden, er det tre funksjoner definert for å kjøre motoren i tre modi med retning mot og mot klokken. Her er de tre funksjonene:
1. ugyldig full_drive (char retning)
2. ugyldig half_drive (char retning)
3. ugyldig wave_drive (char retning)
Sjekk definisjonene av disse funksjonene i den fullstendige koden nedenfor:
Nå i ugyldig hovedfunksjon, kjører vi motoren med klokken ved hjelp av fullstendig modus, avhengig av trinnene, og etter noen sekunder forsinkelse roterer vi igjen motoren mot klokken ved hjelp av bølgedrivmodus.
ugyldig hoved (ugyldig) { system_init (); mens (1) { / * Kjør motoren i full kjøremodus med klokken * / for (int i = 0; i
Slik kan vi rotere trinnmotoren med PIC Microcontroller. Stepper Motors er veldig nyttige i CNC-maskiner, robotikk og andre innebygde applikasjoner.