Cuprins:

Conducerea unui motor pas cu pas fără microcontroler .: 7 pași
Conducerea unui motor pas cu pas fără microcontroler .: 7 pași

Video: Conducerea unui motor pas cu pas fără microcontroler .: 7 pași

Video: Conducerea unui motor pas cu pas fără microcontroler .: 7 pași
Video: Stepper Motor Pas cu pas 2024, Noiembrie
Anonim
Image
Image

În acest instructabil, voi conduce un motor pas cu 28-BYJ-48, cu o placă de matrice UNL2003 darlington, numită uneori x113647, fără un microcontroler.

Va avea pornire / oprire, înainte / înapoi și control al vitezei.

Motorul este un motor cu trepte unipolare cu 2048 trepte pe rotație în modul cu trepte complete. Fișa tehnică pentru motor se găsește la

Cele două dispozitive pot fi cumpărate împreună de la mai mulți furnizori. Am primit-o pe a mea de la kjell.com

Bing it sau google it pentru a găsi un furnizor lângă tine.

Mai întâi voi parcurge câțiva pași și părți necesare pentru a-l rula, apoi voi adăuga niște pași și părți pentru un control mai mare.

Ar trebui să fii avertizat că părțile pe care le folosesc sunt cele pe care, întâmplător, le am în cufărul meu de comori și nu neapărat părțile cele mai potrivite pentru acest scop.

De asemenea, ar trebui să fii avertizat că acesta este primul meu instructabil și că sunt destul de nou în domeniul electronicii.

Vă rugăm să adăugați comentarii dacă credeți că am făcut ceva ce nu ar trebui, sau dacă aveți sugestii pentru îmbunătățiri sau sugestii pentru piese mai potrivite.

Pasul 1: Lista pieselor

Părțile principale
Părțile principale

Părțile utilizate pentru acest proiect sunt

  • Pană de pâine
  • Motor pas cu pas 28byj-48
  • Placă de tranzistor Darlington ULN2003 (x113647)
  • 74HC595 registru de schimbare
  • 74HC393 contor binar de ondulare
  • DS1809-100 Potențiometru digital Dallastat
  • 74HC241 tampon octal
  • 3 × butoane tactile
  • Rezistențe 3 × 10kΩ
  • Condensatori ceramici 2 × 0,1µF
  • 1 × 0,01 µF condensator ceramic
  • Firele de conectare
  • Alimentare 5V

Pasul 2: Părțile principale

Părțile principale
Părțile principale

Registrul de schimbare 74HC595

Motorul este deplasat dând în mod repetat celor patru pini de intrare ai plăcii UNL2003 această secvență:

1100-0110-0011-1001

Acest lucru va conduce motorul în ceea ce se numește modul pas complet. Modelul 1100 este deplasat în mod repetat spre dreapta. Acest lucru sugerează un registru de schimbare. Modul în care funcționează un registru de schimbare este, la fiecare ciclu de ceas, biții din registru se deplasează un loc spre dreapta, înlocuind bitul din stânga cu valoarea pinului de intrare la momentul respectiv. Prin urmare, ar trebui alimentat cu două cicluri de ceas de 1 și apoi cu două cicluri de ceas de 0 pentru a genera modelul pentru scufundarea motorului.

Pentru a genera semnalele de ceas, este necesar un oscilator, care generează o serie constantă de impulsuri, de preferință o undă pătrată curată. Aceasta va constitui baza deplasării semnalelor către motor.

Pentru a genera „două cicluri de unul și apoi două cicluri de 0”, se folosesc flip-flops.

Am un registru de schimbare 74HC595. Acesta este un cip foarte popular, care este descris în numeroase videoclipuri Instructables și Youtube.

Fișa tehnică poate fi găsită la

