#include <LiquidCrystal_I2C.h>
#define LDR_PIN 3
LiquidCrystal_I2C lcd(0x27, 20, 4);
//define variables
#define trigerPin 12
#define echoPin 13
#define ledPin 2
#define speakerPin 10
#define pitch 262
double duration, distance;
void setup() {
pinMode(LDR_PIN, INPUT);
lcd.init();
lcd.backlight();
//setp for sensor
Serial.begin(9600);
pinMode(trigerPin, OUTPUT);
pinMode(echoPin, INPUT);
//setup for LED
pinMode(ledPin, OUTPUT);
//setup for speaker
pinMode(speakerPin, OUTPUT);
}
void loop() {
lcd.setCursor(3, 0);
lcd.print("Room: ");
if (digitalRead(LDR_PIN) == LOW) {
lcd.print("Light!");
} else {
lcd.print("Dark ");
}
delay(100);
//looping sensor(create sound wave)
digitalWrite(trigerPin, LOW);
delayMicroseconds(2);
digitalWrite(trigerPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigerPin, LOW);
delayMicroseconds(2);
//get duration
duration = pulseIn(echoPin, HIGH);
//calculate distance
distance = (duration / 2) * 0.0343;
if (distance < 200) {
digitalWrite(ledPin, HIGH);
tone(speakerPin, pitch);
delay(300);
digitalWrite(ledPin, LOW);
noTone(speakerPin);
delay(300);
}
else {
digitalWrite(ledPin, LOW);
noTone(speakerPin);
}
}