- Motor pas a pas:
- Controlador de motor pas a pas ULN2003:
- Components necessaris
- Diagrama del circuit i explicació
- Explicació del codi
El motor pas a pas és un motor especialment dissenyat que gira per graons. La velocitat del motor pas a pas depèn de la velocitat del senyal elèctric que s’hi apliqui. Diferents patrons poden controlar la direcció i el tipus de rotació del motor pas a pas. Principalment hi ha disponibles dos tipus de motors pas a pas, unipolars i bipolars. Unipolar és més fàcil d’operar, controlar i també d’obtenir. Aquí, en aquest tutorial, estem relacionant el motor pas a pas amb el microcontrolador PIC PIC16F877A.
Utilitzem motor pas a pas 28BYJ-48 per a aquest projecte que és barat i de fàcil accés. És un motor pas a pas unipolar de 5V CC. També estem utilitzant un mòdul disponible amb aquest motor que consisteix en un IC de controlador de motor pas a pas ULN2003. ULN2003 és una matriu de parells de Darlington, que és útil per accionar aquest motor, ja que el microcontrolador PIC no podria proporcionar el corrent suficient per accionar. ULN2003A és capaç de conduir 500 mA de càrrega amb 600 mA de intensitat màxima.
Motor pas a pas:

Vegem l’especificació del motor pas a pas 28BYJ-48 del full de dades.

Com girar el motor pas a pas:
Si veiem el full de dades veurem el pin-out.

Dins del motor hi ha disponibles dues bobines amb rosca central. El cable vermell és el comú per a tots dos que es connectaran a VCC o 5V.
Altres 4 cables de color rosa, vermell, groc i blau controlaran la rotació en funció del senyal elèctric. A més, segons el moviment, es pot controlar aquest motor mitjançant 3 passos. Mode de conducció completa, mode Half Drive i mode de conducció Wave.
Tres modes de conducció del motor pas a pas:
Accionament complet: si s’alimenten dos electroimants d’estator alhora, el motor funcionarà a parell complet anomenat mode de seqüència de disc complet.
|
Pas |
Blau |
Rosa |
Groc |
taronja |
|
1 |
1 |
1 |
0 |
0 |
|
2 |
0 |
1 |
1 |
0 |
|
3 |
0 |
0 |
1 |
1 |
|
4 |
1 |
0 |
0 |
1 |
Half-Drive: quan s’alimenten alternativament una i dues fases, el motor funcionarà en mode half drive. S'utilitza per augmentar la resolució angular. L’inconvenient és el parell menor produït en aquest moviment.
|
Pas |
Blau |
Rosa |
Groc |
taronja |
|
1 |
1 |
0 |
0 |
0 |
|
2 |
1 |
1 |
0 |
0 |
|
3 |
0 |
1 |
0 |
0 |
|
4 |
0 |
1 |
1 |
0 |
|
5 |
0 |
0 |
1 |
1 |
|
6 |
0 |
0 |
0 |
1 |
|
7 |
1 |
0 |
0 |
1 |
|
8 |
1 |
0 |
0 |
0 |
Wave Drive: en aquest mode, s’activa un electroimant estator. Segueix 4 passos igual que el mode de disc complet. Consumeix poca potència amb poc parell.
|
Pas |
Blau |
Rosa |
Groc |
taronja |
|
1 |
1 |
0 |
0 |
0 |
|
2 |
0 |
1 |
0 |
0 |
|
3 |
0 |
0 |
1 |
0 |
|
4 |
0 |
0 |
0 |
1 |
Prèviament hem interfaçat el motor pas a pas amb altres microcontroladors:
El motor pas a pas també es pot controlar sense cap microcontrolador, consulteu aquest Circuit de control de motor pas a pas.
Controlador de motor pas a pas ULN2003:
Anem a entendre el tauler de sortida que consisteix en ULN2003 IC. És important entendre el pin out.

La part groga s’utilitza per connectar el motor, la part vermella mostra un pont. És important col·locar el pont ja que permetrà protegir el díode de roda lliure per al motor . L' entrada rosa és per a la connexió del microcontrolador.
Girarem el motor en mode d’accionament complet en sentit rellotge i tornarem a girar-lo amb el mode d’acció d’ones en sentit antihorari. Consulteu el vídeo de demostració al final.
Components necessaris
- Pic16F877A
- Kit de programació
- Taula de pa
- Cristall de 20Mhz
- Condensador de disc de 33pF - 2 unitats
- Resistència de 4,7 k
- Filferros i pins de Berg
- Taula de ruptura ULN2003A juntament amb el motor pas a pas 28BYJ-48.
- Cable addicional per connectar
- Alimentador de 5V o adaptador de paret de 500 mA
Diagrama del circuit i explicació

Al diagrama del circuit, al costat esquerre es mostra el PIC16F877A i al costat dret es mostra la connexió ULN2003A. La part del motor ULN2003 i Stepper es troba dins del tauler de sortida.
La connexió de la placa Breakout a la unitat de microcontrolador serà
A. IN1 => Pin33
B. IN2 => Pin34
C. IN3 => Pin35
D. IN4 => Pin36
He connectat tots els components i el vostre maquinari per girar el motor pas a pas amb el microcontrolador PIC.

Si no coneixeu el microcontrolador PIC, seguiu els nostres tutorials PIC sobre microcontroladors que indiquen la secció Introducció al microcontrolador PIC.
Explicació del codi
El codi complet d’aquest controlador de motor pas a pas basat en PIC es dóna al final d’aquest tutorial amb un vídeo de demostració. Com sempre primer, hem d’establir els bits de configuració al microcontrolador pic i després començar amb la funció principal void .
Aquestes són les macros per als bits de configuració de la unitat de microcontrolador i els fitxers de capçalera de la biblioteca.
#define _XTAL_FREQ 200000000 // vidre de freqüència, que s'utilitza en la demora de velocitat #define 1 // velocitat interval de 10 a 1 10 = baix, 1 = més alt # defineix els passos 250 // quant pas que prendrà # defineix les agulles de l'rellotge 0 // direcció cap a la dreta macro #define anti_worwise 1 // macro antiwithwith direction
A la primera línia vam definir la freqüència de cristall que és necessària per a la rutina de retard. Altres macros s'utilitzen per definir opcions relacionades amb l'usuari.
Si veieu el codi, hi ha tres funcions definides per conduir el motor en tres modes amb sentit horari i antihorari. Aquí teniu les tres funcions:
1. void full_drive (direcció de caràcters)
2. void half_drive (direcció de caràcters)
3. void wave_drive (direcció del caràcter)
Consulteu les definicions d’aquestes funcions al codi complet que es mostra a continuació:
Ara amb la funció principal nul·la , estem conduint el motor en sentit horari mitjançant el mode de disc complet segons els passos i, després d’uns quants segons de retard, tornem a girar el motor en sentit antihorari mitjançant el mode de transmissió d’ones.
void main (void) { system_init (); while (1) { / * Conduïu el motor en mode de conducció completa en sentit horari * / per a (int i = 0; i
Així podem fer girar el motor pas a pas amb el microcontrolador PIC. Els motors pas a pas són molt útils en màquines CNC, robòtica i altres aplicacions incrustades.
