Eine Ampel mit Fußgängerampel soll mit einem Taster geschaltet werden. Wird der Taster gedrückt, schaltet die Fahrbahnampel auf rot und die Fußgängerampel auf grün.
So sieht es aus:
Benötigte Bauteile:
- Taster
- 2 rote LEDs
- 2 grüne LEDs
- 1 gelbe LED
- 5 Widerstände 220 Ω
- Leitungsdrähte
Beachte die ➨Vorwiderstände verschiedener LEDs
Baue die Schaltung auf.
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Definiere zuerst die Variablen für die Zuordnung der LEDs und die Variable für den Status des Tasters (TasterLesen).
Der gelesene Wert (LOW/HIGH) entscheidet über die Schaltung der Ampeln.
// Fahrbahnampel
int ROT = 3;
int GELB = 4;
int GRUEN = 5;
// Fußgängerampel
int F_ROT = 6;
int F_GRUEN = 7;
// Taster
int TASTER = 12;
// Status des Taster
int TasterLesen;
Im setup-Teil muss der pinMode des Tasters hinzufügt und der Vorwiderstand (INPUT_PULLUP) eingeschaltet werden.
void setup()
{
// Fahrbahnampel
pinMode(ROT, OUTPUT);
pinMode(GELB, OUTPUT);
pinMode(GRUEN, OUTPUT);
// Fußgängerampel
pinMode(F_ROT, OUTPUT);
pinMode(F_GRUEN, OUTPUT);
// Taster
// INPUT_PULLUP = Modus Eingabe und Eingangspegel auf HIGH setzen
pinMode(TASTER, INPUT_PULLUP);
}
Der zeitliche Ablauf:
Das Programm muss feststellen können, ob der Taster gedrückt wurde. Hierzu wird eine if-Abfrage benutzt.
Sie hat die Form:
// wenn die Bedingung erfüllt ist ...
if (Bedingung == Zustand)
{
// Befehl ausführen
}
In diesem Fall wird der Zustand der Variable Tasterlesen abgefragt. Ist der Zustand LOW, wird die Ampel geschaltet.
Zunächst zeigt die Fußgängerampel rot und die Fahrbahnampel grün. Ein Druck auf den Taster unterbricht den Strom. Der Status des Tasters ist dann LOW.
Das wird mit if abgefragt:
void loop()
{
// Ampel grün/Fußgängerampel rot
digitalWrite(F_ROT, HIGH);
digitalWrite(GRUEN, HIGH);
// Zustand des Tasters lesen
TasterLesen = digitalRead(TASTER);
delay(200);
// Taster auf HIGH gesetzt -> gedrückt = LOW
if (TasterLesen == LOW)
{
// 1 s Pause
delay(1000);
// Fahrbahnampel grün aus
digitalWrite(GRUEN, LOW);
// Fahrbahnampel gelb an
digitalWrite(GELB, HIGH);
delay(1000);
digitalWrite(GELB, LOW);
// Fahrbahnampel rot an
digitalWrite(ROT, HIGH);
// 1 s Sicherheitszeit
delay(1000);
// Fußgängerampel auf grün schalten
digitalWrite(F_ROT, LOW);
digitalWrite(F_GRUEN, HIGH);
delay(5000);
// Fußgängerampel auf rot schalten
digitalWrite(F_GRUEN, LOW);
digitalWrite(F_ROT, HIGH);
// 1 s Pause
delay(1000);
// Fahrbahnampel auf gelb und dann auf rot schalten
digitalWrite(GELB, HIGH);
delay(1000);
digitalWrite(ROT, LOW);
digitalWrite(GELB, LOW);
}
}
Verwandte Anleitungen:
- Ampel
- Ampel mit dem Beschleunigungssensor ADXL335 schalten
- Ampel mit Bluetooth schalten
- Ampel mit einem Ethernet-Shield schalten
- Ampel mit Fußgängerampel
- Ampel mit UNO R4 WiFi schalten
- Ampelanlage an einem Fußgängerüberweg
- Ampelschaltung mit einem LED-Stick
- Ampel mit Ultraschallsensor schalten
- Zwei Ampeln
Letzte Aktualisierung: