4 Accensione e spegnimanto di due LED utilizzando un interrupt:
5 un interrupt associato al PIN del bottone sollecita una ISR routine
6 che puo' essere richiamata in ogni momento a prescindere
7 da cosa il microprocessore sta facendo nel loop.
9 Nota: per togliere l'effetto bouncing del bottone:
10 - https://www.arduino.cc/en/tutorial/debounce
11 vedi esercizio: sketchbook_andrea/advanced_projects/interrupts/debounce/debounce.ino
12 - https://lab.piffa.net/sketchbook_andrea/advanced_projects/interrupts/debounce/debounce.ino
16 // Pin 13 ha un LED collegato di default
18 const int ledB = 12; //Secondo LED, con resistenza
19 const int pausa = 5000;
22 // Inizializziamo il PIN 13 come OUTPUT
23 pinMode(ledA, OUTPUT);
24 pinMode(ledB, OUTPUT);
26 pinMode(2, INPUT_PULLUP);
27 attachInterrupt(0, reazioneISR, FALLING); // 0 e' l'interrupt numero 0
28 // connesso al PIN D2, l'interrupt 1 e' connesso al PIN D3
29 // eventoAttivo : nome della funzione da richiamare
30 // per un ISRs e' sempre VOID
31 // LOW | RISING | FALLIN | CHANGE | HIGH
35 digitalWrite(ledA, HIGH);
37 digitalWrite(ledA, LOW);
41 void reazioneISR() // Sempre VOID
43 digitalWrite(ledB, !digitalRead(ledB));