tengo un proyecto el cual tengo que mejorar necesito hacer el cambio de giro con un motor y prender algunos leds con las señales de 3 sensores de presencia. El problema con esto es que necesito dejarlos encendidos por un tiempo y decidí hacerlos con el tan odiado delay ();
El problema es que ocupo que los sensores detecten en todo momento y realicen su tarea... pero con el delay(); se queda inactivo y hasta que no pasa el tiempo por mas que yo active algun otro sensor este no hara nada.
int i;
void setup()
{
pinMode(4,INPUT); //abrir.
pinMode(5,INPUT); //cerrar.
pinMode(6,INPUT); //sensor de chapa.
pinMode(7,INPUT); //puerta abierta.
pinMode(8,OUTPUT); //abrir.
pinMode(9,OUTPUT); //cerrar.
pinMode(10,OUTPUT); //chapa cerrada.
}
void loop()
{
int Abrir =digitalRead(4); //Estado de Sensor para ABRIR puerta
int Cerrar =digitalRead(5); //Estado de Sensor para CERRAR puerta
int Enclave=digitalRead(6); //Estado de Sensor de CHAPA ELECTRICA
int Puerta =digitalRead(7); //Estado de Sensor de puerta abierta
/*Recuerda que agregaste la condicional puerta en los 3 ciclos*/
//////////////////////// Abrir puerta por fuera /////////////////////////
if ((Abrir==HIGH) && (Enclave==LOW) && (Puerta == HIGH))
{
digitalWrite(8,HIGH);
delay(100);
digitalWrite(8,LOW);
}
/////////////////////// Cerrar puerta por dentro ////////////////////////
if ((Cerrar==HIGH) && (Enclave==LOW))
{
digitalWrite(9,HIGH);
delay(1100);
digitalWrite(10,HIGH);
digitalWrite(9,LOW);
}
//////////////////////// Abrir puerta por dentro ////////////////////////
if ((Cerrar==HIGH && Enclave==HIGH) && (Puerta == HIGH))
{
delay(10);
digitalWrite(10,LOW);
delay(300);
digitalWrite(8,HIGH);
delay(1000);
digitalWrite(8,LOW);
}
}