Ampel
Es soll eine Ampel simuliert werden. Mit einem Button kann man die Ampel umschalten.
Materialien
- Genuino UNO
- rote LED
- gelbe LED
- grüne LED
- 3x 470Ω Wiederstand
- Button
- 10Ω Wiederstand
Aufbau
Hardwarekonfiguration
Sketch
int rot = 13;
int gelb = 12;
int gruen = 11;
int button = 8;
void setup() {
pinMode(rot, OUTPUT);
pinMode(gelb, OUTPUT);
pinMode(gruen, OUTPUT);
// Der Button soll Signale messen, also INPUT
pinMode(button, INPUT);
// Ampel zuerst auf ROT setzen
digitalWrite(rot, HIGH);
digitalWrite(gelb, LOW);
digitalWrite(gruen, LOW);
}
void loop() {
// Hier wird geprüft ob der Button gedrückt wird
if(digitalRead(button) == HIGH) {
delay(5000);
// ROT zu GRUEN
digitalWrite(rot, HIGH);
digitalWrite(gelb, HIGH);
digitalWrite(gruen, LOW);
delay(1000);
digitalWrite(rot, LOW);
digitalWrite(gelb, LOW);
digitalWrite(gruen, HIGH);
delay(5000);
// GRUEN zu ROT
digitalWrite(rot, LOW);
digitalWrite(gelb, HIGH);
digitalWrite(gruen, LOW);
delay(1000);
digitalWrite(rot, HIGH);
digitalWrite(gelb, LOW);
digitalWrite(gruen, LOW);
}
}
- Am Anfang der
loop()
Funktion wird jedesmal abgefragt ob der Button gedrückt wird. digitalRead(button)
liest den aktuellen Zustand des Buttons aus. Wird er gedrückt, liefert die FunktionHIGH
aus, ansonstenLOW
.- Um zu Prüfen ob der Button gedrückt wurde muss
digitalRead(button)
mitHIGH
verglichen werden. Der Vergleich geschieht mit zwei Gleichzeichen==
(Vergleichsoperator). Ein Gleichzeichen=
ist eine Zuweisung, wie etwaint rot = 13
.