Dacă intenționați să vă asamblați noul prieten robot, veți dori în cele din urmă să aflați despre controlul motoarelor de curent continuu. Unul dintre cele mai ușoare și ieftine moduri de a controla motoarele de curent continuu este interfața IC driver driver L293D cu Arduino. Poate controla atât viteza, cât și direcția de rotație a două motoare de curent continuu.

control

Și ca bonus, poate controla chiar și un motor pas cu pas unipolar, cum ar fi 28BYJ-48 sau motor pas cu pas bipolar, cum ar fi NEMA 17.

Controlul unui motor DC

Pentru a avea un control complet asupra motorului de curent continuu, trebuie să îi controlăm viteza și direcția de rotație. Acest lucru poate fi realizat prin combinarea acestor două tehnici.

  • PWM - Pentru controlul vitezei
  • Podul H - Pentru controlul direcției de rotație

PWM - Pentru controlul vitezei

Viteza unui motor DC poate fi controlată prin variația tensiunii sale de intrare. O tehnică obișnuită pentru a face acest lucru este utilizarea PWM (Pulse Width Modulation)

PWM este o tehnică în care valoarea medie a tensiunii de intrare este ajustată prin trimiterea unei serii de impulsuri ON-OFF.

Tensiunea medie este proporțională cu lățimea impulsurilor cunoscută sub numele de Ciclul de funcționare.

Cu cât este mai mare ciclul de funcționare, cu atât este mai mare tensiunea medie aplicată motorului de curent continuu (High Speed) și cu atât este mai mică ciclul de funcționare, cu atât este mai mică tensiunea medie aplicată motorului de curent continuu (Low Speed).

Imaginea de mai jos ilustrează tehnica PWM cu diferite cicluri de funcționare și tensiuni medii.

H-Bridge - Pentru controlul direcției de rotație

Direcția de rotație a motorului continuu poate fi controlată prin schimbarea polarității tensiunii sale de intrare. O tehnică obișnuită pentru a face acest lucru este utilizarea unui H-Bridge.

Un circuit H-Bridge conține patru comutatoare cu motorul în centru formând un aranjament asemănător lui H.

Închiderea a două comutatoare speciale în același timp inversează polaritatea tensiunii aplicate motorului. Acest lucru determină o schimbare a direcției de rotire a motorului.

Mai jos animația ilustrează funcționarea circuitului H-Bridge.

IC driver motor L293D

L293D este un driver de motor H-Bridge cu două canale capabil să conducă o pereche de motoare de curent continuu sau un motor pas cu pas.

Asta înseamnă că poate conduce individual până la două motoare, ceea ce îl face ideal pentru construirea platformelor de roboți cu două roți.

Alimentare electrică

IC-ul driverului de motor L293D are de fapt doi pini de intrare de putere și anume. „Vcc1” și „Vcc2”.

Vcc1 este utilizat pentru conducerea circuitelor logice interne care ar trebui să fie de 5V.

De la pinul Vcc2, H-Bridge își obține puterea pentru acționarea motoarelor care pot fi de la 4,5V la 36V. Și amândoi se scufundă într-un teren comun numit GND .

Terminale de ieșire

Canalele de ieșire ale driverului motorului L293D pentru motorul A și B sunt aduse la pinii OUT1, OUT2 și respectiv OUT3, OUT4.

Puteți conecta două motoare de curent continuu cu tensiuni cuprinse între 4,5 și 36V la aceste terminale.

Fiecare canal de pe IC poate livra până la 600mA către motorul de curent continuu. Cu toate acestea, cantitatea de curent furnizată motorului depinde de sursa de alimentare a sistemului.

Pinii de control

Pentru fiecare dintre canalele L293D, există două tipuri de pini de control care ne permit să controlăm viteza și direcția de rotire a motoarelor de curent continuu în același timp și anume. Pinii de control al direcției și pinii de control al vitezei.

Pinii de control al direcției

