#include <LiquidCrystal_I2C.h>
#define LIGHT_SENSOR_PIN 13
#define Sw 27
LiquidCrystal_I2C lcd(0x27, 16, 2);
bool switchState = false;
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(2, 0);
lcd.print("This is LDR");
delay(4000);
pinMode(Sw, INPUT_PULLUP);
}
void loop() {
switchState = digitalRead(Sw) == LOW; // LOW หมายถึงสวิตช์เปิด
if (switchState) {
LDR();
} else {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("System Off");
delay(500);
}
}
void LDR() {
lcd.clear();
int analogValue = analogRead(LIGHT_SENSOR_PIN);
lcd.setCursor(2, 0);
lcd.print("This is LDR");
Serial.print("Analog Value = ");
Serial.print(analogValue);
if (analogValue <= 40) {
Serial.println(" => Dark");
lcd.setCursor(1, 1);
lcd.print("Dark "); // เคลียร์พื้นที่ที่พิมพ์
}
else if (analogValue < 800) {
Serial.println(" => Dim");
lcd.setCursor(1, 1);
lcd.print("Dim "); // เคลียร์พื้นที่ที่พิมพ์
}
else if (analogValue < 2000) {
Serial.println(" => Light");
lcd.setCursor(1, 1);
lcd.print("Light "); // เคลียร์พื้นที่ที่พิมพ์
}
else if (analogValue < 3200) {
Serial.println(" => Bright");
lcd.setCursor(1, 1);
lcd.print("Bright "); // เคลียร์พื้นที่ที่พิมพ์
}
else {
Serial.println(" => Very bright");
lcd.setCursor(1, 1);
lcd.print("Very bright");
}
delay(500);
}