#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// กำหนดที่อยู่ I2C ของจอ LCD และขนาด (20x4)
LiquidCrystal_I2C lcd(0x27, 20, 4);
// กำหนดขา LDR
const int LDR_PIN = A0;
void setup() {
// เริ่มการทำงานของจอ LCD
lcd.init();
lcd.backlight(); // เปิดแสงไฟพื้นหลังของจอ
// เริ่มการสื่อสาร Serial Monitor (ถ้าต้องการตรวจสอบค่า)
Serial.begin(9600);
}
void loop() {
// อ่านค่าแอนะล็อกจาก LDR (0-1023)
int sensorValue = analogRead(LDR_PIN);
// แปลงค่าแอนะล็อกเป็นแรงดัน (0-5V)
float voltage = sensorValue * (5.0 / 1023.0);
// สมมติว่า 5V = 1000 lux
float lux = map(sensorValue, 0, 1023, 0, 1000);
// แสดงค่าใน Serial Monitor
Serial.print("LDR Value: ");
Serial.print(sensorValue);
Serial.print(" - Lux: ");
Serial.println(lux);
// ลบหน้าจอก่อนแสดงผลใหม่
lcd.clear();
// แสดงข้อความบนจอ LCD
lcd.setCursor(0, 0);
lcd.print("LDR Value: ");
lcd.print(sensorValue);
lcd.setCursor(0, 1);
lcd.print("Lux: ");
lcd.print(lux);
// หน่วงเวลา 500ms ก่อนการอ่านค่าครั้งต่อไป
delay(500);
}