- Trinmotor:
- ULN2003 trinmotordriver:
- Nødvendige komponenter
- Kredsløbsdiagram og forklaring
- Kode Forklaring
Stepper Motor er en specielt designet motor, der roterer trinvis. Trinmotorens hastighed afhænger af hastigheden på det elektriske signal, der tilføres den. Forskellige mønstre kan kontrollere trinmotorens retning og rotationstype. Der findes hovedsagelig to typer trinmotorer, Unipolar og Bipolar. Unipolar er lettere at betjene, kontrollere og også lettere at få. Her i denne vejledning grænseflade vi Stepper Motor med PIC Microcontroller PIC16F877A.
Vi bruger 28BYJ-48 trinmotor til dette projekt, som er billigt og let tilgængeligt. Det er 5V DC unipolar stepper motor. Vi bruger også et modul, der er tilgængeligt med denne motor, som består af ULN2003 Stepper Motor Driver IC. ULN2003 er et Darlington-pararray, som er nyttigt at køre denne motor, da PIC-mikrocontroller ikke kunne give strøm nok til at køre. ULN2003A er i stand til at køre 500 mA belastning med 600 mA spidsstrøm.
Trinmotor:
Lad os se specifikationen af 28BYJ-48 trinmotor fra databladet.
Sådan roteres trinmotor:
Hvis vi ser databladet, vil vi se pin-out.
Inde i motoren er der to center-tappede spoler til rådighed. Rød ledning er det fælles for begge, som vil blive tilsluttet ved VCC eller 5V.
Andre 4 ledninger lyserøde, røde, gule og blå styrer rotationen afhængigt af det elektriske signal. Afhængigt af bevægelsen kan denne motor også styres ved hjælp af 3 trin. Fuld drevtilstand, Half Drive-tilstand og Wave-drevtilstand.
Tre køremåder af trinmotor:
Fuld drev: Hvis to statorelektromagneter får strøm ad gangen, kører motoren med fuldt drejningsmoment kaldet fuldt drevsekvenstilstand.
Trin |
Blå |
Lyserød |
Gul |
orange |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Halvdrev: Når alternativt en og to faser er aktiveret, vil motoren køre i halvdriftstilstand. Det bruges til at øge vinkelopløsningen. Ulempen er mindre drejningsmoment produceret i denne bevægelse.
Trin |
Blå |
Lyserød |
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 denne tilstand er en statorelektromagnet tændt. Dens følger 4 trin samme som fuld-drev-tilstand. Det bruger lav effekt med lavt drejningsmoment.
Trin |
Blå |
Lyserød |
Gul |
orange |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
0 |
4 |
0 |
0 |
0 |
1 |
Vi har tidligere interfacet trinmotor med andre mikrocontrollere:
Trinmotor kan også styres uden mikrokontroller, se dette trinmotorkørerkredsløb.
ULN2003 trinmotordriver:
Lad os forstå break-out-kortet, der består af ULN2003 IC. Det er vigtigt at forstå nålen.
Den gule del bruges til at forbinde motoren, Den røde del viser en jumper. Det er vigtigt at placere jumperen, da det muliggør frihjulsdiobeskyttelse af motoren . Den lyserøde indgang er til mikrocontrolforbindelsen.
Vi vil dreje motoren i fuld drevtilstand i retning mod uret og igen dreje den med bølgedrevstilstand mod urets retning. Tjek demonstrationsvideoen i slutningen.
Nødvendige komponenter
- Pic16F877A
- Programmeringssæt
- Brødbræt
- 20Mhz krystal
- 33pF diskkondensator - 2stk
- 4,7 k modstand
- Berg ledninger og stifter
- ULN2003A breakout board sammen med 28BYJ-48 Stepper motor.
- Yderligere ledninger til at forbinde
- 5V strømforsyningsenhed eller vægadapter med 500 mA klassificering
Kredsløbsdiagram og forklaring
I kredsløbsdiagrammet viser PIC16F877A på venstre side, og på højre side vises ULN2003A-forbindelsen. ULN2003 og trinmotordelen er inde i breakout-kortet.
Forbindelsen fra Breakout-kort til mikrocontroller-enheden vil-
A. IN1 => Pin33
B. IN2 => Pin34
C. IN3 => Pin35
D. IN4 => Pin36
Jeg tilsluttede alle komponenterne og din hardware til at rotere Stepper motor med PIC microcontroller er klar.
Hvis du er ny hos PIC Microcontroller, end følg vores PIC Microcontroller Tutorials med angivelse af Kom godt i gang med PIC Microcontroller.
Kode Forklaring
Fuld kode til denne PIC-baserede trinmotordriver er givet i slutningen af denne tutorial med en demonstrationsvideo. Som altid først skal vi indstille konfigurationsbitene i pic-mikrocontrolleren og derefter starte med ugyldig hovedfunktion.
Dette er makroerne til konfigurationsbits til mikrocontrollerenheden og bibliotekets headerfiler.
#define _XTAL_FREQ 200000000 // Krystalfrekvens, brugt i forsinkelse #definer hastighed 1 // Hastighedsområde 10 til 1 10 = laveste, 1 = højeste # definer trin 250 // hvor meget trin det tager # definer med uret 0 // med urets retning makro #definer mod uret 1 // mod urets retning makro
I den første linje definerede vi krystalfrekvens, som er nødvendig for forsinkelsesrutinen. Andre makroer bruges til at definere brugerrelaterede indstillinger.
Hvis du ser koden, er der defineret tre funktioner til at køre motoren i tre tilstande med uret og mod uret. Her er de tre funktioner:
1. ugyldig fuld kørsel (char retning)
2. ugyldigt half_drive (char retning)
3. ugyldigt wave_drive (char retning)
Kontroller definitionerne af disse funktioner i den komplette kode nedenfor:
Nu i ugyldig hovedfunktion kører vi motoren med uret ved hjælp af fuldt kørselstilstand afhængigt af trinene, og efter få sekunders forsinkelse roterer vi igen motoren mod uret ved hjælp af bølgedrivtilstand.
ugyldigt hoved (ugyldigt) { system_init (); mens (1) { / * Kør motoren i fuld drevtilstand med uret * / for (int i = 0; i
Sådan kan vi rotere trinmotoren med PIC Microcontroller. Stepper Motors er meget nyttige i CNC-maskiner, robotteknologi og andre indlejrede applikationer.