- Komponenter krävs
- Stiftbeskrivning av stegmotor
- Kretsschema för stegmotorstyrning med ULN2003-modul
- Kretsschema för stegmotorstyrning med L293D-modul:
- Styrande stegmotor med AVR ATmega16
Stepper Motors är DC borstlösa motorer som kan rotera från 0 till 360 0 i steg. Stegmotor använder elektroniska signaler för att rotera motorn i steg och varje signal roterar axeln i fast steg (ett steg). Rotationsängeln styrs genom att använda en viss sekvens av signaler. Till skillnad från Servomotor kan stegmotorer drivas med hjälp av GPIO-stift på mikrokontroller snarare än PWM-stift och kan rotera i (+360 0) och (-360 0). Ordningen på signaler bestämmer stegmotorns medurs och moturs riktning. För att kontrollera motorns hastighet behöver vi bara ändra hastigheten på de styrsignaler som används. Stegmotorerna roterar stegvis. Det finns flera steg för att manövrera stegmotor, såsom fullsteg, halvsteg och mikrosteg. För att lära dig mer om grunderna, teorin och arbetsprincipen för stegmotor, följ länken.
Vi har tidigare kopplat Stepper Motor med många mikrokontroller:
- Gränssnittsmotor med ARM7-LPC2148
- Gränssnittsmotor med Arduino Uno
- Gränssnittsmotor med MSP430G2
- Gränssnittsmotor med STM32F103C8
- Gränssnittsmotor med PIC-mikrokontroller
- Gränssnittsmotor med 8051 mikrokontroller
- Gränssnittsmotor med Raspberry Pi
I denna handledning kommer vi att gränssnitt 28BYJ-48 Stepper Motor med Atmega16 AVR Microcontroller med Atmel Studio 7.0. Stegmotorn är klassad för att fungera i 5V. Vi kommer att ansluta stegmotorn med både motorföraren, dvs ULN2003 och L293. Båda drivs av 5V-matning. För att förenkla gränssnittet använder vi förbyggnadsmodulen för båda motorförarna. Du kan också använda ULN2003 och L293D fristående IC: er. Antalet ledningar och byglar kan vara fler, så var bara försiktig när du ansluter alla anslutningar.
Komponenter krävs
- Stegmotor (28BYJ-48)
- ULN2003-modul / L293D-motorförare
- Atmega16 Microcontroller IC
- 16Mhz kristalloscillator
- Två 100nF kondensatorer
- Två 22pF kondensatorer
- Tryckknapp
- Bygeltrådar
- Bakbord
- USBASP v2.0
- Led (valfri färg)
Stiftbeskrivning av stegmotor
Kretsschema för stegmotorstyrning med ULN2003-modul
Anslut alla komponenter som visas i diagrammet nedan när du använder ULN2003. På samma sätt kommer vi att ansluta den med hjälp av L293D i nästa steg. Vi använder PORTA of Atmega16 för att koppla in stegmotor för båda motorförarna. Det finns ingen anledning att ansluta stegmotorns 5V-stift. Endast spolstiften krävs för att flytta stegmotorn. Stiftordningen är mycket viktig för att driva stegmotorn, eftersom spolarna måste aktiveras för att uppnå steg. Fyra ingångar av ULN2003 och fyra utgångar av ULN2003 används i detta projekt. Ingångarna kommer att anslutas till PORTA-stift och utgångarna kommer att anslutas till stegmotorns signalstift. Anslut också en tryckknapp i Återställ stift för att återställa Atmega16 vid behov. Anslut Atmega16 med rätt kristalloscillatorkrets. Hela systemet drivs av 5V-matning.
Nedan är den faktiska bilden av ULN2003-drivrutinsmodulen:
Nedan har vi gett Atmega16-stiftanslutningar med ULN2003 och L293D för att rotera stegmotorn. Gränssnitt stegmotor med L293D-modul förklaras i senare avsnitt, kom ihåg att endast en modul antingen ULN2003 eller L293D krävs för stegmotorstyrning.
Stiftanslutningarna för INPUT är följande:
Atmega16 |
ULN2003 |
L293D |
A0 |
IN1 (PIN1) |
IN1 (PIN2) |
A1 |
IN2 (PIN2) |
IN2 (PIN7) |
A2 |
IN3 (PIN3) |
IN3 (PIN10) |
A3 |
IN4 (PIN4) |
IN4 (PIN15) |
Stiftanslutningarna för OUTPUT är följande:
Stegmotor |
ULN2003 |
L293D |
Orange |
OUT1 (PIN16) |
OUT1 (PIN3) |
Gul |
OUT2 (PIN15) |
OUT2 (PIN6) |
Rosa |
OUT3 (PIN14) |
OUT3 (PIN11) |
Blå |
OUT4 (PIN13) |
OUT4 (PIN14) |
Kretsschema för stegmotorstyrning med L293D-modul:
Styrande stegmotor med AVR ATmega16
Som redan sagt till skillnad från Servomotor behöver stegmotorer externa drivrutiner, t.ex. ULN2003 eller L293D-motorförare. Så anslut bara Circuit som ovan och ladda upp main.c-programmet som ges i slutet.
Skissen visar stegmotorn som roterar i båda sidor, dvs. medurs och moturs. Om du vill rotera steget i en riktning kommenterar du bara en annan riktnings kodlinjer i skissen.
Komplett AVR-kod för styrning av stegmotor ges nedan. Koden är enkel och kan förstås enkelt. Två koder anges nedan, en för roterande stegmotor med ULN2003 och andra med L293D-modul.
Anslut din USBASP v2.0 och följ instruktionerna i denna länk för att programmera Atmega16 AVR Microcontroller med USBASP och Atmel Studio 7.0. Bygg bara skissen och ladda upp med extern verktygskedja.
Komplett kod med demonstrationsvideo ges nedan.