// STM32 Traffic Lights Simulator
// Green = 3 seconds
// Orange = 2 seconds
// Red = 4 seconds
const int GREEN_LIGHT_PIN = PA5;
const int ORANGE_LIGHT_PIN = PA6;
const int RED_LIGHT_PIN = PA7;
const int GREEN_DURATION = 3000;
const int ORANGE_DURATION = 2000;
const int RED_DURATION = 4000;
void setup() {
pinMode(GREEN_LIGHT_PIN, OUTPUT);
pinMode(ORANGE_LIGHT_PIN, OUTPUT);
pinMode(RED_LIGHT_PIN, OUTPUT);
Serial.begin(115200);
Serial.println("STM32 Traffic Lights Simulator");
turnOffAllLights();
}
void loop() {
showGreenLight();
delay(GREEN_DURATION);
showOrangeLight();
delay(ORANGE_DURATION);
showRedLight();
delay(RED_DURATION);
}
void turnOffAllLights() {
digitalWrite(GREEN_LIGHT_PIN, LOW);
digitalWrite(ORANGE_LIGHT_PIN, LOW);
digitalWrite(RED_LIGHT_PIN, LOW);
}
void showGreenLight() {
digitalWrite(GREEN_LIGHT_PIN, HIGH);
digitalWrite(ORANGE_LIGHT_PIN, LOW);
digitalWrite(RED_LIGHT_PIN, LOW);
Serial.println("Green light ON");
}
void showOrangeLight() {
digitalWrite(GREEN_LIGHT_PIN, LOW);
digitalWrite(ORANGE_LIGHT_PIN, HIGH);
digitalWrite(RED_LIGHT_PIN, LOW);
Serial.println("Orange light ON");
}
void showRedLight() {
digitalWrite(GREEN_LIGHT_PIN, LOW);
digitalWrite(ORANGE_LIGHT_PIN, LOW);
digitalWrite(RED_LIGHT_PIN, HIGH);
Serial.println("Red light ON");
}