Go Down

Topic: 2 sensores pir y 2 lamparas problema cuando actuan juntos solucionado (Read 1 time) previous topic - next topic

feriki

hola soy nuevo en este mundo

a ver si puede ayudarme alguien con este codigo

 const int rele1=12;//The led to indicate the motion
 const int rele2=11;//The led to indicate the motion
 
void setup(){
Serial.begin(9600);
pinMode(2, INPUT);//Use pin 2 to receive the signal outputted by the module
pinMode(3, INPUT);//Use pin 3 to receive the signal outputted by the module
pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
}
 
void loop() {
int sensorValue1 = digitalRead(2);
int sensorValue2 = digitalRead(3);
if(sensorValue1==1)
digitalWrite(rele1,HIGH);
relay(12000);
else
digitalWrite(rele1,LOW);
if(sensorValue2==1)
digitalWrite(rele2,HIGH);
relay(12000);
else
digitalWrite(rele2,LOW);


}



os cuento el proyecto que por cierto he estado buscando por aqui y no hay nada parecido

se trata de en un pasillo un sensor pir que detecta movimiento y enciende una lampara al entrar por un lado y otro pir que enciende la otra lampara al entrar por el otro lado las dos con un relay
bueno si lo hago asi funciona perfecto  el problema esta en que al pasar  de un lado al otro el siguiente sensor no actua hasta que se apaga la anterior lampara


me gustaria me ayudaran gracias

Marcial

Te propongo una solucion, prueba a ver como va
Code: [Select]
const byte rele1=12;//The led to indicate the motion
const byte rele2=11;//The led to indicate the motion
unsigned long Tiempo_rele1=0;  // Tiempo que permnecera encendido el led1
unsigned long Tiempo_rele2=0;  // Tiempo que permnecera encendido el led2
void setup()
{
  pinMode(2, INPUT);//Use pin 2 to receive the signal outputted by the module
  pinMode(3, INPUT);//Use pin 3 to receive the signal outputted by the module
  pinMode(rele1, OUTPUT);
  pinMode(rele2, OUTPUT);
}
 
void loop()
{
  bool sensorValue1 = digitalRead(2);
  bool sensorValue2 = digitalRead(3);
  
  if(sensorValue1)
  {
    Tiempo_rele1 = millis() + 12000;  // Tiempo en que se apagara el rele1 dede que apaque su señal
    digitalWrite(rele1,HIGH);
  }
  if(sensorValue2)
  {
    Tiempo_rele2 = millis() + 12000;  // Tiempo en que se apagara el rele2 dede que apaque su señal
    digitalWrite(rele2,HIGH);
  }  
  if (Tiempo_rele1 > 0 && millis() > Tiempo_rele1)  // Hay tiempo cargado y ha pasado
  {
    digitalWrite(rele1,LOW);
    Tiempo_rele1=0;
  }
  if (Tiempo_rele2 > 0 && millis() > Tiempo_rele2)  // Hay tiempo cargado y ha pasado
  {
    digitalWrite(rele2,LOW);
    Tiempo_rele2=0;
  }
}

feriki

todo perfecto gracias funcionando como hago para poner que esta solucionado

surbyte

Ve al post#1 tuyo y edita el titulo, cambia tambien ese titulo porque "perdon me equivoqué ... " no corresponde

feriki

vale voy a intentar hacerlo pero llevo un rato y nada soy muy torpe y el ingles no se me da bien

Go Up