//const int led = 5;
//const int pir = 19;
#define LED_PIN 23
#define pulsador 34
#define pir 19
bool motionDetected = true;
int current_millis = 0;
int last_interrupt_time = 0;
//Indicates when motion is detected
void IRAM_ATTR detectsMovement(){
if(motionDetected == false){
current_millis = millis();//capturo el tiempo actual
Serial.println("MOTION DETECTED!!");
Serial.println("Tiempo Intervalo:");
Serial.println(current_millis - last_interrupt_time);
Serial.println();
digitalWrite(LED_PIN, LOW);//Bajo - 0
motionDetected = true;
}
}
void IRAM_ATTR press_push(){
motionDetected = false;
last_interrupt_time = millis();//Capturo el tiempo inicial
digitalWrite(LED_PIN, HIGH);//Alto - 1
}
void setup(){//Se ejecuta primero
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
pinMode(pulsador, INPUT);
pinMode(pir, INPUT);
attachInterrupt(digitalPinToInterrupt(pir), detectsMovement, RISING);//FALLING
attachInterrupt(digitalPinToInterrupt(pulsador), press_push, FALLING);
Serial.begin(9600);
}
void loop(){
//put your main code here
Serial.println("Waiting Int Time ..");
delay(500);
/*if(motionDetected){
motionDetected = false;
delay(2000);//ms
digitalWrite(led, LOW);//Bajo - 0
}
delay(1000);*/
}