Se me había olvidado mandar el código Persiana automatica
const byte PulsadorSubir = 2;
const byte PulsadorBajar = 3;
const byte PulsadorParo = 4;
const byte FinCarrera_Subida = 5;
const byte FinCarrera_Bajada = 6;
const byte Rele_Subir = 7;
const byte Rele_Bajar = 8;
bool vbajar, vsubir;
bool FinSwBajada, FinSwSubida, paro;
bool moverArriba = LOW, vbajarAnt = LOW;
bool moverAbajo = LOW, vsubirAnt = LOW;
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);
digitalWrite(Rele_Subir, LOW); // motor subir apagado
digitalWrite(Rele_Bajar, LOW); // motor bajar apagado
}
void loop (void) {
vbajar = digitalRead (PulsadorBajar);
vsubir = digitalRead (PulsadorSubir);
FinSwBajada = digitalRead(FinCarrera_Bajada);
FinSwSubida = digitalRead(FinCarrera_Subida);
paro = digitalRead(PulsadorParo);
// Si pulsamos Bajar y ademas no pulsamos Subir
if (vbajar && !vbajarAnt && !moverArriba) {
digitalWrite (Rele_Bajar, HIGH); // SI BAJAMOS PERSIANA
moverAbajo = HIGH; // persiana moviendose hacia abajo
}
vbajarAnt = vbajar;
if (moverAbajo && FinSwBajada // Si alcanzo Fin carrera bajada o
|| paro){ // pulso paro detengo
digitalWrite (Rele_Bajar, LOW); // Detengo motor bajar persiana
moverAbajo = LOW;
}
if (vsubir && !vsubirAnt && !moverAbajo) {
digitalWrite (Rele_Subir, HIGH); // SI SUBIMOS PERSIANA
moverArriba = HIGH; // persiana moviendose hacia arriba
}
vsubirAnt = vsubir;
if (moverArriba && FinSwSubida // Si alcanzo Fin carrera subida o
|| paro){ // pulso paro detengo
digitalWrite (Rele_Subir, LOW); // Detengo motor bajar persiana
moverArriba = LOW;
}
}