L298N

Cos'è?

Il modulo L298N serve per controllare dei carichi con Arduino.

Componenti?


1 ENA - ponticello di abilitazione motore a corrente continua. 

 Non rimuovere nel caso si utilizzi un motore passo-passo.

Connettersi a un'uscita PWM per il controllo della velocità del motore DC.

2 IN 1

3 IN 2

4 IN 3

5 IN 4

6 ENB - ponticello di abilitazione motore a corrente continua.

Non rimuovere nel caso si utilizzi un motore passo-passo. 

Connettersi a un'uscita PWM per il controllo della velocità del motore DC.

7 Collegamento della tensione di alimentazione del motore

la tensione massima è di 35V DC. 

Rimuovere il ponticello [10] se la tensione è > 12V DC

8 GND

9 uscita 5V se 12V ponticello in luogo

10 jumper 12V 

rimuovere questo se si utilizza una tensione di alimentazione superiore a 12V DC, ciò consente l'alimentazione tramite il regolatore 5V di bordo

11 motore DC o motore passo-passo 

12 motore DC o motore passo-passo 

13 motore DC o motore passo-passo 

14 motore DC  o motore passo-passo 


Esempio di codice

//motore a

int enA = 10; entrata A nel pin 10

int in1 = 9; entrata 1 nel pin 9

int in2 = 8; entrata 2 nel pin 8

//motore b

int in3 = 7; entrata 3 nel pin 7

int in4 = 6; entrata 4 nel pin 6

int enB = 5; entrata B nel pin 5


void setup()

{

  //imposta i motori come output

  pinMode(enA, OUTPUT); l'entrata A è un output

  pinMode(enB, OUTPUT); l'entrata B è un output

  pinMode(in1, OUTPUT); l'entrata 1 è un output

  pinMode(in2, OUTPUT); l'entrata 2 è un output

  pinMode(in3, OUTPUT); l'entrata 3 è un output

  pinMode(in4, OUTPUT); l'entrata 4 è un output

}


void loop()

{

  // accende il motore a

  digitalWrite(in1, HIGH); il pin 1 è alto

  digitalWrite(in2, LOW); il pin 2 è basso

  // imposta la velocità a 200 (0~255)

  analogWrite(enA, 200); l'onda PWM nel pin A è 200


  // accende il motore b

  digitalWrite(in3, HIGH); il pin 3 è alto

  digitalWrite(in4, LOW); il pin 4 è basso

  // imposta la velocità a 200 (0~255)

  analogWrite(enB, 200); l'onda PWM nel pin B è 200

  delay(2000); aspetta 2 secondi


  // cambia la direzione dei motori

  digitalWrite(in1, LOW); il pin 1 è basso

  digitalWrite(in2, HIGH); il pin 2 è alto

  digitalWrite(in3, LOW); il pin 3 è basso

  digitalWrite(in4, HIGH); il pin 4 è alto

  delay(2000); aspetta 2 secondi


  // spegne tutti i motori

  digitalWrite(in1, LOW); il pin 1 è basso

  digitalWrite(in2, LOW); il pin 1 è basso

  digitalWrite(in3, LOW); il pin 1 è basso

  digitalWrite(in4, LOW); il pin 1 è basso

  delay(1000); aspetta 1 secondo


  //riaccende i motori

  digitalWrite(in1, LOW); il pin 1 è basso

  digitalWrite(in2, HIGH); il pin 2 è alto

  digitalWrite(in3, LOW); il pin 3 è basso

  digitalWrite(in4, HIGH); il pin 4 è alto


  // accelera da zero a 255

  for (int i = 0; i < 256; i++) all'inizio l'ingresso è uguale a 1 poi se l'ingresso è maggiore di 256 aumenta

  {

    analogWrite(enA, i); l'onda PWM nell'entrata A è l'ingresso

    analogWrite(enB, i); l'onda PWM nell'entrata B è l'ingresso

    delay(20); aspetta

  }


  // decelera

  for (int i = 255; i >= 0; --i) all'inizio l'ingresso è uguale poi se l'ingresso è  maggiore o uguale a zero i diminui

  {

    analogWrite(enA, i);

    analogWrite(enB, i);

    delay(20);

  }


  // spegne tutti i motori

  digitalWrite(in1, LOW); l'ingresso 1 è spento

  digitalWrite(in2, LOW); l'ingresso 2 è spento

  digitalWrite(in3, LOW); l'ingresso 3 è spento

  digitalWrite(in4, LOW); l'ingresso 4 è spento


  delay(1000); aspetta 1 secondo

}



Commenti