Inter­rupt: Licht ein- und aus­schal­ten

Lese­zeit: 3 Minu­ten
Navi­ga­ti­on

Der Tas­ter soll als Lichtein- 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 Bau­tei­le:

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

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

// nur Port 2 und 3 können mit 
// attachInterrupt angesprochen werden 
# 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); 
  
  // Vorwiderstand einschalten 
  pinMode(TASTER, INPUT_PULLUP); 
  attachInterrupt(digitalPinToInterrupt(TASTER), LEDSchalten, FALLING); 
} 

void loop()  
{ 
  // nichts zu tun 
  // das Programm reagiert nur auf den Interrupt 
}

In der Metho­de LED­Schal­ten muss der Tas­ter­Sta­tus „umge­dreht“ wer­den:

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


Ver­wand­te Auf­ga­ben:


Letzte Aktualisierung: 25. Aug 2020 @ 7:31