#include <Wire.h>
#include <LiquidCrystal_I2C.h>
const int switch1Pin = 18;
const int switch2Pin = 19;
const int led1Pin = 25;
const int led2Pin = 26;
const int led3Pin = 27;
bool switch1State = LOW;
bool switch2State = LOW;
bool lastSwitch1State = HIGH;
bool lastSwitch2State = HIGH;
int currentLedIndex1 = 0;
LiquidCrystal_I2C lcd(0x27, 16, 2); // กำหนดที่อยู่ I2C ของจอ LCD
void setup() {
pinMode(switch1Pin, INPUT_PULLUP);
pinMode(switch2Pin, INPUT_PULLUP);
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
lcd.init(); // เริ่มต้นจอ LCD
lcd.backlight(); // เปิดแสงไฟด้านหลังจอ LCD
lcd.setCursor(0, 0);
lcd.print("moogo"); // แสดงข้อความ "moogo"
}
void loop() {
switch1State = digitalRead(switch1Pin);
switch2State = digitalRead(switch2Pin);
if (switch1State == LOW && lastSwitch1State == HIGH) {
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
if (currentLedIndex1 == 0) {
digitalWrite(led1Pin, HIGH);
} else if (currentLedIndex1 == 1) {
digitalWrite(led2Pin, HIGH);
} else if (currentLedIndex1 == 2) {
digitalWrite(led3Pin, HIGH);
}
lcd.setCursor(0, 1); // กำหนดตำแหน่งตัวเลขที่จะแสดงที่บรรทัดที่สอง
lcd.print("LED Index: ");
lcd.print(currentLedIndex1); // แสดงตัวเลขของ LED Index
currentLedIndex1 = (currentLedIndex1 + 1) % 3;
delay(250);
}
lastSwitch1State = switch1State;
if (switch2State == LOW && lastSwitch2State == HIGH) {
digitalWrite(led3Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led1Pin, LOW);
// เปิด LED ตามลำดับ
if (currentLedIndex1 == 0) {
digitalWrite(led3Pin, HIGH);
} else if (currentLedIndex1 == 1) {
digitalWrite(led2Pin, HIGH);
} else if (currentLedIndex1 == 2) {
digitalWrite(led1Pin, HIGH);
}
lcd.setCursor(0, 1); // กำหนดตำแหน่งตัวเลขที่จะแสดงที่บรรทัดที่สอง
lcd.print("LED Index: ");
lcd.print(currentLedIndex1); // แสดงตัวเลขของ LED Index
currentLedIndex1 = (currentLedIndex1 + 1) % 3;
delay(250);
}
lastSwitch2State = switch2State;
delay(50);
}