Un instructable frumos este 74HC595-Shift-Register-Demistified de bweaver6, Registrul de schimbare 74HC595 funcționează astfel încât la fiecare ciclu de ceas, datele din registrul său de 8 biți să fie deplasate la dreapta și schimbând valoarea pinului de intrare în poziția cea mai stângă. Prin urmare, ar trebui alimentat cu două cicluri de ceas de 1 și apoi cu două cicluri de ceas de 0.

Datele sunt deplasate la creșterea impulsului ceasului. În cazul în care flip-flop-ul ar trebui să comute la marginea de cădere a ceasului, astfel încât 74HC595 va avea date de intrare stabile la marginea ceasului în creștere.

74HC595 in poate fi conectat astfel:

Pinul 8 (GND) -> GND

Pin 16 (VCC) -> 5V Pin 14 (SER) -> Date in Pin 12 (RCLK) -> Clock input Pin 11 (SRCLK) -> Clock input Pin 13 (OE) -> GND Pin 10 (SRCRL) -> Pinii 5V 15 și 1-3 vor genera tiparul pentru a acționa motorul.

Conectarea RCLK și SRCLK asigură faptul că registrul de date al cipului este întotdeauna sincronizat cu registrul de ieșire. Punerea pinului 13 la masă face ca conținutul registrului de ieșire să fie imediat vizibil pentru pinii de ieșire (Q0 - Q7).

Cronometrul 555

Pentru a genera impulsul ceasului, poate fi utilizat cipul cu temporizator 555. Acesta este, de asemenea, un cip foarte popular și este chiar mai descris și discutat decât registrul de schimbare. Wikipedia are un articol frumos la

Fișa tehnică este aici:

Acest cip poate, printre altele, să genereze impulsuri de ceas cu undă pătrată. Rezistențele și condensatoarele externe sunt utilizate pentru a controla frecvența și ciclul de funcționare (pe fracțiune).

Când este configurat pentru a genera în mod repetat impulsuri, se spune că cipul 555 se află în modul astabil. Acest lucru se face prin cablarea acestuia ca în imaginea de mai sus. (imagine de jjbeard [Domeniul public], prin Wikimedia Commons):

Pinul 1 -> GND

Pin 2 -> R1 (10kΩ) -> Pin 7 Pin 2 -> Pin 6 Pin 3 este Pinul de ieșire 4 (resetare) -> 5V Pin 5 -> 0,01µF -> GND Pin 6 -> 0,1µF -> GND Pin 7 -> R2 (10kΩ) -> 5V Pin 8 -> 5V

Ieșirea Pinului 3 va fi conectată la pinii de ceas de intrare (Pinii 11 și Pinii 12) ai registrului de schimbare 74HC595.

Frecvența semnalului de ieșire (și, prin urmare, viteza motorului pas cu pas) este determinată de valorile rezistorului R1 și R2 și de valoarea condensatorului C.

Timpul ciclului T va fi ln (2) C (R1 + 2 R2) sau aproximativ 0,7 C (R1 + 2 R2). Frecvența este 1 / T.

Ciclul de funcționare, fracțiunea din timpul ciclului în care semnalul este ridicat, este (R1 + R2) / (R1 + 2R2). Ciclul de funcționare nu este foarte important pentru acest proiect.

Folosesc 10kΩ, atât pentru R1 cât și pentru R2, și C = 0,1µF.

Acest lucru oferă o frecvență de aproximativ 480Hz și este aproape de frecvența maximă pe care am descoperit-o că motorul pas cu cap se poate descurca fără a se bloca.

Pentru a genera modelul 1100 deplasat, repetat de la 74HC595, pinul 14 (SER) ar trebui menținut ridicat pentru două cicluri de ceas și apoi scăzut pentru două cicluri de ceas în mod repetat. Adică pinul ar trebui să oscileze cu jumătate din frecvența ceasului.

Contorul de ondulare dual binar 74HC393

74HC393 contează în binar și asta înseamnă, de asemenea, că poate fi folosit pentru a împărți frecvențele impulsurilor la puteri de două, Fișa sa tehnică este aici:

