[[uc-welt:gscheiduino:04-ampelsteuerung|← Zurück zum Kapitel]] ====== Musterlösung Ampelsteuerung ====== #define LED_ROT 13 #define LED_GELB 12 #define LED_GRUEN 11 void setup() { pinMode(LED_ROT, OUTPUT); pinMode(LED_GELB, OUTPUT); pinMode(LED_GRUEN, OUTPUT); } void loop() { digitalWrite(LED_ROT, HIGH); digitalWrite(LED_GELB, LOW); digitalWrite(LED_GRUEN, LOW); delay(2000); digitalWrite(LED_ROT, HIGH); digitalWrite(LED_GELB, HIGH); digitalWrite(LED_GRUEN, LOW); delay(1000); digitalWrite(LED_ROT, LOW); digitalWrite(LED_GELB, LOW); digitalWrite(LED_GRUEN, HIGH); delay(3000); digitalWrite(LED_ROT, LOW); digitalWrite(LED_GELB, HIGH); digitalWrite(LED_GRUEN, LOW); delay(1000); } Als kleines Beispiel zur Pinänderung: Sollten wir nun die grüne LED anstatt an Pin11 plötzlich an Pin10 anstecken, können wir diese Änderung sehr einfach ganz am Anfang am define vornehmen: #define LED_ROT 13 #define LED_GELB 12 #define LED_GRUEN 10 void setup() { pinMode(LED_ROT, OUTPUT); pinMode(LED_GELB, OUTPUT); pinMode(LED_GRUEN, OUTPUT); } void loop() { digitalWrite(LED_ROT, HIGH); digitalWrite(LED_GELB, LOW); digitalWrite(LED_GRUEN, LOW); delay(2000); digitalWrite(LED_ROT, HIGH); digitalWrite(LED_GELB, HIGH); digitalWrite(LED_GRUEN, LOW); delay(1000); digitalWrite(LED_ROT, LOW); digitalWrite(LED_GELB, LOW); digitalWrite(LED_GRUEN, HIGH); delay(3000); digitalWrite(LED_ROT, LOW); digitalWrite(LED_GELB, HIGH); digitalWrite(LED_GRUEN, LOW); delay(1000); } ====== Optimierte Variante ====== Den Code von ganz oben kann man natürlich noch optimieren und die überflüssigen Anweisungen entfernen: #define LED_ROT 13 #define LED_GELB 12 #define LED_GRUEN 11 void setup() { pinMode(LED_ROT, OUTPUT); pinMode(LED_GELB, OUTPUT); pinMode(LED_GRUEN, OUTPUT); } void loop() { digitalWrite(LED_ROT, HIGH); delay(2000); digitalWrite(LED_GELB, HIGH); delay(1000); digitalWrite(LED_ROT, LOW); digitalWrite(LED_GELB, LOW); digitalWrite(LED_GRUEN, HIGH); delay(3000); digitalWrite(LED_GELB, HIGH); digitalWrite(LED_GRUEN, LOW); delay(1000); }