Motores dc solo van para adelante

HOLA agradezco quienes me puedan ayudar.
Resulta que los motores van solo hacia adelante y atrás nada...
Pasan los 7 segundos y vuelve a funcionar para adelante, es como que no ejecuta los comandos para hacer girar al contrario.
he probado el modulo L298N dándole energía en out 1, out 2, out 3 y out 4 y viceversa en cada par y el motor si gira ambos lados...
el problema es cuando cargo la programación no funciona para atrás y si escribo para que desde el comienzo vaya atrás no hace nada... NO entiendo porque no giran al contrario... ¿alguien sabe que pasa?

Programación:

int IN1 = 6;      
int IN2 = 7;      
int ENA = 5;     
int IN3 = 8;      
int IN4 = 9;      
int ENB = 10;      

void setup(){
  pinMode(IN1, OUTPUT);   
  pinMode(IN2, OUTPUT);    
  pinMode(ENA, OUTPUT);   
  pinMode(IN3, OUTPUT);   
  pinMode(IN4, OUTPUT);    
  pinMode(ENB, OUTPUT);   
}

void loop(){
  digitalWrite(ENA, HIGH);  // habilita motor A (giro en un sentido)
  digitalWrite(IN1, LOW); // IN1 a 0
  digitalWrite(IN2, HIGH);  // IN2 a 1
  digitalWrite(ENB, HIGH);  // habilita motor B (giro en un sentido)
  digitalWrite(IN3, LOW);   // IN3 a 0
  digitalWrite(IN4, HIGH);  // IN4 a 1
  delay(3000);      // demora de 3 seg.

  digitalWrite(ENA, LOW); // ENA en 0 para deshabilitar motor
  digitalWrite(ENB, LOW);  // ENB en 0 para deshabilitar motor
  delay(2000);      // demora de 2 seg.

  digitalWrite(ENA, HIGH);  // habilita motor A (giro en sentido contrario)
  digitalWrite(IN1, HIGH);  // IN1 a 1
  digitalWrite(IN2, LOW); // IN2 a 0
  digitalWrite(ENB, HIGH);  // habilita motor B (giro en sentido contrario)
  digitalWrite(IN3, HIGH);  // IN3 a 1
  digitalWrite(IN4, LOW);   // IN4 a 0
  delay(3000);      // demora de 3 seg

  digitalWrite(ENA, LOW); // ENA en 0 para deshabilitar motor
  digitalWrite(ENB, LOW); // ENB en 0 para deshabilitar motor
  delay(2000);      // demora de 2 seg.
}

Su publicacion se MUEVE a su ubicacion actual ya que es mas adecuada.

Moderador:
Por favor, lee las Normas del foro y edita tu código/error usando etiquetas de código.

Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en </>



Si posteas en el foro en inglés usa idioma inglés para expresarte.
Si escribes en español debes usar el foro Arduino en español.
Acabo de cerrar otra publicación tuya en el foro en español lo que indica que posteaste en el foro en inglés y mas tarde en el español. En el otro post te indico la posible sanción de continuar repitiendo dobles posteos.

Yo no respondo hasta que se editen los códigos.

El error que tienes esta en ENA y ENB
Cuando quieres que avance le pones

 // Máxima velocidad del motor 
  analogWrite(ENA, 255);

o varias la velocidad con algo como

// Aumenta la velocidad de cero a máximo
  for (int i = 0; i < 256; i=i+1) {
    analogWrite(enA, i);    
    delay(50);
  }
  
  // Disminuye la velocidad de máximo a cero
  for (int i = 255; i >= 0; i=i-1) {
    analogWrite(enA, i);  
    delay(50);
  }

repite para ENB

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.