L298N: modulo per il controllo dei motori per Arduino

l298n

Esistono molti moduli per Arduino o per l'utilizzo in progetti fai da te da parte dei produttori. In caso di L298N è un modulo per il controllo dei motori. Con loro puoi usare semplici codici per programma la nostra scheda Arduino ed essere in grado di controllare i motori DC in modo semplice e controllato. Generalmente, questo tipo di modulo viene utilizzato maggiormente nella robotica o negli attuatori che utilizzano motori, sebbene possa essere utilizzato per una moltitudine di applicazioni.

Abbiamo già inserito tutto ciò di cui hai bisogno il modulo ESP, con chip ESP8266, un modulo che permette di estendere le capacità Schede Arduino e altri progetti in modo che abbiano la connettività WiFi. Questi moduli non possono essere utilizzati solo isolatamente, la cosa buona è che possono essere combinati. Ad esempio, un ESP8266 può essere utilizzato per il nostro prototipo e l'L298N, con il quale avremmo un motore controllabile tramite Internet o wireless.

Introduzione alla L298N e alle schede tecniche:

Pinout l298n

Sebbene con Arduino si possa lavorare anche con motori passo-passo, che sono ben noti nella robotica, in questo caso è solitamente più comune utilizzare il controller o driver per motori DC. È possibile ottenere informazioni sul chip L298 e sui moduli nelle schede tecniche dei produttori, ad esempio STMicroelectronics da questo link. Se vuoi vedere una scheda tecnica del modulo specifico, e non solo il chip, puoi scaricare questo altro PDF del Handsontec L298N.

Ma in generale, un L298N è un driver di tipo H-bridge che consente di controllare la velocità e la direzione di rotazione dei motori CC. Può essere utilizzato anche con motori passo-passo facilmente grazie al 2 H-bridge che implementa. Vale a dire un ponte in H, il che significa che è formato da 4 transistor che permetteranno di invertire la direzione della corrente in modo che il rotore del motore possa ruotare in una direzione o nell'altra come vogliamo. Questo è un vantaggio rispetto ai controller che consentono di controllare solo la velocità di rotazione (RPM) controllando solo il valore della tensione di alimentazione.

L'L298N può funzionare con vari tensioni, da 3v a 35v, e ad un'intensità di 2A. Questo è ciò che determinerà realmente le prestazioni o la velocità di rotazione del motore. Bisogna tenere conto che l'elettronica che il modulo consuma consuma solitamente intorno ai 3v, quindi il motore riceverà sempre 3v in meno dalla potenza a cui lo stiamo alimentando. È un consumo piuttosto elevato, infatti ha un elemento ad alta potenza che necessita di un dissipatore come puoi vedere nell'immagine.

Per controllare la velocità si può fare qualcosa di inverso a quello che abbiamo fatto con l'LM35, in questo caso, invece di ottenere una certa tensione in uscita e doverla convertire in gradi, qui sarà il contrario. Alimentiamo il driver con una tensione inferiore o superiore da ottenere una svolta più veloce o più lenta. Inoltre, il modulo L298N consente anche di alimentare la scheda Arduino a 5v purché alimentiamo il driver con una tensione di almeno 12v.

Integrazione con Arduino

schema elettrico di l298n con Arduino

Ci moltitudine di progetti con cui è possibile utilizzare questo modulo L298N. In effetti, puoi solo immaginare tutto ciò che potresti farci e metterti al lavoro. Ad esempio, un semplice esempio potrebbe essere il controllo di due motori in corrente continua come si può vedere nello schema precedente realizzato con Fritzing.

Prima di lavorare con l'L298N dobbiamo tenere conto che l'ingresso del modulo o Vin supporta tensioni comprese tra 3v e 35v e che dobbiamo collegarlo anche a massa o GND, come si può vedere nell'immagine rispettivamente con il cavo rosso e nero. Una volta collegato all'alimentazione, la prossima cosa è collegare il motore oi due motori che accetta di controllare contemporaneamente. Questo è semplice, devi solo collegare i due terminali del motore alla scheda di connessione che ha il modulo su ciascun lato.

E ora arriva forse il più complicato, ed è quello di collegare le connessioni del modulo o pin su Arduino correttamente. Ricorda che se il jumper del modulo o il ponte del regolatore è chiuso, cioè acceso, il regolatore di tensione del modulo è attivato e c'è un'uscita 5v che puoi usare per alimentare la scheda Arduino. Se invece rimuovi il jumper disattivi il regolatore e devi alimentare Arduino in autonomia. occhio! Poiché il jumper può essere impostato solo fino a tensioni di 12v, per più di questo è necessario rimuoverlo per non danneggiare il modulo ...

Lo puoi apprezzare ci sono 3 connessioni per ogni motore. Quelli contrassegnati da IN1 a IN4 sono quelli che controllano i motori A e B. Se non hai collegato uno dei motori perché ne hai bisogno solo uno, non dovrai metterli tutti. I ponticelli su ogni lato di queste connessioni per ogni motore sono ENA ed ENB, cioè per attivare i motori A e B, che devono essere presenti se vogliamo che entrambi i motori funzionino.

a motore A (Sarebbe lo stesso per B), dobbiamo avere IN1 e IN2 collegati che controlleranno il senso di rotazione. Se IN1 è in HIGH e IN2 in LOW, il motore gira in una direzione, e se sono in LOW e HIGH, gira nell'altra. Per controllare la velocità di rotazione è necessario rimuovere i jumper INA o INB e utilizzare i pin che appaiono per collegarlo al PWM di Arduino, in modo che se gli diamo un valore da 0 a 255 otteniamo rispettivamente una velocità bassa o maggiore.

Per quanto riguarda anche la programmazione è facile nell'IDE di Arduino. Ad esempio, un codice sarebbe:

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

Puoi essere il primo a lasciare un commento

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.