Wie sieht dazu ein Arduino-Programm aus?
Ich muss von der folgendes Programm machen:
Könnte mir jemand hierzu die Lösung schicken/programmieren?
1 Antwort
![](https://images.gutefrage.net/media/user/xLud99x/1671793905176_nmmslarge__0_0_400_400_a7448469a17c2ce8ed07251058ff274b.png?v=1671793905000)
Hallo :)
das ganze könnte folgender maßen aussehen:
const int LED_RED = 9; // Pin für die rote Ampel
const int LED_YELLOW = 10; // Pin für die gelbe Ampel
const int LED_GREEN = 11; // Pin für die grüne Ampel
const int BUTTON_PED = 2; // Pin für den Knopf der Fußgängerampel
// Dauer der einzelnen Phasen in Millisekunden
const int PHASE_RED = 10000;
const int PHASE_YELLOW = 1000;
const int PHASE_GREEN = 9000;
const int PHASE_PED_GREEN = 55000;
const int PHASE_TRANSITION = 2500;
void setup() {
pinMode(LED_RED, OUTPUT);
pinMode(LED_YELLOW, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(BUTTON_PED, INPUT_PULLUP);
}
void loop() {
// Fahrzeugampel auf Grün setzen
digitalWrite(LED_GREEN, HIGH);
delay(PHASE_GREEN);
// Fahrzeugampel auf Gelb setzen
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_YELLOW, HIGH);
delay(PHASE_YELLOW);
// Fahrzeugampel auf Rot setzen
digitalWrite(LED_YELLOW, LOW);
digitalWrite(LED_RED, HIGH);
// Übergangsphase "Alle Rot"
delay(PHASE_TRANSITION);
// Fußgängerampel auf Grün setzen, wenn der Knopf gedrückt wurde
if (digitalRead(BUTTON_PED) == LOW) {
digitalWrite(LED_RED, LOW);
digitalWrite(LED_GREEN, HIGH);
delay(PHASE_PED_GREEN);
}
// Fußgängerampel auf Rot setzen
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_RED, HIGH);
// Warte auf das Ende der Rotphase für Fahrzeuge
delay(PHASE_RED - PHASE_TRANSITION);
}