L298N: module om motoren voor Arduino aan te sturen

l298n

Er zijn veel modules voor Arduino of voor gebruik in doe-het-zelfprojecten door makers. In het geval van L298N is een module om motoren aan te sturen. Met hen kunt u eenvoudige codes gebruiken om programmeer ons Arduino-bord en in staat zijn om DC-motoren op een eenvoudige en gecontroleerde manier aan te sturen. Over het algemeen wordt dit type module meer gebruikt in robotica of in gemotoriseerde actuatoren, hoewel het voor een groot aantal toepassingen kan worden gebruikt.

We hebben al alles ingevuld wat je nodig hebt de ESP-module, met ESP8266-chipeen module waarmee de capaciteiten kunnen worden uitgebreid Arduino-boards en andere projecten zodat ze WiFi-connectiviteit hebben. Deze modules kunnen niet alleen afzonderlijk worden gebruikt, het mooie is dat ze gecombineerd kunnen worden. Zo kan een ESP8266 worden gebruikt voor ons prototype en de L298N, waarmee we via internet of draadloos een bestuurbare motor zouden krijgen.

Inleiding tot de L298N en datasheets:

l298n pin-out

Hoewel je met Arduino ook kunt werken met stappenmotoren, die goed bekend zijn in de robotica, is het in dit geval meestal gebruikelijker om de controller of driver voor DC-motoren. U kunt informatie over de L298-chip en de modules krijgen in de datasheets van de fabrikant, zoals STMicroelectronics via deze link. Als je een datasheet van de specifieke module wilt zien, en niet alleen de chip, kun je deze andere pdf van de Handsontec L298N.

Maar in grote lijnen is een L298N een driver van het H-brug-type waarmee de snelheid en draairichting van DC-motoren kunnen worden geregeld. Dankzij de 2 H-brug dat implementeert. Dat wil zeggen, een brug in H, wat betekent dat het wordt gevormd door 4 transistors die het mogelijk maken om de richting van de stroom om te keren, zodat de rotor van de motor in de ene of de andere richting kan draaien zoals we willen. Dit is een voordeel ten opzichte van controllers waarmee u alleen de rotatiesnelheid (RPM) kunt regelen door alleen de waarde van de voedingsspanning te regelen.

De L298N kan met verschillende werken voltages, van 3v tot 35v, en met een intensiteit van 2A. Dit is wat echt de prestatie of rotatiesnelheid van de motor zal bepalen. Houd er rekening mee dat de elektronica die de module verbruikt meestal ongeveer 3 V verbruikt, dus de motor zal altijd 3 V minder ontvangen van het vermogen waarnaar we hem voeden. Het is een wat hoog verbruik, in feite heeft het een hoog vermogen element dat een heatsink nodig heeft zoals je op de afbeelding kunt zien.

Om de snelheid te regelen, kun je in dit geval iets omgekeerds doen aan wat we met de LM35 hebben gedaan, in plaats van een bepaalde spanning aan de uitgang te krijgen en deze in graden om te rekenen, hier is het tegenovergestelde. We voeden de bestuurder met een lagere of hogere spanning om te verkrijgen een snellere of langzamere bocht. Bovendien maakt de L298N-module het ook mogelijk dat het Arduino-bord wordt gevoed op 5v, zolang we de driver van minimaal 12v spanning voorzien.

Integratie met Arduino

schakelschema van l298n met Arduino

Er veel projecten waarmee u deze module L298N kunt gebruiken. In feite kun je je gewoon alles voorstellen wat je ermee zou kunnen doen en aan het werk gaan. Een eenvoudig voorbeeld is bijvoorbeeld de besturing van twee gelijkstroommotoren, zoals te zien is in het vorige diagram gemaakt met Fritzing.

Voordat we met de L298N gaan werken moeten we er rekening mee houden dat de input van de module of Vin ondersteunt spanningen tussen 3v en 35v en dat we hem ook op aarde of GND moeten aansluiten, zoals te zien is in de afbeelding met respectievelijk de rode en zwarte kabel. Eenmaal aangesloten op de stroom, is het volgende dat u de motor of de twee motoren die hij accepteert om tegelijkertijd te besturen, moet aansluiten. Dit is eenvoudig, u hoeft alleen de twee klemmen van de motor aan te sluiten op het verbindingslipje met de module aan elke kant.

En nu komt misschien wel het meest gecompliceerde, en is het aansluiten van de module-aansluitingen of pinnen goed op Arduino. Onthoud dat als de jumper of brug van de module is gesloten, dat wil zeggen, de spanningsregelaar van de module is geactiveerd en er een 5v-uitgang is die u kunt gebruiken om het Arduino-bord van stroom te voorzien. Aan de andere kant, als je de jumper verwijdert, deactiveer je de regelaar en moet je de Arduino zelfstandig van stroom voorzien. oog! Omdat de jumper alleen kan worden ingesteld op 12v voltages, moet je deze voor meer dan dat verwijderen om de module niet te beschadigen ...

U kunt dat waarderen er zijn 3 aansluitingen voor elke motor. Degenen die zijn gemarkeerd als IN1 tot IN4 zijn degenen die motoren A en B aansturen. Als u niet een van de motoren hebt aangesloten omdat u er maar één nodig heeft, hoeft u ze niet allemaal te plaatsen. De jumpers aan elke kant van deze aansluitingen voor elke motor zijn ENA en ENB, dat wil zeggen om motor A en B te activeren, die aanwezig moeten zijn als we willen dat beide motoren werken.

naar motor A (Het zou hetzelfde zijn voor B), we moeten IN1 en IN2 hebben aangesloten die de draairichting regelen. Als IN1 HOOG is en IN2 LAAG, draait de motor in de ene richting, en als ze LAAG en HOOG zijn, draait hij de andere. Om de rotatiesnelheid te regelen, moet je de INA- of INB-jumpers verwijderen en de pinnen gebruiken die lijken om hem met de Arduino PWM te verbinden, zodat als we hem een ​​waarde van 0 tot 255 geven, we respectievelijk een lage of hogere snelheid krijgen.

Wat betreft de programmeren is ook eenvoudig in de Arduino IDE. Een code zou bijvoorbeeld zijn:

<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>

Wees de eerste om te reageren

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.