Salve stavo cercando di capire come controllare due motori dc con arduino ed il modulo L298N ora dopo aver eseguito le connessioni come in foto e caricato lo sketch i motori non partono ho provato singolarmente i motori e funzionano mi chiedo cosa sbaglio??? Imgur: The magic of the Internet l’unica differenza e che arduino lo alimento indipendentemente
//motore a
int enA = 10;
int in1 = 9;
int in2 = 8;
//motore b
int in3 = 7;
int in4 = 6;
int enB = 5;
void setup()
{
//imposta i motori come output
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}
void loop()
{
// accende il motore a
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
// imposta la velocità a 200 (0~255)
analogWrite(enA, 200);
// accende il motore b
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
// imposta la velocità a 200 (0~255)
analogWrite(enB, 200);
delay(2000);
// cambia la direzione dei motori
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
delay(2000);
// spegne tutti i motori
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(1000);
//riaccende i motori
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
// accelera da zero a 255
for (int i = 0; i < 256; i++)
{
analogWrite(enA, i);
analogWrite(enB, i);
delay(20);
}
// decelera
for (int i = 255; i >= 0; --i)
{
analogWrite(enA, i);
analogWrite(enB, i);
delay(20);
}
// spegne tutti i motori
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(1000);
}