Para manejar la ruta de mi robot a traves de 2 motores DC controlados por un L298N he realizado varios void que luego introduzco en el void loop() para que sigan un bucle.
Mi problematica es que cuando introduzco estos void en el void setup, al añadir el tiempo de ejecucion al traves de la funcion delay() pues no se me activa niguno, no hace caso.
Pero por separado si funcionan
Os dejo el ejemplo de mi programacion, para que veais que tengo distintos vois creados: void Adelante(), void Atras, void Izquierda(), void Derecha(), void parar();
//MOTOR B
int IN3 = 7;
int IN4 = 4;
//MOTOR A
int IN1 = 2;
int IN2 = 3;
void setup()
{
//MOTOR B
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
//MOTOR A
pinMode (IN1, OUTPUT);
pinMode (IN2, OUTPUT);
}
void Derecha()
{
// Motor B
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
analogWrite(IN3, 200);
//MOTOR A
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(IN1, 200);
}
void Adelante()
{
// Motor B
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(IN3, 200);
//MOTOR A
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
analogWrite(IN1, 200);
}
void Atras()
{
// Motor B
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(IN3, 200);
//MOTOR A
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
analogWrite(IN1, 200);
}
void Izquierda()
{
// Motor B
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(IN3, 200);
//MOTOR A
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
analogWrite(IN1, 200);
}
void Parar()
{
// Motor B
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(IN3, 200);
//MOTOR A
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
analogWrite(IN1, 200);
}
void loop() {
Adelante ();
delay (2000);
Atras ();
delay (2000);
Derecha ();
delay (1000);
Izquierda ();
delay (1000);
Parar ();
delay (4000);
}
De esta forma no ocurre nada, únicamente funcionan los motores a una velocidad hacia delante y ya, no cumple la rutina creada en el void loop().
¿Puede ser problema del delay?