int RED_LED_1 = 14;
int YELLOW_LED_1 = 13;
int GREEN_LED_1 = 32;
int BUTTON_1 = 12; // ปุ่มกดสำหรับแยกที่ 1
int RED_LED_2 = 33;
int YELLOW_LED_2 = 25;
int GREEN_LED_2 = 26;
int BUTTON_2 = 16; // ปุ่มกดสำหรับแยกที่ 2
int RED_LED_3 = 19;
int YELLOW_LED_3 = 18;
int GREEN_LED_3 = 17;
int BUTTON_3 = 4; // ปุ่มกดสำหรับแยกที่ 3
void setup() {
pinMode(RED_LED_1, OUTPUT);
pinMode(YELLOW_LED_1, OUTPUT);
pinMode(GREEN_LED_1, OUTPUT);
pinMode(BUTTON_1, INPUT_PULLUP);
pinMode(RED_LED_2, OUTPUT);
pinMode(YELLOW_LED_2, OUTPUT);
pinMode(GREEN_LED_2, OUTPUT);
pinMode(BUTTON_2, INPUT_PULLUP);
pinMode(RED_LED_3, OUTPUT);
pinMode(YELLOW_LED_3, OUTPUT);
pinMode(GREEN_LED_3, OUTPUT);
pinMode(BUTTON_3, INPUT_PULLUP);
allRed();
}
void loop() {
if (digitalRead(BUTTON_1) == LOW) {
controlTrafficLight(RED_LED_1, YELLOW_LED_1, GREEN_LED_1);
delay(500);
}
if (digitalRead(BUTTON_2) == LOW) {
controlTrafficLight(RED_LED_2, YELLOW_LED_2, GREEN_LED_2);
delay(500);
}
if (digitalRead(BUTTON_3) == LOW) {
controlTrafficLight(RED_LED_3, YELLOW_LED_3, GREEN_LED_3);
delay(500);
}
}
void controlTrafficLight(int redPin, int yellowPin, int greenPin) {
digitalWrite(redPin, HIGH);
digitalWrite(yellowPin, LOW);
digitalWrite(greenPin, LOW);
delay(60000); // 60 วินาที
digitalWrite(redPin, LOW);
digitalWrite(greenPin, HIGH);
delay(30000); // 30 วินาที
digitalWrite(greenPin, LOW);
digitalWrite(yellowPin, HIGH);
delay(3000); // 3 วินาที
digitalWrite(yellowPin, LOW);
digitalWrite(redPin, HIGH);
}
void allRed() {
digitalWrite(RED_LED_1, HIGH);
digitalWrite(RED_LED_2, HIGH);
digitalWrite(RED_LED_3, HIGH);
}