Hola amigos estoy haciendo mi primer proyecto con Arduino y he hecho un proyecto de una persiana automática y veo un problema que es que mientras esta subiendo pulsamos Bajar deja de subir y empieza a bajar.Lo que quiero es que si esta subiendo aunque se pulse Bajar la persiana siga subiendo
y pare por final de carrera. Lo mismo en la acción de bajar.
Mando el código para ver si me podeis ayudar.
Muchas gracias
int PulsadorSubir = 2;
int PulsadorBajar = 3;
int PulsadorParo = 4;
int FinCarrera_Subida = 5;
int FinCarrera_Bajada = 6;
int Rele_Subir = 7;
int Rele_Bajar = 8;
void setup (void){
pinMode(PulsadorSubir, INPUT);
pinMode(PulsadorBajar, INPUT);
pinMode(PulsadorParo, INPUT);
pinMode(FinCarrera_Subida, INPUT);
pinMode(FinCarrera_Bajada, INPUT);
pinMode(Rele_Subir, OUTPUT);
pinMode(Rele_Bajar, OUTPUT);
}
void loop (void)
{
if (digitalRead (PulsadorBajar) == HIGH // Si pulsamos Bajar y ademas
&& digitalRead (PulsadorSubir) == LOW) // no pulsamos Subir
{
while ((digitalRead(FinCarrera_Bajada) == HIGH) // Mientras esta el final de carrera Bajar pulsado (HIGH) y
&& (digitalRead (PulsadorSubir) == LOW) // ademas no se pulsa Subir
&& (digitalRead(PulsadorParo)== LOW)) // no pulsamos el paro y
{
digitalWrite (Rele_Subir, LOW); // no subimos persiana y
digitalWrite (Rele_Bajar, HIGH); // SI BAJAMOS PERSIANA
}
}
if (digitalRead (PulsadorSubir) == HIGH // Si pulsamos Subir y ademas
&& digitalRead (PulsadorBajar) == LOW) // no pulsamos Bajar y
{
while ((digitalRead(FinCarrera_Subida) == HIGH) // Mientras este el final de carrera Subir pulsado(HIGH) y
&& (digitalRead (PulsadorBajar) == LOW ) // ademas no se pulsa Bajar y
&& (digitalRead(PulsadorParo)==LOW)) // no pulsamos el paro y
{
digitalWrite (Rele_Bajar,LOW); // no bajamos persiana y
digitalWrite (Rele_Subir, HIGH); // SI SUBIMOS PERSIANA
}
}
digitalWrite (Rele_Subir, LOW);
digitalWrite (Rele_Bajar, LOW);
}