// ---- Pin map using D2–D13 on the Nucleo board ----
int red_1=2, orange_1=3, green_1=4;
int red_2=5, orange_2=6, green_2=7;
int red_3=8, orange_3=9, green_3=10;
int red_4=11, orange_4=12, green_4=13;
void set_all_red() {
digitalWrite(red_1, HIGH); digitalWrite(orange_1, LOW); digitalWrite(green_1, LOW);
digitalWrite(red_2, HIGH); digitalWrite(orange_2, LOW); digitalWrite(green_2, LOW);
digitalWrite(red_3, HIGH); digitalWrite(orange_3, LOW); digitalWrite(green_3, LOW);
digitalWrite(red_4, HIGH); digitalWrite(orange_4, LOW); digitalWrite(green_4, LOW);
}
void setup() {
for (int i = 2; i <= 13; i++) {
pinMode(i, OUTPUT);
}
set_all_red(); // Initial all red
delay(3000);
}
void loop()
{
// Direction 1
set_all_red();
digitalWrite(red_1, LOW);
digitalWrite(orange_1, HIGH);
delay(2000);
set_all_red();
digitalWrite(red_1, LOW);
digitalWrite(green_1, HIGH);
delay(5000);
// Direction 2
set_all_red();
digitalWrite(red_2, LOW);
digitalWrite(orange_2, HIGH);
delay(2000);
set_all_red();
digitalWrite(red_2, LOW);
digitalWrite(green_2, HIGH);
delay(5000);
// Direction 3
set_all_red();
digitalWrite(red_3, LOW);
digitalWrite(orange_3, HIGH);
delay(2000);
set_all_red();
digitalWrite(red_3, LOW);
digitalWrite(green_3, HIGH);
delay(5000);
// Direction 4
set_all_red();
digitalWrite(red_4, LOW);
digitalWrite(orange_4, HIGH);
delay(2000);
set_all_red();
digitalWrite(red_4, LOW);
digitalWrite(green_4, HIGH);
delay(5000);
}