L298N: modul pentru controlul motoarelor pentru Arduino

l298n

Există multe module pentru Arduino sau pentru a fi utilizate în proiectele DIY de către producători. În cazul în care L298N este un modul pentru controlul motoarelor. Cu ele puteți utiliza coduri simple pentru programează placa noastră Arduino și să poată controla motoarele de curent continuu într-un mod simplu și controlat. În general, acest tip de modul este utilizat mai mult în robotică sau în actuatoare care utilizează motoare, deși poate fi folosit pentru o multitudine de aplicații.

Am introdus deja tot ce aveți nevoie modulul ESP, cu cip ESP8266, A modul care permite extinderea capacităților Plăcile Arduino și alte proiecte, astfel încât să aibă conectivitate WiFi. Aceste module nu pot fi utilizate numai izolat, dar este bine că pot fi combinate. De exemplu, un ESP8266 poate fi folosit pentru prototipul nostru și L298N, cu care am obține un motor controlabil prin Internet sau wireless.

Introducere în L298N și fișe tehnice:

l298n pinout

Deși cu Arduino puteți lucra și cu motoare pas cu pas, care sunt bine cunoscute în robotică, în acest caz este de obicei mai frecvent să utilizați controlerul sau driver pentru motoare de curent continuu. Puteți obține informații despre cipul L298 și modulele din fișele tehnice ale producătorilor, cum ar fi STMicroelectronics din acest link. Dacă doriți să vedeți o foaie de date a modulului specific și nu doar cipul, puteți descărca acest alt PDF al fișierului Handsontec L298N.

Dar, în linii mari, un L298N este un driver de tip H-bridge care permite controlul vitezei și direcției de rotație a motoarelor de curent continuu. De asemenea, poate fi utilizat cu motoare pas cu pas cu ușurință datorită celor 2 H-pod care implementează. Adică un pod în H, ceea ce înseamnă că este format din 4 tranzistoare care vor permite inversarea direcției curentului astfel încât rotorul motorului să se poată roti într-o direcție sau alta așa cum dorim. Acesta este un avantaj față de controlere care vă permit doar să controlați viteza de rotație (RPM) controlând doar valoarea tensiunii de alimentare.

L298N poate funcționa cu diverse tensiuni, de la 3v la 35v, și la o intensitate de 2A. Aceasta este ceea ce va determina cu adevărat performanța sau viteza de rotație a motorului. Trebuie luat în considerare faptul că electronica consumată de modul consumă de obicei aproximativ 3v, astfel încât motorul va primi întotdeauna cu 3v mai puțin din puterea la care îl alimentăm. Este un consum oarecum ridicat, de fapt are un element de putere mare care are nevoie de un radiator așa cum puteți vedea în imagine.

Pentru a controla viteza, puteți face ceva invers față de ceea ce am făcut cu LM35, în acest caz, în loc să obțineți o anumită tensiune la ieșire și să trebuiască să o convertiți în grade, aici va fi opusul. Pentru a obține, alimentăm șoferul cu o tensiune mai mică sau mai mare o cotitură mai rapidă sau mai lentă. În plus, modulul L298N permite și alimentarea plăcii Arduino la 5v atâta timp cât alimentăm șoferul cu tensiune de cel puțin 12v.

Integrare cu Arduino

schema circuitului l298n cu Arduino

Acolo o multitudine de proiecte cu care puteți utiliza acest modul L298N. De fapt, îți poți imagina tot ce ai putea face cu el și te vei apuca de treabă. De exemplu, un exemplu simplu ar fi controlul a două motoare cu curent continuu, așa cum se poate vedea în diagrama anterioară realizată cu Fritzing.

Înainte de a lucra cu L298N trebuie să luăm în considerare faptul că intrarea modulului sau a lui Vin suportă tensiuni între 3v și 35v și că trebuie să-l conectăm și la masă sau GND, așa cum se poate vedea în imagine cu cablurile roșii și respectiv negre. Odată conectat la alimentare, următorul lucru este să conectați motorul sau cele două motoare pe care acceptă să le controleze simultan. Acest lucru este simplu, trebuie doar să conectați cele două terminale ale motorului la fila de conectare care are modulul pe fiecare parte.

Și acum vine probabil cel mai complicat și este să conectezi conexiunile modulului sau pini la Arduino's în mod corespunzător. Amintiți-vă că, dacă jumperul sau puntea regulatorului modulului este închis, adică pornit, regulatorul de tensiune al modulului este activat și există o ieșire de 5V pe care o puteți utiliza pentru a alimenta placa Arduino. Pe de altă parte, dacă scoateți jumperul, dezactivați regulatorul și trebuie să alimentați Arduino în mod independent. ochi! Deoarece jumper-ul poate fi setat doar la tensiuni de 12V, pentru mai mult de atât trebuie să îl scoateți pentru a nu deteriora modulul ...

Puteți aprecia asta există 3 conexiuni pentru fiecare motor. Cele marcate ca IN1 până la IN4 sunt cele care controlează motoarele A și B. Dacă nu aveți unul dintre motoarele conectate pentru că aveți nevoie doar de unul, atunci nu va trebui să le puneți pe toate. Jumperii de pe fiecare parte a acestor conexiuni pentru fiecare motor sunt ENA și ENB, adică pentru a activa motorul A și B, care trebuie să fie prezent dacă dorim ca ambele motoare să funcționeze.

la motorul A (Ar fi același lucru pentru B), trebuie să avem conectate IN1 și IN2 care vor controla direcția de rotație. Dacă IN1 este în HIGH și IN2 în LOW, motorul se rotește într-o direcție, iar dacă sunt în LOW și HIGH, se rotește în cealaltă. Pentru a controla viteza de rotație, trebuie să eliminați jumperii INA sau INB și să utilizați pinii care apar pentru a-l conecta la Arduino PWM, astfel încât dacă îi dăm o valoare de la 0 la 255, obținem o viteză mai mică sau mai mare.

Cu privire la programarea este ușoară și în IDE-ul Arduino. De exemplu, un cod ar fi:

<pre>// Motor A
int ENA = 10;
int IN1 = 9;
int IN2 = 8;

// Motor B
int ENB = 5;
int IN3 = 7;
int IN4 = 6;

void setup ()
{
 // Declaramos todos los pines como salidas
 pinMode (ENA, OUTPUT);
 pinMode (ENB, OUTPUT);
 pinMode (IN1, OUTPUT);
 pinMode (IN2, OUTPUT);
 pinMode (IN3, OUTPUT);
 pinMode (IN4, OUTPUT);
}
//Mover los motores a pleno rendimiento (255), si quieres bajar la velocidad puedes reducir el valor hasta la mínima que son 0 (parados)</pre>
<pre>//Para mover los motores en sentido de giro contrario, cambia IN1 a LOW e IN2 a HIGH

void Adelante ()
{
 //Direccion motor A
 digitalWrite (IN1, HIGH);
 digitalWrite (IN2, LOW);
 analogWrite (ENA, 255); //Velocidad motor A
 //Direccion motor B
 digitalWrite (IN3, HIGH);
 digitalWrite (IN4, LOW);
 analogWrite (ENB, 255); //Velocidad motor B
}</pre>

Fii primul care comenteaza

Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.