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
Posta un commento