Inter­rupt: Licht ein- und ausschalten

Lese­zeit: 3 Minu­ten
Seite als PDF
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 Bauteile:

  • 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“ werden:

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

Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Ver­wand­te Aufgaben:


Letzte Aktualisierung: 13. Mrz 2021 @ 9:12