- Komponenter kreves
- Pin Beskrivelse av trinnmotor
- Kretsdiagram for trinnmotorkontroll ved bruk av ULN2003-modulen
- Kretsdiagram for trinnmotorstyring ved bruk av L293D-modul:
- Kontrollerende trinnmotor med AVR ATmega16
Stepper Motors er DC børsteløse motorer som kan rotere fra 0 til 360 0 trinnvis. Stepper motor bruker elektroniske signaler for å rotere motoren i trinn, og hvert signal roterer akselen i fast trinn (ett trinn). Rotasjonsengelen styres ved å bruke en viss sekvens av signaler. I motsetning til servomotor kan trinnmotorer kjøres ved hjelp av GPIO-pinner på mikrokontroller i stedet for PWM-pinner, og kan rotere i (+360 0) og (-360 0). Rekkefølgen av signaler bestemmer trinnvis motor med og mot urviseren. For å kontrollere motorens hastighet, trenger vi bare å endre hastigheten på kontrollsignalene som brukes. Stepper motorene roterer trinnvis. Det er flere trinn for å betjene trinnmotor, for eksempel full trinn, halv trinn og mikro trinn. For å vite mer om det grunnleggende, teorien og arbeidsprinsippet til trinnmotor, følg lenken.
Vi har tidligere koblet Stepper Motor til mange mikrokontrollere:
- Grensesnitt trinnmotor med ARM7-LPC2148
- Grensesnitt trinnmotor med Arduino Uno
- Grensesnitt trinnmotor med MSP430G2
- Grensesnitt trinnmotor med STM32F103C8
- Grensesnitt trinnmotor med PIC-mikrokontroller
- Grensesnitt trinnmotor med 8051 mikrokontroller
- Grensesnitt trinnmotor med Raspberry Pi
I denne opplæringen vil vi grensesnitt 28BYJ-48 trinnmotor med Atmega16 AVR mikrokontroller ved bruk av Atmel Studio 7.0. Stepper motoren er vurdert til å fungere i 5V. Vi vil koble trinnmotoren til begge motordriverne, dvs. ULN2003 og L293. Begge vil bli drevet av 5V forsyning. For å forenkle grensesnittet bruker vi forhåndsmodul til begge motorførerne. Du kan også bruke ULN2003 og L293D frittstående IC-er. Antall ledninger og hoppere kan være flere, så vær bare forsiktig når du kobler alle tilkoblingene.
Komponenter kreves
- Stepper Motor (28BYJ-48)
- ULN2003-modul / L293D-motordriver
- Atmega16 Microcontroller IC
- 16Mhz krystalloscillator
- To kondensatorer på 100nF
- To 22pF kondensatorer
- Trykknapp
- Jumper Wires
- Brettbrett
- USBASP v2.0
- Led (hvilken som helst farge)
Pin Beskrivelse av trinnmotor
Kretsdiagram for trinnmotorkontroll ved bruk av ULN2003-modulen
Koble til alle komponentene som vist i diagrammet nedenfor når du bruker ULN2003. På samme måte vil vi grensesnitt det ved hjelp av L293D i neste trinn. Vi bruker PORTA fra Atmega16 til å grensesnitt trinnmotor for begge motorførerne. Det er ikke nødvendig å koble 5V-stiften til trinnmotor. Bare spolepinnene er nødvendige for å bevege trinnmotoren. Stiftrekkefølgen er veldig viktig for å kjøre trinnmotor, ettersom spolene skal aktiveres for å oppnå trinn. Fire innganger av ULN2003 og fire utganger av ULN2003 brukes i dette prosjektet. Inngangene vil bli koblet til PORTA-pinner og utgangene vil bli koblet til trinnmotorens signalpinner. Koble også til en trykknapp i Reset pin for å tilbakestille Atmega16 når det er nødvendig. Koble Atmega16 med riktig krystalloscillatorkrets. Hele systemet får strøm fra 5V forsyning.
Nedenfor er det faktiske bildet av ULN2003 motordrivermodul:
Nedenfor har vi gitt Atmega16 pin-tilkoblinger med ULN2003 og L293D for å rotere trinnmotoren. Grensesnitt trinnmotor med L293D-modul er forklart i senere avsnitt. Husk at bare en modul, enten ULN2003 eller L293D, er nødvendig for trinnmotorkontroll.
Pin-tilkoblingene for 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) |
Pin-tilkoblingene for OUTPUT er som følger:
Stepper Motor |
ULN2003 |
L293D |
oransje |
OUT1 (PIN16) |
OUT1 (PIN3) |
Gul |
OUT2 (PIN15) |
OUT2 (PIN6) |
Rosa |
OUT3 (PIN14) |
OUT3 (PIN11) |
Blå |
OUT4 (PIN13) |
OUT4 (PIN14) |
Kretsdiagram for trinnmotorstyring ved bruk av L293D-modul:
Kontrollerende trinnmotor med AVR ATmega16
Som allerede fortalt, i motsetning til servomotor, trenger trinnmotorer eksterne drivere, for eksempel ULN2003 eller L293D-motordriver. Så det er bare å koble kretsen som ovenfor og laste opp main.c-programmet gitt på slutten.
Skissen viser trinnmotoren som roterer i begge sider, dvs. med klokken og mot klokken. Hvis du vil rotere trinnet i en retning, kan du bare kommentere kodelinjene til en annen retning i skissen.
Komplett AVR-kode for styring av trinnmotor er gitt nedenfor. Koden er enkel og kan forstås lett. To koder er gitt nedenfor, en for roterende trinnmotor med ULN2003 og den andre med L293D-modul.
Koble USBASP v2.0 og følg instruksjonene i denne lenken for å programmere Atmega16 AVR Microcontroller ved hjelp av USBASP og Atmel Studio 7.0. Bare bygg skissen og last opp ved hjelp av ekstern verktøykjede.
Fullstendig kode med demonstrasjonsvideo er gitt nedenfor.