Musterlösung Ampelsteuerung
- kapitel04_ampel-muster.ino
#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:
- kapitel04_ampel-muster-pin.ino
#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:
- kapitel04_ampel-muster.ino
#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); }