Resulta que tengo una escalera en casa a la cual le agregue unas 3 luces a los costados, mi idea era que con el arduino poner unos modulos pir a comienzo de la escalera cuando detecte el movimiento y las luces enciendan de manera secuencial, funciona todo bien el problema es que el si pasa una persona se ejecuta el programa pero si pasa otra mientras se esta ejecutando el programa el sensor lo detecta y bien termina de ejecutarse el programa, se ejecuta de nuevo y asi un bucle infinito, soy nuevo sepan disculpar.
PD: Las luces se accionan mediante reles.
int TIME = 500;
const int LEDPin = 6; // pin para el LED
const int LEDPin2 = 7;
const int LEDPin3 = 8;
const int PIRPin = A1; // pin de entrada (for PIR sensor)
int pirState = LOW; // de inicio no hay movimiento
int val = 0; // estado del pin
void setup()
{
pinMode(LEDPin, OUTPUT);
pinMode(LEDPin2, OUTPUT);
pinMode(LEDPin3, OUTPUT);
pinMode(PIRPin, INPUT);
Serial.begin(9600);
}
void loop()
{
val = digitalRead(PIRPin);
if (val == HIGH) //si está activado
{
digitalWrite(LEDPin, HIGH); //LED ON
delay(TIME);
digitalWrite(LEDPin2, HIGH);
delay(TIME);
digitalWrite(LEDPin3, HIGH);
delay(TIME);
if (pirState == LOW) //si previamente estaba apagado
{
Serial.println("Sensor activado");
pirState = HIGH;
}
}
else //si esta desactivado
{
digitalWrite(LEDPin, LOW); // LED OFF
delay(TIME);
digitalWrite(LEDPin2, LOW);
delay(TIME);
digitalWrite(LEDPin3, LOW);
delay(TIME);
if (pirState == HIGH) //si previamente estaba encendido
{
Serial.println("Sensor parado");
pirState = LOW;
}
}
}