#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Định nghĩa các chân I2C và kích thước LCD
const int I2C_ADDR = 0x27; // Địa chỉ I2C của LCD (có thể khác nhau)
LiquidCrystal_I2C lcd(I2C_ADDR, 16, 2);
const int LDR_PIN = 34; // Chân GPIO để đọc giá trị từ LDR
const int LED_PIN = 13; // Chân kỹ thuật số để điều khiển LED
const int THRESHOLD = 500; // Ngưỡng để bật LED (thay đổi theo điều kiện ánh sáng)
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
lcd.begin(16, 2); // Khởi tạo màn hình LCD với 16 cột và 2 hàng
lcd.setCursor(0, 0);
lcd.print("Duc Mien!");
pinMode(LED_PIN, OUTPUT); // Thiết lập chân LED làm đầu ra
}
void loop() {
int ldrValue = analogRead(LDR_PIN); // Đọc giá trị từ LDR
Serial.print("LDR Value: ");
Serial.println(ldrValue); // In giá trị LDR ra màn hình serial
lcd.setCursor(0, 1); // Đặt con trỏ LCD trên hàng thứ hai
lcd.print("LDR: ");
lcd.print(ldrValue);
if (ldrValue < THRESHOLD) {
digitalWrite(LED_PIN, HIGH); // Bật LED nếu giá trị LDR thấp hơn ngưỡng
} else {
digitalWrite(LED_PIN, LOW); // Tắt LED nếu giá trị LDR cao hơn ngưỡng
}
delay(100); // Đợi một chút trước khi đọc lại
}