
Der Taster soll als Lichtein- und -ausschalter funktionieren.
Der Interrupt soll jetzt bei FALLING ausgelöst werden, weil der Zustand des Taster wegen des eingeschalteten Vorwiderstands von HIGH auf LOW „fällt“:
attachInterrupt(digitalPinToInterrupt(TASTER), LEDSchalten, FALLING);

Benötigte Bauteile:
- LED
- Widerstand 220 Ω
- Taster
- 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)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#define ROT 5 #define TASTER 2 /* je nach Zustand der Variable TasterStatus ist die LED ein- oder ausgeschaltet beim Start des Programms ist sie ausgeschaltet */ volatile bool TasterStatus = LOW; void setup() { pinMode(ROT, OUTPUT); // Eingangspegel auf HIGH setzen pinMode(TASTER, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(TASTER), LEDSchalten, FALLING); } void loop() { // nichts zu tun // das Programm reagiert nur auf den Interrupt } |
In der Funktion LEDSchalten muss der TasterStatus „umgedreht“ werden:
aus true wird false, aus false wird true
Das ist die Kurzform von:
|
1 2 |
if (TasterStatus == true) TasterStatus = false; else if (TasterStatus == false) TasterStatus = true; |
|
1 2 3 4 5 |
void LEDSchalten() { TasterStatus = !TasterStatus; digitalWrite(ROT, TasterStatus); } |
Ähnliche Projekte
- Interrupt: Licht schalten mit Bewegungsmelder
- Interrupt: Morsegerät
- Interrupt: Farbenspiel mit einem NeoPixel-Ring
- Interrupt: Lauflicht mit Fernbedienung
Letzte Aktualisierung:






