Ampel
Es soll eine Ampel simuliert werden. Mit einem Button kann man die Ampel umschalten.
Materialien
- senseBox MCU
- rote LED
- gelbe LED
- grüne LED
- 3x 470Ω Widerstand
- Button
- 10kΩ (10000Ω) Widerstand
- 2x senseBox JST-Adapterkabel
Aufbau
Hardwarekonfiguration
Um alle Komponenten anzuschließen benötigst Du zwei JST-Adapterkabel. Das erste wird an Digital A (also den digitalen Pins 1 und 2) angeschlossen, das zweite an Digital B (also den digitalen Pins 3 und 4) angeschlossen. Am Kabel in Digital A werden die rote und die gelbe LED angeschlossen, am Kabel in Digital B die grüne LED und der Button.
Sketch
Arduino Quellcode
int rot = 1;
int gelb = 2;
int gruen = 3;
int button = 4;
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
.