74HC393 este dual, are un contor de 4 biți pe fiecare parte.

La marginea de cădere a pulsului ceasului, primul pin de ieșire comută și se oprește. Prin urmare, pinul de ieșire 1 va oscila cu jumătate din frecvența ceasului de intrare. La marginea de cădere a pinului de ieșire unu, pinul de ieșire doi activează și dezactivează. Și așa mai departe pentru toți cei patru pini de ieșire. Ori de câte ori pinul n se oprește, pinul n + 1 comută.

Pinul n + 1 se schimbă la jumătate la fel de des ca pinul n. Aceasta este numărarea binară. Contorul poate conta până la 15 (toți cei patru biți 1) înainte de a porni din nou pe zero. Dacă ultimul pin de ieșire al contorului 1 este conectat ca un ceas la contorul 2, acesta poate fi numărat până la 255 (8 biți).

Pentru a crea un impuls cu jumătate din frecvența ceasului de intrare, este necesar doar pinul de ieșire 1. Adică, numărând doar de la zero la unu.

Deci, dacă numărarea se face prin impulsul ceasului de la 555, pinul de pe contorul 74HC393 care reprezintă bitul 2, va oscila cu jumătate din frecvența ceasului. Prin urmare, acest lucru poate fi conectat la pinul SER al registrului de schimbare 74HC595, pentru a face acest lucru să genereze modelul dorit.

Cablarea contorului binar 74HC393 ar trebui să fie:

Pinul 1 (1CLK) -> 74HC595 Pinul 11, 12 și 555 Pinul 3

Pin 2 (1CLR) -> GND Pin 4 (1QB) -> 74HC595 Pin 14 Pin 7 (GND) -> GND Pin 14 (VCC) -> 5V Pin 13 (2CLK) -> GND (neutilizat) Pin 12 (2CLR)) -> 5V (neutilizat)

Pasul 3: Fă-l să ruleze

Fă-l rula
Fă-l rula
Fă-l rula
Fă-l rula

Acum putem face motorul să funcționeze, dacă pinii 0-3 ai 74HC595 sunt conectați la pinii 1-4 respectiv ai plăcii ULN2003.

Deocamdată, înlocuiți condensatorul 0,1µF la pinul 6 al temporizatorului 555 cu un 10µF. Acest lucru va face ciclul ceasului de sute de ori mai lung și veți putea vedea ce se întâmplă.

Pentru aceasta pot fi utilizate LED-urile de pe plăcile ULN2003. Deconectați motorul de pe placa ULN2003. Conectați pinii 1 la 4 ai plăcii la ieșirea QA-QD (pinii 7, 9, 10 și 11) ai 74HC595. Conectați - și + placa ULN2003 la sol și 5V. Dacă alimentarea este pornită, ar trebui să vedeți modelul dorit pe LED-uri.

Dacă doriți să vedeți ce se întâmplă în contorul binar 74HC393, conectați-vă la pinii 3-6 din acel loc.

Dacă modelul pare corect, opriți-l, înlocuiți condensatorul cu 0.1µF din nou, conectați pinii de intrare 1 - 4 ai plăcii ULN2003 la pinii de ieșire QA - QD ai 74HC595 și conectați din nou motorul.

Cu alimentarea pornită, motorul ar trebui să funcționeze acum.

Pasul 4: Controlul vitezei

Control de viteza
Control de viteza

Viteza motorului pas este guvernată de frecvența de ieșire a temporizatorului 555. Din nou, aceasta este guvernată de valorile rezistențelor R1 și R2 și ale condensatorului C1 conectat la acesta. Prin conectarea unui potențiometru de 100kΩ în serie cu R2, frecvența poate fi între 480Hz și 63Hz. Pașii pr. a doua a motorului, va fi jumătate din frecvența temporizatorului 555.

