- Motor pas cu pas:
- Driver de pas cu pas ULN2003:
- Componente necesare
- Diagrama și explicația circuitului
- Explicarea codului
Motorul pas cu pas este un motor special conceput care se rotește în trepte. Viteza motorului pas cu pas depinde de rata semnalului electric aplicat acestuia. Diferite tipare pot controla direcția și tipul de rotație al motorului pas cu pas. Sunt disponibile în principal două tipuri de motoare pas cu pas, Unipolar și Bipolar. Unipolar este mai ușor de operat, controlat și, de asemenea, mai ușor de obținut. Aici, în acest tutorial, interfațăm motorul pas cu pas cu microcontrolerul PIC PIC16F877A.
Folosim motor pas cu pas 28BYJ-48 pentru acest proiect, care este ieftin și ușor disponibil. Este un motor pas cu pas unipolar de 5V DC. Folosim, de asemenea, un modul disponibil cu acest motor, care constă în driverul motorului pas cu pas ULN2003 IC. ULN2003 este o matrice de perechi Darlington, care este utilă pentru a conduce acest motor, deoarece microcontrolerul PIC nu ar putea furniza suficient curent pentru a conduce. ULN2003A este capabil să conducă 500mA de sarcină cu 600mA de curent de vârf.
Motor pas cu pas:
Să vedem specificația motorului pas cu pas 28BYJ-48 din foaia tehnică.
Cum se rotește motorul pas cu pas:
Dacă vom vedea fișa tehnică, vom vedea pin-out-ul.
În interiorul motorului sunt disponibile două bobine cu filet central. Sârmă roșie este comun pentru ambele care vor fi conectate la VCC sau 5V.
Alte 4 fire roz, roșu, galben și albastru vor controla rotația în funcție de semnalul electric. De asemenea, în funcție de mișcare, acest motor poate fi controlat folosind 3 pași. Modul unitate completă, modul Half Drive și modul Wave drive.
Trei moduri de conducere ale motorului pas cu pas:
Acționare completă: Dacă sunt alimentați doi electro-magneți statorici la un moment dat, motorul va funcționa la un cuplu maxim, denumit modul secvență de acționare completă.
Etapa |
Albastru |
Roz |
Galben |
portocale |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Half-Drive: Când alternativ sunt alimentate una și două faze, motorul va funcționa în modul half drive. Este folosit pentru a crește rezoluția unghiulară. Dezavantajul este cuplul mai mic produs în această mișcare.
Etapa |
Albastru |
Roz |
Galben |
portocale |
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: În acest mod, un electromagnet stator este pornit. Urmează 4 pași la fel ca modul Full-drive. Consumă putere redusă cu cuplu redus.
Etapa |
Albastru |
Roz |
Galben |
portocale |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
0 |
4 |
0 |
0 |
0 |
1 |
Am interfațat anterior motorul pas cu pas cu alte microcontrolere:
Motorul pas cu pas poate fi, de asemenea, controlat fără niciun microcontroler, consultați acest circuit al driverului motorului pas cu pas.
Driver de pas cu pas ULN2003:
Să înțelegem panoul care constă în ULN2003 IC. Este important să înțelegeți pin out.
Galbenă Porțiunea este folosit pentru a conecta motorul, The Red Porțiunea arată un săritor, Este important să plasați jumper - ul, deoarece va permite o protecție dioda freewheeling pentru motor . Intrarea roz este pentru conexiunea microcontrolerului.
Vom roti motorul în modul de acționare completă în sensul acelor de ceasornic și îl vom roti din nou cu modul de acționare în undă în sens invers acelor de ceasornic. Verificați videoclipul demonstrativ la final.
Componente necesare
- Pic16F877A
- Set de programare
- Breadboard
- Cristal de 20Mhz
- Condensator de disc de 33pF - 2buc
- Rezistor de 4.7k
- Sârme și știfturi Berg
- Placă de rupere ULN2003A împreună cu motorul pas cu pas 28BYJ-48.
- Cabluri suplimentare pentru conectare
- Alimentator de 5V sau adaptor de perete cu 500mA
Diagrama și explicația circuitului
În schema circuitului, pe partea stângă este afișat PIC16F877A și pe partea dreaptă este afișată conexiunea ULN2003A. ULN2003 și partea motorului Stepper se află în interiorul plăcii de rupere.
Conexiunea de la placa Breakout la unitatea de microcontroler va fi-
A. IN1 => Pin33
B. IN2 => Pin34
C. IN3 => Pin35
D. IN4 => Pin36
Am conectat toate componentele și hardware-ul dvs. pentru a roti motorul pas cu pas cu microcontrolerul PIC este gata.
Dacă nu sunteți nou în PIC Microcontroller, urmați tutorialele noastre PIC Microcontroller care indică prin Noțiuni introductive despre PIC Microcontroller.
Explicarea codului
Codul complet pentru acest driver de motor pas cu pas bazat pe PIC este dat la sfârșitul acestui tutorial cu un videoclip demonstrativ. Ca întotdeauna mai întâi, trebuie să setăm biții de configurare în microcontrolerul pic și apoi să începem cu funcția principală nulă .
Acestea sunt macro-urile pentru biții de configurare ai unității de microcontroler și fișierele antet bibliotecă.
#define _XTAL_FREQ 200000000 // cristal de frecvență, utilizat în întârzierea vitezei #define 1 // Viteză oscila între 10 și 1 10 = cel mai mic, 1 = cea mai mare #define steps 250 // cat de mult pas va dura #define sensul acelor de ceasornic 0 // sensul acelor de ceasornic macro #define anti_clwisewise 1 // în sens antiorar macro
În prima linie am definit frecvența cristalelor care este necesară pentru rutina de întârziere. Alte macrocomenzi sunt utilizate pentru a defini opțiunile legate de utilizator.
Dacă vedeți codul, există trei funcții definite pentru acționarea motorului în trei moduri în sensul acelor de ceasornic și în sens invers acelor de ceasornic. Iată cele trei funcții:
1. void full_drive (direcția char)
2. void half_drive (direcția char)
3. void wave_drive (direcția char)
Verificați definițiile acestor funcții în codul complet dat mai jos:
Acum, în funcția principală nulă , conducem motorul în sensul acelor de ceasornic folosind modul full-drive în funcție de pași și, după câteva secunde de întârziere, rotim din nou motorul în sens invers acelor de ceasornic folosind modul de acționare în undă.
void main (void) { system_init (); while (1) { / * Conduceți motorul în modul de deplasare complet în sensul acelor de ceasornic * / pentru (int i = 0; i
Astfel putem roti motorul pas cu pas cu microcontrolerul PIC. Motoarele pas cu pas sunt foarte utile în mașini CNC, robotică și alte aplicații încorporate.