hola he conseguido hacer un programa que sigo poniendole datos, os explico lo que me pasa he conseguido que al meter un pulso en el pin 6 se me activen los 6 reles de salida y al meterle otro pulso se me desactiven los 6 reles de salida, pero aveces hace cosas raras. depende y no se porque aveces se activan solo 4 otras veces se activan todos otras veces se desactivan 2, pero bueno aveces no se porque funciona bien, luego he activado otro pin de entrada, el 5 entonces pulso elpin 6 se me encienden todos los reles pulso el pin 5 y se me apaga solo el rele 1, perfecto funciona, si lo vuelvo a pulsar se vuelve a encender el rele 1, cual es el problema el problema es que si esta todo apagado y pulso el pin 5 enciendo un rele perfecto, pero ahora quiero pulsar el pin 6 para encender todo, y claro se me enciende todo pero se me apafa el rele 1
os pongo aqui mi programa
int LED = 10 ; int LED2 = 11 ; int LED3 = 12 ; int LED4 = 13 ; int LED5 = 9 ; int LED6 = 8 ; int boton = 6 ; int boton2 = 5 ; int boton3 = 4 ; int boton4 = 3 ;
bool estado = true ;
bool estado_anterior = true ;
bool estado2 = true ;
bool estado_anterior2 = true ;
bool estado3 = true ;
bool estado_anterior3 = true ;
bool estado4 = true ;
bool estado_anterior4 = true ;
bool estado5 = true ;
bool estado_anterior5 = true ;
bool estado6 = true ;
bool estado_anterior6 = true ;
bool estado7 = true ;
bool estado_anterior7 = true ;
void setup()
{
pinMode(boton, INPUT_PULLUP); //Hemos eliminado R3
pinMode(boton2, INPUT_PULLUP);
pinMode(boton3, INPUT_PULLUP);
pinMode(boton4, INPUT_PULLUP);
pinMode(LED, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
}
void loop()
{
estado = digitalRead(boton);
if (estado != estado_anterior) //hay cambio : Han pulsado o soltado
{
if (estado == LOW) //Al pulsar botón cambiar LED, pero no al soltar
digitalWrite(LED, !digitalRead(LED));
delay(20);
estado_anterior = estado ; // Para recordar el ultimo valor
}
estado2 = digitalRead(boton);
if (estado2 != estado_anterior2) //hay cambio : Han pulsado o soltado
{
if (estado2 == LOW) //Al pulsar botón cambiar LED, pero no al soltar
digitalWrite(LED2, !digitalRead(LED2));
delay(20);
estado_anterior2 = estado2 ; // Para recordar el ultimo valor
}
estado3 = digitalRead(boton);
if (estado3 != estado_anterior3) //hay cambio : Han pulsado o soltado
{
if (estado3 == LOW) //Al pulsar botón cambiar LED, pero no al soltar
digitalWrite(LED3, !digitalRead(LED3));
delay(20);
estado_anterior3 = estado3 ; // Para recordar el ultimo valor
}
estado4 = digitalRead(boton);
if (estado4 != estado_anterior4) //hay cambio : Han pulsado o soltado
{
if (estado4 == LOW) //Al pulsar botón cambiar LED, pero no al soltar
digitalWrite(LED4, !digitalRead(LED4));
delay(30);
estado_anterior4 = estado4 ; // Para recordar el ultimo valor
}
estado5 = digitalRead(boton);
if (estado5 != estado_anterior5) //hay cambio : Han pulsado o soltado
{
if (estado5 == LOW) //Al pulsar botón cambiar LED, pero no al soltar
digitalWrite(LED5, !digitalRead(LED5));
delay(30);
estado_anterior5 = estado5 ; // Para recordar el ultimo valor
}
estado6 = digitalRead(boton);
if (estado6 != estado_anterior6) //hay cambio : Han pulsado o soltado
{
if (estado6 == LOW) //Al pulsar botón cambiar LED, pero no al soltar
digitalWrite(LED6, !digitalRead(LED6));
delay(30);
estado_anterior6 = estado6 ; // Para recordar el ultimo valor
}
estado7 = digitalRead(boton2);
if (estado7 != estado_anterior7) //hay cambio : Han pulsado o soltado
{
if (estado7 == LOW) //Al pulsar botón cambiar LED, pero no al soltar
digitalWrite(LED, !digitalRead(LED));
delay(30);
estado_anterior7 = estado7 ; // Para recordar el ultimo valor
}
}