Am folosit un potențiometru digital DS1809-100, care este făcut pentru utilizarea butonului. Butoanele care conectează pinul 2 (UC) și pinul 7 (DC) la 5V fac ca rezistența să crească / scadă între bornele RH (Pin 1) sau RL (Pin 4) și ștergătorul Pin 6 (RW). Ținând apăsat un buton mai mult de o secundă, butonul se repetă automat.

Fișa tehnică poate fi găsită aici:

Cablajul este astfel:

Pinul 1 (RH) neutilizat

Pin 2 (UC) -> buton tactil 1 Pin 3 (STR) -> GND Pin 4 (RL) -> 555 Pin 2 Pin 5 -> GND Pin 6 (RW) -> 10kΩ -> 555 pin 7 Pin 7 (DC)) -> buton tactil 2 Pin 8 -> 5V

Cablarea butonului tactil 1:

Pinul 1/2 -> DS1809 Pinul 2

Pin 3/4 -> 5V

Cablarea butonului tactil 2:

Pinul 1/2 -> DS1809 Pinul 7

Pin 3/4 -> 5V

Acum, viteza poate fi reglată.

Pasul 5: Start / Stop

Start Stop
Start Stop

Pentru a porni și opri motorul pas cu pas, poate fi utilizat Pinul 4 (pinul Reset) al temporizatorului 555. Dacă acest lucru este scăzut, nu vor exista impulsuri de ieșire de la pinul 3.

Un buton tactil va fi folosit pentru a comuta pornirea și oprirea. Dacă apăsați butonul o dată, ar trebui să porniți motorul, apoi să îl apăsați din nou, să-l opriți. Pentru a obține acest comportament, este nevoie de un flip-flop. Dar 74HC393 care există deja, poate fi folosit și. 74HC393 are două părți și doar o jumătate este utilizată ca divizor de frecvență pentru pulsul ceasului.

Deoarece contorul binar este de fapt doar un set de flip-flop-uri în serie, se poate utiliza primul flip-flop din cealaltă parte. Prin conectarea unui buton tactil, astfel încât pinul 13 (2CLK) să fie scăzut atunci când butonul este apăsat și ridicat dacă nu este, pinul 12 va comuta pe fiecare nivel scăzut. Conectarea Pinului 12 la Pinul 4 al modelului 555 va porni și opri ieșirea acestuia și, prin urmare, motorul.

Butoanele tactile sunt puțin complicate, deoarece sunt mecanice. Ele pot „sări”, adică pot trimite mai multe semnale la fiecare apăsare. Conectarea unui condensator de 0,1 µF peste buton ajută la evitarea acestui lucru.

