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“ wer­den:
aus true wird fal­se, aus fal­se wird true

Das ist die Kurz­form von:

 if (TasterStatus == true) TasterStatus = false;
 else if (TasterStatus  == false) TasterStatus = true;
void LEDSchalten()  
{ 
  TasterStatus = !TasterStatus; 
  digitalWrite(ROT, TasterStatus); 
}

Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Ver­wand­te Anleitungen:


Letzte Aktualisierung: Nov. 15, 2024 @ 10:00