#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// กำหนดขา LED
const int greenPin = 12;
const int yellowPin = 7;
const int redPin = 2;
// กำหนดที่อยู่ I2C และขนาดของจอ LCD
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
// ตั้งค่าโหมดของขา LED เป็น OUTPUT
pinMode(greenPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(redPin, OUTPUT);
// เริ่มการทำงานของจอ LCD
lcd.init();
lcd.backlight();
}
void loop() {
// เปิดไฟเขียวและเริ่มการนับเวลาลง
digitalWrite(greenPin, HIGH);
displayCountdown("Green Light", 10);
digitalWrite(greenPin, LOW);
// เปิดไฟเหลืองและเริ่มการนับเวลาลง
digitalWrite(yellowPin, HIGH);
displayCountdown("Yellow Light", 3);
digitalWrite(yellowPin, LOW);
// เปิดไฟแดงและเริ่มการนับเวลาลง
digitalWrite(redPin, HIGH);
displayCountdown("Red Light", 10);
digitalWrite(redPin, LOW);
}
void displayCountdown(String lightColor, int seconds) {
for (int i = seconds; i > 0; i--) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(lightColor);
lcd.setCursor(0, 1);
lcd.print("Time remaining: ");
lcd.setCursor(0, 2);
lcd.print(i);
lcd.print(" seconds");
delay(1000);
}
}
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// กำหนดขา LED
const int greenPin = 12;
const int yellowPin = 7;
const int redPin = 2;
// กำหนดที่อยู่ I2C และขนาดของจอ LCD
LiquidCrystal_I2C lcd(0x3F, 20, 4);
void setup() {
// ตั้งค่าโหมดของขา LED เป็น OUTPUT
pinMode(greenPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(redPin, OUTPUT);
// เริ่มการทำงานของจอ LCD
lcd.begin(); // Initialize the LCD
lcd.backlight(); // Turn on the backlight
}
void loop() {
// เปิดไฟเขียวและเริ่มการนับเวลาลง
digitalWrite(greenPin, HIGH);
displayCountdown("Green Light", 10);
digitalWrite(greenPin, LOW);
// เปิดไฟเหลืองและเริ่มการนับเวลาลง
digitalWrite(yellowPin, HIGH);
displayCountdown("Yellow Light", 3);
digitalWrite(yellowPin, LOW);
// เปิดไฟแดงและเริ่มการนับเวลาลง
digitalWrite(redPin, HIGH);
displayCountdown("Red Light", 10);
digitalWrite(redPin, LOW);
}
void displayCountdown(String lightColor, int seconds) {
for (int i = seconds; i > 0; i--) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(lightColor);
lcd.setCursor(0, 1);
lcd.print("Time remaining: ");
lcd.setCursor(0, 2);
lcd.print(i);
lcd.print(" seconds");
delay(1000);
}
}