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);
}
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
Primero que nada lee las normas del foro por favor, en donde veras como debe ir posteado el codigo y tambien que el titulo del post no puede ser tu propio nick si no algo explicativo y relativo al problema que tienes como:problemas con un sensor pir o algo por el estilo.
dicho esto ,me extraña que ese codigo compile ,supongo que donde pone relay(12000) quieres decir delay(12000) y en los bloques if o else cuando hay mas de una linea acabada en ; debes poner el codigo entre llaves { // codigo }
tambien tienes razon es que no tengo las gafas puestas es delay y se me han olvidado poner los corchetes
pero el codigo compila
pero no actua como quiero gracias
feriki:
tambien tienes razon es que no tengo las gafas puestas es delay y se me han olvidado poner los corchetes
pero el codigo compila
pero no actua como quiero gracias
piensa que cuando pones delay(12000) estas parando 12 segundos la ejecucion del sketch ,por lo tanto hasta que no acabe ese retardo ,no seguira ejecutando el resto del sketch y no podra detectar si activas el otro pir
a ver ,cuando te comente lo del titulo ,me referia a que modificaras el titulo del post (este) ,no que hicieras uno nuevo.....
arduino tiene una funcion que se llama millis() y devuelve el tiempo que lleva el sketch funcionando ,si creas una variable (tiene que ser tipo long) y en el momento de recibir señal del pir le asignas el tiempo en que se activa ,luego podras comparar el tiempo de ejecucion con el de activacion y si la resta de los tiempos te da mas de esos 12 segundos ,apagas el rele.
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);
}
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