#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Địa chỉ I2C của màn hình LCD
const int relayPin = 3; // Chân kết nối relay
const int buttonPin = 7; // Chân kết nối nút nhấn
const int led1 = 10;
const int led2 = 11;
bool relayState = false; // Trạng thái relay
void setup() {
pinMode(relayPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
// Khởi động màn hình LCD
lcd.init();
lcd.backlight();
// Hiển thị trạng thái ban đầu của relay
updateLCD();
lcd.setCursor(1,0);
lcd.print("Van Nhu");
}
void loop() {
// Đọc trạng thái của nút nhấn
int buttonState = digitalRead(buttonPin);
// Nếu nút nhấn được nhấn
if (buttonState == LOW) {
// Đảo ngược trạng thái của relay
relayState = !relayState;
// Cập nhật trạng thái của relay
digitalWrite(relayPin, relayState);
// Cập nhật màn hình LCD
updateLCD();
// Chờ một thời gian ngắn trước khi đọc nút nhấn tiếp theo
delay(200);
}
}
void updateLCD() {
// Xóa màn hình LCD
lcd.clear();
// Hiển thị trạng thái của relay trên màn hình LCD
if (relayState) {
lcd.setCursor(0, 0);
lcd.print("Relay: ON");
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
} else {
lcd.setCursor(0, 0);
lcd.print("Relay: OFF");
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
}
}