Come usare L298n per controllare il motore a corrente continua con Arduino

Ciao a tutti,

Benvenuto in questo tutorial, controlla prima il video che contiene un po 'di spiegazione, qui stiamo usando un driver L298n Dual H-bridge per controllare un motore DC usando Arduino, puoi controllare di più su Internet se hai bisogno di ulteriori informazioni ma qui dobbiamo far funzionare le cose in modo da poterle adattare facilmente ai vostri progetti, spero vi piaccia.

Passaggio 1: controllo semplice e cambio di direzione

In questo passaggio puoi collegare il driver come nella foto o modificarlo per adattarlo al tuo progetto, non dimenticare di collegare il GND dal driver con il GND di Arduino, per l'alimentazione qui ho usato una batteria da 9v, tu può alimentarlo da una fonte di alimentazione o batteria, anche il pin + 5v del driver può alimentare il tuo Arduino se lo metti in Vin dalla scheda Arduino,

Qui ho usato solo un motore, questo modulo può far funzionare 2 motori CC o 1 motore passo-passo.

Test 1: per prima cosa proviamo ad accendere il motore in una direzione e poi a spegnerlo, quindi lo cabliamo come in figura ed ecco il codice.

 // Questo codice deve essere utilizzato con il driver motore L298n Dual H-bridge 
// Accende un motore a corrente continua per un certo tempo e lo spegne // consultare surtrtech.blogspot.com per maggiori informazioni int in1 = 9; // Dichiarando i pin in cui in1 in2 dal driver sono collegati
 int in2 = 8; // qui sono cablati con D9 e D8 di Arduino 
 void setup () {pinMode (in1, OUTPUT); // Dichiarando le modalità pin, ovviamente sono output pinMode (in2, OUTPUT); 
 } 
 // Prima di iniziare il loop dovresti creare funzioni di tipo "void" per controllare i pin del driver // Qui ho creato due funzioni, la prima gira un motore in una direzione (puoi cambiarla passando LOW e HIGH // e il il secondo per arrestare il motore 
 void TurnMotorA () {digitalWrite (in1, HIGH); digitalWrite (in2, LOW); } 
 void TurnOFFA () {digitalWrite (in1, LOW); digitalWrite (in2, LOW); } 
 void loop () {TurnMotorA (); // nel loop usiamo la funzione per girare il motore per 3 secondi e arrestarlo per 2 secondi di ritardo (3000); TurnOFFA (); ritardo (2000); } 

Test 2: Accensione / spegnimento, cambio di direzione, quindi accensione / spegnimento (si mantiene lo stesso cablaggio di cui sopra)

 // Questo codice deve essere utilizzato con il driver motore L298n Dual H-bridge 
// Accende un motore a corrente continua per un certo tempo in una direzione, lo spegne, gira nell'altra direzione e lo spegne di nuovo // Per ulteriori informazioni, consultare surtrtech.blogspot.com
 int in1 = 9; // Dichiarando i pin in cui in1 in2 dal driver sono collegati int in2 = 8; // qui sono cablati con D9 e D8 di Arduino 
 void setup () {pinMode (in1, OUTPUT); // Dichiarando le modalità pin, ovviamente sono output pinMode (in2, OUTPUT); 
 } 
 // Prima di iniziare il loop dovresti creare funzioni di tipo "void" per controllare i pin del driver // Qui ho creato tre funzioni, una per girare il motore in una direzione "# 1", l'altra nell'altra direzione "# 3 "// e il secondo per arrestare il motore // Per cambiare direzione si commuta ALTO con BASSO e viceversa 
 void TurnMotorA () {digitalWrite (in1, HIGH); digitalWrite (in2, LOW); } 
 void TurnOFFA () {digitalWrite (in1, LOW); digitalWrite (in2, LOW); } void TurnMotorA2 () {digitalWrite (in1, LOW); digitalWrite (in2, HIGH); } 
 void loop () {TurnMotorA (); // Passiamo alla direzione 1 per 3 secondi, quindi ci fermiamo per un ritardo di 2 secondi (3000); TurnOFFA (); ritardo (2000); TurnMotorA2 () // Passiamo alla direzione 2 per 3 secondi, quindi ci fermiamo per un ritardo di 2 secondi (3000); TurnOFFA (); ritardo (2000); } 

Passaggio 2: controllo della velocità

In questo passaggio rimuoveremo il ponticello che si trova sul pin ENA e controlleremo questo pin mediante un segnale PWM emesso dalla scheda Arduino e ci consentirà di controllare la velocità del motore DC.

Test 3: Accensione / spegnimento a bassa velocità quindi accensione / spegnimento ad alta velocità (il cablaggio è come il precedente ma ora si rimuove il ponticello e si collega il pin enA con il pin pwm da Arduino, qui ho usato D10)

 // Questo codice deve essere utilizzato con il driver motore L298n Dual H-bridge 
// Accende un motore a corrente continua per un certo tempo a bassa velocità e lo spegne, quindi si accende ad alta velocità // Per ulteriori informazioni, consultare surtrtech.blogspot.com
 int in1 = 9; // Dichiarando i pin in cui in1 in2 dal driver sono collegati int in2 = 8; // qui sono cablati con D9 e D8 da Arduino int ConA = 10; // E aggiungiamo il pin per controllare la velocità dopo aver rimosso il suo ponticello // Assicurati che sia collegato a un pin in grado di fornire un segnale PWM 
 void setup () {pinMode (in1, OUTPUT); // Dichiarando le modalità pin, ovviamente sono output pinMode (in2, OUTPUT); pinMode (ConA, OUTPUT); } 
 // Prima di iniziare il loop dovresti creare funzioni di tipo "void" per controllare i pin del driver // qui ho creato tre funzioni, la prima è quella di girare il motore in una direzione con velocità (100) // La seconda a girare disattivato // E l'ultimo a ruotarlo nella stessa direzione della prima ma maggiore velocità (250) // Range di velocità (0-255) 
 void TurnMotorA () {digitalWrite (in1, LOW); digitalWrite (in2, HIGH); analogWrite (ConA, 100); } 
 void TurnOFFA () {digitalWrite (in1, LOW); digitalWrite (in2, LOW); analogWrite (ConA, 0); } void TurnMotorA2 () {digitalWrite (in1, LOW); digitalWrite (in2, HIGH); analogWrite (ConA, 250); } 
 void loop () {TurnMotorA (); // Sequenza: accensione a bassa velocità, arresto, rotazione di nuovo ad alta velocità e ritardo di arresto (2000); 
 TurnOFFA (); ritardo (2000); 
 TurnMotorA2 (); ritardo (4000); 
 TurnOFFA (); ritardo (2000); } 

Articoli Correlati