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);
}