- Komponenter, der kræves
- Stiftbeskrivelse af trinmotor
- Kredsløbsdiagram til trinmotorstyring ved hjælp af ULN2003-modul
- Kredsløbsdiagram til trinmotorstyring ved hjælp af L293D-modul:
- Kontrollerende trinmotor med AVR ATmega16
Stepper Motors er DC børsteløse motorer, der kan rotere fra 0 til 360 0 i trin. Trinmotor bruger elektroniske signaler til at rotere motoren i trin, og hvert signal roterer akslen i fast trin (et trin). Rotationsenglen styres ved at anvende en bestemt sekvens af signaler. I modsætning til servomotor kan trinmotorer køres ved hjælp af GPIO-ben på mikrocontroller i stedet for PWM-ben og kan rotere i (+360 0) og (-360 0). Rækkefølgen af signaler bestemmer trinvis motorens retning med og mod urets retning. For at kontrollere motorens hastighed er vi bare nødt til at ændre hastigheden på de anvendte styresignaler. Trinmotorer roterer trinvis. Der er flere tilstande til trin til betjening af trinmotor, såsom fuldt trin, halvt trin og mikrotrin. For at vide mere om det grundlæggende, teori og arbejdsprincip for trinmotor, følg linket.
Vi har tidligere interfacet Stepper Motor med mange mikrocontrollere:
- Interfacing trinmotor med ARM7-LPC2148
- Interfacing trinmotor med Arduino Uno
- Interfacing trinmotor med MSP430G2
- Interfacing trinmotor med STM32F103C8
- Interfacing trinmotor med PIC Microcontroller
- Interfacing trinmotor med 8051 mikrokontroller
- Interfacing trinmotor med Raspberry Pi
I denne vejledning interagerer vi 28BYJ-48 trinmotor med Atmega16 AVR Microcontroller ved hjælp af Atmel Studio 7.0. Trinmotoren er klassificeret til at arbejde i 5V. Vi vil forbinde trinmotoren med begge motordrivere, dvs. ULN2003 og L293. Begge vil blive drevet af 5V forsyning. For at forenkle grænsefladen bruger vi prebuild-modul til begge motordrivere. Du kan også bruge ULN2003 og L293D standalone IC'er. Antallet af ledninger og jumpere kan være mere, så vær bare forsigtig, når du forbinder alle forbindelser.
Komponenter, der kræves
- Trinmotor (28BYJ-48)
- ULN2003-modul / L293D-motordriver
- Atmega16 Microcontroller IC
- 16Mhz krystaloscillator
- To 100nF kondensatorer
- To 22pF kondensatorer
- Trykknap
- Jumper Wires
- Brødbræt
- USBASP v2.0
- Led (enhver farve)
Stiftbeskrivelse af trinmotor
Kredsløbsdiagram til trinmotorstyring ved hjælp af ULN2003-modul
Tilslut alle komponenterne som vist i nedenstående diagram, når du bruger ULN2003. På samme måde vil vi grænseflade ved hjælp af L293D i næste trin. Vi bruger PORTA fra Atmega16 til at interfacere trinmotor til begge motordrivere. Der er ikke behov for at forbinde 5V-stiften på trinmotor. Kun skruestifterne er nødvendige for at flytte trinmotoren. Stifterækkefølgen er meget vigtig for at drive trinmotor, da spolingen skal aktiveres for at nå trin. Fire indgange af ULN2003 og fire udgange af ULN2003 bruges i dette projekt. Indgangene tilsluttes PORTA-stifter, og udgange tilsluttes trinmotorsignalstifter. Tilslut også en trykknap i Reset pin for at nulstille Atmega16 når det er nødvendigt. Forbind Atmega16 med et korrekt krystaloscillatorkredsløb. Hele systemet får strøm fra 5V-forsyning.
Nedenfor er det faktiske billede af ULN2003 motordrivermodul:
Nedenfor har vi givet Atmega16-pin-forbindelser med ULN2003 og L293D til at rotere trinmotoren. Interfacing trinmotor med L293D-modul forklares i senere afsnit. Husk, at kun et modul, enten ULN2003 eller L293D, er påkrævet til trinmotorkontrol.
Stikforbindelserne til INPUT er som følger:
Atmega16 |
ULN2003 |
L293D |
A0 |
IN1 (PIN1) |
IN1 (PIN2) |
A1 |
IN2 (PIN2) |
IN2 (PIN7) |
A2 |
IN3 (PIN3) |
IN3 (PIN10) |
A3 |
IN4 (PIN4) |
IN4 (PIN15) |
Stikforbindelserne til OUTPUT er som følger:
Stepper Motor |
ULN2003 |
L293D |
orange |
OUT1 (PIN16) |
OUT1 (PIN3) |
Gul |
OUT2 (PIN15) |
OUT2 (PIN6) |
Lyserød |
OUT3 (PIN14) |
OUT3 (PIN11) |
Blå |
OUT4 (PIN13) |
OUT4 (PIN14) |
Kredsløbsdiagram til trinmotorstyring ved hjælp af L293D-modul:
Kontrollerende trinmotor med AVR ATmega16
Som allerede fortalt i modsætning til Servomotor har trinmotorer brug for eksterne drivere, fx ULN2003 eller L293D-motordriver. Så bare forbinde kredsløbet som ovenfor og upload det main.c-program, der er givet i slutningen.
Skitsen viser, at trinmotoren roterer i begge sider, dvs. med uret og mod uret. Hvis du vil dreje stepperen i en retning, skal du blot kommentere en anden retnings kodelinjer i skitsen.
Komplet AVR-kode til styring af trinmotor er angivet nedenfor. Koden er enkel og kan let forstås. To koder er angivet nedenfor, en til roterende trinmotor med ULN2003 og anden med L293D-modul.
Tilslut din USBASP v2.0, og følg instruktionerne i dette link for at programmere Atmega16 AVR Microcontroller ved hjælp af USBASP og Atmel Studio 7.0. Bare bygg skitse og upload ved hjælp af ekstern værktøjskæde.
Komplet kode med demonstrationsvideo er angivet nedenfor.