/*  
    Arduino with PIR motion sensor
    For complete project details, visit: http://RandomNerdTutorials.com/pirsensor
    Modified by Rui Santos based on PIR sensor by Limor Fried
*/

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int led = 2;                // the pin that the LED is atteched to
int sensor = 12;              // the pin that the sensor is atteched to
int state = LOW;             // by default, no motion detected
int val = 0;                 // variable to store the sensor status (value)

void setup() {
  pinMode(led, OUTPUT);      // initalize LED as an output
  pinMode(sensor, INPUT);    // initialize sensor as an input
  lcd.init();
  lcd.backlight();
  //Serial.begin(9600);        // initialize serial
}

void loop(){
 
  val = digitalRead(sensor);   // read sensor value
  if (val == HIGH) {           // check if the sensor is HIGH
    digitalWrite(led, HIGH);   // turn LED ON
    delay(100);                // delay 100 milliseconds 
    
    if (state == LOW) {
      lcd.setCursor(0,0);
      lcd.print("Motion detected!"); 
      lcd.setCursor(0,1);
      lcd.print("PIR Output = ");
      lcd.print(val);
      state = HIGH;       // update variable state to HIGH
    }
  } 
  else {
      digitalWrite(led, LOW); // turn LED OFF
      delay(200);             // delay 200 milliseconds 
      
      if (state == HIGH){
        lcd.setCursor(0,0);
        lcd.print("Motion stopped!");
        lcd.setCursor(0,1);
        lcd.print("PIR Output = ");
        lcd.print(val);
        state = LOW;       // update variable state to LOW
    }
  }
}