Go Down

Topic: Problema modulo PIR (Read 144 times) previous topic - next topic

leonard120

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.


Code: [Select]
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;
      }
   }
}

pepepotero

Hola

Consejo: Elimina los delay, utiliza millis.

Tutorial millis

Entender millis y no morir en el intento

Un saludo

SgzS

¿No ocurre en mas casos? Si algo no se me escapa, creo que el código no debería de dar problemas.

Veo mas probable que la señal se quede flotante entre el puerto A1 y la señal de salida del Sensor de proximidad. Prueba a conectarla a tierra con una resistencia de 1K. Tal que asi:

tauro0221

Hi,
Seria bueno que incluyeras un dibujo de como tienes los contactos conectado/alambrado al arduino. Si tienes un contacto que voltaje esta usando para suplir el votaje de la entrada del arduino y si los PIR son de esos que se ponen para alarma en los patios vaz a necesitar conectar los 5 voltios  del arduino  a uno de los lado del contacto y el otro lado del contacto al pin de entrada del  arduino con una resistencia 10K del pin de entrada al arduino a ground como te menciono SgzS.
 -

Go Up