Folosind știfturile de control al direcției, putem controla dacă motorul se rotește înainte sau înapoi. Acești pini controlează de fapt comutatoarele circuitului H-Bridge din interiorul IC L293D.

IC-ul are doi pini de control al direcției pentru fiecare canal. Pinii IN1, IN2 controlează direcția de rotire a motorului A în timp ce IN3, IN4 controlează motorul B.

Direcția de rotire a unui motor poate fi controlată prin aplicarea fie a unei logici HIGH (5 Volți), fie a unei logice LOW (Ground) acestor ace. Graficul de mai jos ilustrează modul în care se realizează acest lucru.

ÎN 1IN2Direcția de rotire
Scăzut (0)Scăzut (0)Motor oprit
Înalt (1)Scăzut (0)Redirecţiona
Scăzut (0)Înalt (1)Înapoi
Înalt (1)Înalt (1)Motor oprit

Pinii de control al vitezei

Pinii de control al vitezei și anume. ENA și ENB sunt utilizate pentru a porni ON, OFF și pentru a controla viteza motorului A și respectiv a motorului B.

Tragerea acestor știfturi ÎNALT va face ca motoarele să se învârtă, trăgând-o LOW le va opri. Dar, cu modularea lățimii pulsului (PWM), putem controla de fapt viteza motoarelor.

Cablare IC driver driver L293D cu Arduino UNO

Acum, că știm totul despre IC, putem începe să-l conectăm la Arduino!

Începeți prin conectarea sursei de alimentare la motoare. În experimentul nostru, folosim motoare cu cutie de viteze DC (cunoscute și sub numele de motoare „TT”) care se găsesc de obicei la roboții cu tracțiune pe două roți. Sunt evaluate pentru 3 până la 9V. Deci, vom conecta sursa de alimentare externă de 9V la pinul Vcc2.

Apoi, trebuie să furnizăm 5 volți pentru circuitele logice ale L293D. Conectați pinul Vcc1 la ieșirea de 5V pe Arduino. Asigurați-vă că comunați toate motivele din circuit.

Acum, pinii de intrare și activare (ENA, IN1, IN2, IN3, IN4 și ENB) ai IC L293D sunt conectați la șase pini de ieșire digitale Arduino (9, 8, 7, 5, 4 și 3). Rețineți că pinii de ieșire Arduino 9 și 3 sunt ambii activați PWM.

În cele din urmă, conectați un motor la OUT1 și OUT2 și celălalt motor la OUT3 și OUT4. Puteți schimba conexiunile motorului dvs., din punct de vedere tehnic, nu există o cale corectă sau greșită.

Când ați terminat, ar trebui să aveți ceva care să arate similar cu ilustrația de mai jos.

Cod Arduino - Controlul unui motor DC

Următoarea schiță vă va oferi o înțelegere completă a modului de control al vitezei și direcției de rotire a unui motor de curent continuu cu driverul motorului L293D IC și poate servi drept bază pentru experimente și proiecte mai practice.

Explicatie cod:

Codul arduino este destul de simplu. Nu necesită biblioteci pentru ca acesta să funcționeze. Schița începe cu declararea pinilor Arduino la care sunt conectați pinii de control L293D.

În secțiunea de configurare a codului, toți pinii de control ai motorului sunt declarați ca OUTPUT digital și trageți LOW pentru a opri ambele motoare.

În secțiunea buclă a codului numim două funcții definite de utilizator la un interval de secundă.

Aceste funcții sunt:

directionControl () - Această funcție rotește ambele motoare înainte la viteza maximă timp de două secunde. Apoi inversează direcția de rotire a motorului și se rotește încă două secunde. În cele din urmă, oprește motoarele.

control de viteza () - Această funcție accelerează ambele motoare de la zero la viteza maximă prin producerea de semnale PWM utilizând funcția analogWrite (), apoi le decelerează înapoi la zero. În cele din urmă, oprește motoarele.