- Components necessaris
- Pin Descripció del motor pas a pas
- Diagrama de circuits per al control del motor pas a pas mitjançant el mòdul ULN2003
- Diagrama de circuits per al control del motor pas a pas mitjançant el mòdul L293D:
- Control del motor pas a pas amb AVR ATmega16
Els motors pas a pas són motors sense escombretes de corrent continu que poden girar de 0 0 a 360 0 per passos. El motor pas a pas utilitza senyals electrònics per fer girar el motor en passos i cada senyal fa girar l’eix en increment fix (un pas). L’àngel de rotació es controla aplicant certa seqüència de senyals. A diferència del Servo Motor, els motors pas a pas es poden accionar mitjançant pins GPIO del microcontrolador en lloc de pins PWM i poden girar a (+360 0) i (-360 0). L’ordre dels senyals decideix la direcció del motor pas a pas en sentit horari i contrari. Per controlar la velocitat del motor, només hem de canviar la velocitat dels senyals de control aplicats. Els motors pas a pas giren en graons. Hi ha diversos modes de passos per operar el motor pas a pas, com ara pas complet, mig pas i pas micro. Per obtenir més informació sobre els conceptes bàsics, la teoria i el principi de funcionament del motor pas a pas, seguiu l'enllaç.
Prèviament, hem relacionat el motor pas a pas amb molts microcontroladors:
- Interfase del motor pas a pas amb ARM7-LPC2148
- Interfície del motor pas a pas amb Arduino Uno
- Interfície del motor pas a pas amb MSP430G2
- Interfície del motor pas a pas amb STM32F103C8
- Interfase de motor pas a pas amb microcontrolador PIC
- Motor pas a pas d'interfície amb microcontrolador 8051
- Interfície del motor pas a pas amb Raspberry Pi
En aquest tutorial farem una interfície del motor pas a pas 28BYJ-48 amb el microcontrolador AVR Atmega16 mitjançant Atmel Studio 7.0. Es calcula que el motor pas a pas funciona en 5V. Interfocarem el motor pas a pas amb els controladors del motor, és a dir, ULN2003 i L293. Tots dos seran impulsats per un subministrament de 5 V. Per simplificar la interfície, estem utilitzant el mòdul de preconstrucció dels dos controladors de motor. També podeu utilitzar IC independents ULN2003 i L293D. El nombre de cables i ponts pot ser més gran, així que només heu de tenir precaució mentre connecteu totes les connexions.
Components necessaris
- Motor pas a pas (28BYJ-48)
- Mòdul ULN2003 / Controlador de motor L293D
- CI de microcontrolador Atmega16
- Oscil·lador de vidre de 16 MHz
- Dos condensadors 100nF
- Dos condensadors de 22pF
- Polsador
- Jumper Wires
- Taula de pa
- USBASP v2.0
- Led (qualsevol color)
Pin Descripció del motor pas a pas

Diagrama de circuits per al control del motor pas a pas mitjançant el mòdul ULN2003
Connecteu tots els components tal com es mostra al diagrama següent quan utilitzeu ULN2003. De la mateixa manera, el relacionarem amb L293D al següent pas. Estem utilitzant PORTA d'Atmega16 per connectar el motor pas a pas tant per als controladors de motor. No cal connectar el pin de 5 V del motor pas a pas. Només són necessaris els passadors de la bobina per moure el motor pas a pas. L’ordre dels passadors és molt important per conduir el motor pas a pas, ja que l’energia de les bobines hauria de ser per aconseguir passos. En aquest projecte s’utilitzen quatre entrades d’ULN2003 i quatre sortides d’ULN2003. Les entrades es connectaran als pins PORTA i les sortides es connectaran als pins de senyal del motor pas a pas. A més, connecteu un polsador al pin Restableix per restablir Atmega16 sempre que sigui necessari. Connecteu Atmega16 amb un circuit oscil·lador de cristall adequat. Tot el sistema s’alimentarà amb un subministrament de 5 V.

A continuació es mostra la imatge real del mòdul de controlador de motor ULN2003:

A continuació hem donat connexions de pins Atmega16 amb ULN2003 i L293D per girar el motor pas a pas. La interfície del motor pas a pas amb el mòdul L293D s'explica a la secció posterior. Recordeu que només es necessita un mòdul ULN2003 o L293D per al control del motor pas a pas.
Les connexions de pin per a INPUT són les següents:
|
Atmega16 |
ULN2003 |
L293D |
|
A0 |
IN1 (PIN1) |
IN1 (PIN2) |
|
A1 |
IN2 (PIN2) |
IN2 (PIN7) |
|
A2 |
IN3 (PIN3) |
IN3 (PIN10) |
|
A3 |
IN4 (PIN4) |
IN4 (PIN15) |
Les connexions de pin per a OUTPUT són les següents:
|
Motor pas a pas |
ULN2003 |
L293D |
|
taronja |
OUT1 (PIN16) |
OUT1 (PIN3) |
|
Groc |
OUT2 (PIN15) |
OUT2 (PIN6) |
|
Rosa |
OUT3 (PIN14) |
OUT3 (PIN11) |
|
Blau |
OUT4 (PIN13) |
OUT4 (PIN14) |

Diagrama de circuits per al control del motor pas a pas mitjançant el mòdul L293D:



Control del motor pas a pas amb AVR ATmega16
Com ja s'ha dit, a diferència del Servo Motor, els motors Stepper necessiten controladors externs, per exemple, controlador de motor ULN2003 o L293D. Per tant, només cal que connecteu el circuit tal com s’indica a dalt i carregueu el programa main.c que s’ofereix al final.
L'esbós mostra el motor pas a pas que gira en ambdós costats, és a dir, en sentit horari i contrari. Si voleu girar el pas a pas en una direcció, simplement comenteu les línies de codi d'una altra direcció a l'esbós.
A continuació es mostra el codi AVR complet per controlar el motor pas a pas. El codi és senzill i es pot entendre fàcilment. A continuació es donen dos codis, un per al motor pas a pas rotatiu amb ULN2003 i el segon amb mòdul L293D.
Connecteu el vostre USBASP v2.0 i seguiu les instruccions d’aquest enllaç per programar el microcontrolador AVR Atmega16 mitjançant USBASP i Atmel Studio 7.0. Simplement creeu l’esbós i pengeu-lo mitjançant una cadena d’eines externa.
A continuació es mostra el codi complet amb el vídeo de demostració.
