- Componenten vereist
- Pin Beschrijving van stappenmotor
- Schakelschema voor stappenmotorbesturing met behulp van ULN2003-module
- Schakelschema voor stappenmotorbesturing met behulp van de L293D-module:
- Stappenmotor aansturen met AVR ATmega16
Stappenmotoren zijn borstelloze gelijkstroommotoren die in stappen van 0 0 tot 360 0 kunnen draaien. Stappenmotor gebruikt elektronische signalen om de motor in stappen te laten draaien en elk signaal roteert de as in vaste stappen (één stap). De rotatie-engel wordt bestuurd door een bepaalde reeks signalen toe te passen. In tegenstelling tot de servomotor kunnen stappenmotoren worden aangedreven door GPIO-pinnen van de microcontroller te gebruiken in plaats van PWM-pinnen en kunnen ze draaien in (+360 0) en (-360 0). De volgorde van de signalen bepaalt de richting met de klok mee en tegen de klok in van de stappenmotor. Om de snelheid van de motor te regelen, hoeven we alleen de snelheid van de toegepaste stuursignalen te wijzigen. De stappenmotoren draaien in stappen. Er zijn verschillende stappenmodi om de stappenmotor te bedienen, zoals volledige stap, halve stap en microstap. Volg de link om meer te weten te komen over de basis, theorie en werkingsprincipe van stappenmotor.
We hebben eerder stappenmotor gekoppeld aan veel microcontrollers:
- Interfacestappenmotor met ARM7-LPC2148
- Stappenmotor koppelen met Arduino Uno
- Interfacestappenmotor met MSP430G2
- Interfacestappenmotor met STM32F103C8
- Interfacestappenmotor met PIC-microcontroller
- Interfacestappenmotor met 8051 Microcontroller
- Stappenmotor koppelen met Raspberry Pi
In deze tutorial zullen we 28BYJ-48 stappenmotor koppelen aan Atmega16 AVR Microcontroller met Atmel Studio 7.0. De stappenmotor is geschikt om te werken in 5V. We gaan de stappenmotor koppelen aan beide motoraandrijvingen, dwz ULN2003 en L293. Beide worden aangedreven door 5V-voeding. Om de interface te vereenvoudigen, gebruiken we een voorgebouwde module van beide motoraandrijvingen. U kunt ook ULN2003 en L293D standalone IC's gebruiken. Het aantal draden en jumpers kan groter zijn, dus wees voorzichtig bij het aansluiten van alle verbindingen.
Componenten vereist
- Stappenmotor (28BYJ-48)
- ULN2003-module / L293D-motordriver
- Atmega16 Microcontroller IC
- 16Mhz kristaloscillator
- Twee 100nF condensatoren
- Twee 22pF condensatoren
- Druk op de knop
- Doorverbindingsdraden
- Breadboard
- USBASP v2.0
- Led (elke kleur)
Pin Beschrijving van stappenmotor
Schakelschema voor stappenmotorbesturing met behulp van ULN2003-module
Sluit alle componenten aan zoals weergegeven in het onderstaande schema bij gebruik van ULN2003. Evenzo zullen we het in de volgende stap met behulp van L293D verbinden. We gebruiken PORTA van Atmega16 om de stappenmotor voor beide motordrivers te koppelen. Het is niet nodig om de 5V-pin van de stappenmotor aan te sluiten. Alleen de spoelpennen zijn nodig om de stappenmotor te verplaatsen. De volgorde van de pennen is erg belangrijk om de stappenmotor aan te drijven, aangezien de bekrachtiging van de spoelen zou moeten zijn om stappen te bereiken. In dit project worden vier ingangen van ULN2003 en vier uitgangen van ULN2003 gebruikt. De ingangen worden verbonden met PORTA-pinnen en de uitgangen worden verbonden met de signaalpinnen van de stappenmotor. Sluit ook een drukknop aan op de reset-pin om Atmega16 te resetten wanneer dat nodig is. Verbind Atmega16 met het juiste kristaloscillatorcircuit. Het hele systeem wordt gevoed door 5V-voeding.
Hieronder ziet u de werkelijke afbeelding van de ULN2003 Motor Driver Module:
Hieronder hebben we Atmega16 pin aansluitingen gegeven met ULN2003 en L293D om de stappenmotor te laten draaien. De koppeling van stappenmotor met L293D-module wordt in de latere sectie uitgelegd, onthoud dat slechts één module ofwel ULN2003 of L293D nodig is voor de besturing van de stappenmotor.
De pinverbindingen voor INPUT zijn als volgt:
Atmega16 |
ULN2003 |
L293D |
A0 |
IN1 (PIN1) |
IN1 (PIN2) |
A1 |
IN2 (PIN2) |
IN2 (PIN7) |
A2 |
IN3 (PIN3) |
IN3 (PIN10) |
A3 |
IN4 (PIN4) |
IN4 (PIN15) |
De pinverbindingen voor OUTPUT zijn als volgt:
Stappenmotor |
ULN2003 |
L293D |
Oranje |
OUT1 (PIN16) |
OUT1 (PIN3) |
Geel |
OUT2 (PIN15) |
OUT2 (PIN6) |
Roze |
OUT3 (PIN14) |
OUT3 (PIN11) |
Blauw |
OUT4 (PIN13) |
OUT4 (PIN14) |
Schakelschema voor stappenmotorbesturing met behulp van de L293D-module:
Stappenmotor aansturen met AVR ATmega16
Zoals al verteld, in tegenstelling tot servomotor, hebben stappenmotoren externe stuurprogramma's nodig, bijv. ULN2003 of L293D motorstuurprogramma. Sluit dus gewoon het circuit aan zoals hierboven en upload het programma main.c dat aan het einde wordt gegeven.
De schets toont de stappenmotor die aan beide zijden roteert, dwz met de klok mee en tegen de klok in. Als u de stepper in de ene richting wilt draaien, kunt u de coderegels van een andere richting in de sketch gewoon uittesten.
De volledige AVR-code voor het besturen van de stappenmotor wordt hieronder gegeven. Code is eenvoudig en kan gemakkelijk worden begrepen. Hieronder worden twee codes gegeven, één voor roterende stappenmotor met ULN2003 en tweede met L293D-module.
Sluit uw USBASP v2.0 aan en volg de instructies in deze link om de Atmega16 AVR Microcontroller te programmeren met USBASP en Atmel Studio 7.0. Bouw gewoon de schets en upload deze met behulp van een externe toolchain.
De volledige code met demonstratievideo wordt hieronder gegeven.