Deci, un buton tactil (butonul 3 este adăugat, iar conexiunea la Pinul 4 al 555 este modificată.

Cablarea butonului:

Pin 1/2 -> 10kΩ -> 5V

Pin 1/2 -> 0.1µF -> Pin Pin 3/4 -> 74HC393 Pin 13 (2CLK)

Următoarele modificări sunt aduse modelului 555:

Pinul 4 (Resetare) -> 74HC393 Pinul 11 (2QA)

Butonul 3 ar trebui să funcționeze acum ca o comutare de pornire / oprire.

Rețineți că un motor oprit în acest fel va consuma în continuare energie.

Pasul 6: Controlul direcției

Controlul direcției
Controlul direcției

Pentru a controla direcția motorului, este necesar un alt buton, apoi un alt flip-flop. Cu toate acestea, voi înșela, folosind următorul flip-flop al 74HC393, după flip-flop-ul on / off și butonul on / off.

Când știftul de direcție (pinul 2QA) scade, următorul pin (pinul 2QB) este comutat. Prin urmare, apăsarea repetată a butonului va duce la OFF - ON FORWARDS - OFF - ON BACKWARDS - OFF - ON FORWARDS etc.

Pentru a face motorul să funcționeze înapoi, modelul alimentat către ULN2003 ar trebui inversat. Acest lucru s-ar putea face cu un registru de schimbare bidirecțională, dar nu am unul. 74HC595 nu este bidirecțional.

Cu toate acestea, am descoperit că aș putea folosi bufferul octal 74HC241. Acest buffer are două părți de 4 biți, cu pini OE (activare ieșire) separați. Primul pin OE controlează primii patru pini de ieșire, iar al doilea ultimii patru pini de ieșire. Când OE este pe pinii de ieșire au aceeași valoare ca pinii de intrare corespunzători și când este oprit, pinii de ieșire vor fi în stare de impedanță ridicată, ca și cum nu ar fi conectați. Mai mult, unul dintre pinii OE este activ scăzut, iar celălalt este activ ridicat, deci atunci când le conectați împreună, doar jumătate din buffer va fi activă în acel moment.

Deci, pentru aceeași intrare, o jumătate din tampon poate conduce motorul înainte și cealaltă jumătate înapoi. Care jumătate este activă, depinde de valoarea pinilor OE.

Fișa tehnică pentru 74HC241 se găsește la

Cablarea ar putea fi astfel:

Pinul 1 (1OE) -> 74HC293 Pinul 10 (2QB)

Pin 2 (1A1) -> 74HC595 Pin 15 Pin 3 (1Y4) -> ULN2003 Pin 1 Pin 4 (1A2) -> 74HC595 Pin 1 Pin 5 (1Y3) -> ULN2003 Pin 2 Pin 6 (1A3) -> 74HC595 Pin 2 Pin 7 (1Y2) -> ULN2003 Pin 3 Pin 8 (1A4) -> 74HC595 Pin 3 Pin 9 (1Y1) -> ULN2003 Pin 4 Pin 10 (GND) -> Masă Pin 11 (2A1) -> Pin 2 (1A1) Pin 12 (1Y4) -> Pin 9 (2Y1) Pin 13 (2A2) -> Pin 4 (1A2) Pin 14 (1Y3) -> Pin 7 (2Y2) Pin 15 (2A3) -> Pin 6 (1A3) Pin 16 (1Y2) -> Pin 5 (2Y3) Pin 17 (2A3) -> Pin 8 (1A4) Pin 18 (1Y2) -> Pin 3 (2Y4) Pin 19 (2OE) -> Pin 1 (1OE) Pin 20 (VCC) -> 5V

Acum, cablarea ar trebui să fie finalizată doar prin alimentarea cu 5 V. Asigurați-vă că sursa de alimentare poate furniza suficient curent pentru a acționa atât motorul, cât și circuitele.

Pasul 7: Concluzii

Concluzii
Concluzii

Motorul pas cu pas poate fi controlat fără microcontroler.

IC-urile folosite aici, au fost unele pe care le-am avut dinainte. Majoritatea nu sunt optime pentru acest lucru și ar putea fi utilizate mai multe alternative.

  • Pentru a genera impulsuri, cipul cu temporizator 555 este o alegere bună, dar există mai multe alternative, de exemplu, cea descrisă în acest instructabil.
  • Pentru controlul vitezei, ar putea fi utilizat orice potențiometru, nu doar unul digital. Dacă aveți un potențiometru de 10kΩ, mai degrabă decât un 100kΩ, rezistențele de 10kΩ ar putea fi înlocuite cu 1KΩ și condensatorul de 0,1 µF cu un condensator de 1 µF (împărțiți toate rezistențele și înmulțiți condensatorul cu același număr pentru a păstra sincronizarea).
  • Utilizarea unui registru de deplasare bidirecțională, de ex. 74HC194 ar face controlul direcției mai ușor.
  • Pentru controlul butoanelor, 74HC393 ar putea fi înlocuit cu un flip-flop, de ex. 74HC73. 555 poate fi, de asemenea, cablat pentru a acționa ca un comutator.

Recomandat: