Inter­rupt: Licht ein- und ausschalten

Lese­zeit: 3 Minu­ten

Lösung
Seite als PDF

Der Tas­ter soll als Licht­ein- und -aus­schal­ter funk­tio­nie­ren.
Der Inter­rupt soll jetzt bei FALLING aus­ge­löst wer­den, weil der Zustand des Tas­ter wegen des ein­ge­schal­te­ten Vor­wi­der­stands von HIGH auf LOW „fällt“:

attachInterrupt(digitalPinToInterrupt(TASTER), LED­Schal­ten, FALLING);

attach­In­ter­rupt()

Benö­tig­te Bauteile:

  • LED
  • Wider­stand 220 Ω
  • Tas­ter
  • Lei­tungs­dräh­te

Beach­te die ➨Vor­wi­der­stän­de ver­schie­de­ner LEDs

Baue die Schal­tung auf:
(Fah­re mit der Maus über das Bild, um die Bezeich­nun­gen der Bau­tei­le zu sehen)

# 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 Funk­ti­on LED­Schal­ten muss der Tas­ter­Sta­tus „umge­dreht“ werden:

void LEDSchalten()  
{ 
  TasterStatus = !TasterStatus; 
  digitalWrite(ROT, TasterStatus); 
}

Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Ver­wand­te Aufgaben:


Letzte Aktualisierung: 20. Nov 2023 @ 9:08