#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// กำหนดที่อยู่ของ LCD 2004 (อาจเป็น 0x27 หรือ 0x3F ขึ้นกับโมดูล I2C ของคุณ)
LiquidCrystal_I2C lcd(0x27, 20, 4);
// กำหนดขาของ LDR
const int ldrPin = A0;
// กำหนดค่าช่วงการแสดง Lux
const float maxAnalog = 1023.0; // ค่าที่อ่านได้สูงสุดจาก analogRead
const float maxLux = 1000.0; // ค่าสูงสุดของ Lux ที่ต้องการแสดง
void setup() {
// เริ่มต้นการทำงานของ LCD
lcd.init();
lcd.backlight(); // เปิดแสงสว่างของ LCD
lcd.setCursor(0, 0);
lcd.print("LDR Sensor Value:");
// กำหนดขา input สำหรับ LDR
pinMode(ldrPin, INPUT);
}
void loop() {
// อ่านค่าจาก LDR
int ldrValue = analogRead(ldrPin);
lcd.setCursor(0, 2); // เริ่มแสดงที่บรรทัดที่ 2 (บรรทัดล่าง)
lcd.print("Lux: ");
lcd.print(ldrValue);
lcd.print(" "); // ช่องว่างไว้ลบค่าก่อนหน้า
ldrValue = map(ldrValue,0,1023,1023,0);
// รอ 500 ms ก่อนอ่านค่าใหม่
// คำนวณค่า Lux จากค่าที่อ่านได้
float luxValue = (ldrValue / maxAnalog) * maxLux;
// แสดงผลบน LCD
lcd.setCursor(0, 1); // เริ่มแสดงที่บรรทัดที่ 2 (บรรทัดล่าง)
lcd.print("Lux: ");
lcd.print(luxValue);
lcd.print(" "); // ช่องว่างไว้ลบค่าก่อนหน้า
delay(500);
}