Buenas Tardes
Agradezco por anticipado su ayuda.
Mi proyecto se basa en una entrada con un sensor PIR, que activará un motor por 20 seg en un sentido y después quedará esperando a que sea activado de nuevo el sensor para que el motor giro en sentido contrario por 20 seg.
El proyecto ya lo tengo montado con el Puente H y demás equipos y funciona bien. El problema es que sin razón aparente en ocasiones se repite el giro hacia uno de los sentidos, en una o más veces lo que daña mi proyecto ya que quiero que el movimiento sea específico.
Observando al pasar más minutos de espera suele a repetirse el movimiento en un sentido, en ocasiones trabaja adecuadamente durante largo tiempo sin problema.
Agradezco su ayuda para asegurar que siempre se cumpla una función por bloque y no se repita el giro en un sentido.
byte sensorpir = 3;
byte Mot = 11;
byte Moto = 10;
byte Bomb = 8;
byte Bomba = 7;
byte ENA = 6;
void setup ()
{
pinMode (sensorpir, INPUT);
pinMode (Mot, OUTPUT);
pinMode (Moto, OUTPUT);
pinMode (Bomb, OUTPUT);
pinMode (Bomba, OUTPUT);
analogWrite (ENA, 160);
Serial.begin(9600);
}
void loop()
{
if (digitalRead(sensorpir) == HIGH)
Serial.println (" Detectado movimiento por el sensor pir");
digitalWrite(Mot, LOW);
digitalWrite(Moto,HIGH);
digitalWrite(Bomb, LOW);
digitalWrite(Bomba,HIGH);
delay(20000);
digitalWrite(Mot, LOW);
digitalWrite(Moto,LOW);
digitalWrite(Bomb, LOW);
digitalWrite(Bomba,LOW);
delay(5000);
{
if (digitalRead(sensorpir) == HIGH)
Serial.println (" Detectado movimiento por el sensor pir");
digitalWrite(Mot, HIGH);
digitalWrite(Moto,LOW);
digitalWrite(Bomb, LOW);
digitalWrite(Bomba,HIGH);
delay(20000);
digitalWrite(Mot, LOW);
digitalWrite(Moto,LOW);
digitalWrite(Bomb, LOW);
digitalWrite(Bomba,LOW);
delay(1000);
}
}