]> git.piffa.net Git - sketchbook_andrea/blob - basic/buttons/blink_5_pooling/blink_5_pooling.ino
Clean up multitasking, bottoni con pooling e interrupts
[sketchbook_andrea] / basic / buttons / blink_5_pooling / blink_5_pooling.ino
1 /*
2   Blink v1
3
4   Accensione e spegnimanto di due LED utilizzando la tecnica del pooling:
5   un ciclo if nel loop verifica periodicamente tramite digitalRead
6   se un bottone e' premuto.
7
8   Il codice e' blocking a causa dell'uso della funziona delay
9   di conseguenza il pool del del bottone puo' avvenire solo quando
10   il microcontroller non e' in delay.
11
12   Nell'esercizio successivo (blink_interrupt) viene usato un interrupt
13   per intercettare la pressione del bottone.
14
15  */
16
17 // Pin 13 ha un LED collegato di default
18 const int ledA = 13;
19 const int ledB = 12; //Secondo LED, con resistenza
20 const int pausa = 2000; 
21
22 void setup() {
23   // Inizializziamo il PIN 13 come OUTPUT
24   pinMode(ledA, OUTPUT);
25   pinMode(ledB, OUTPUT);
26
27   pinMode(2, INPUT_PULLUP);
28 }
29
30 void loop() {
31   digitalWrite(ledA, HIGH);
32   delay(pausa);
33   digitalWrite(ledA, LOW);
34   delay(pausa);
35
36   if (!digitalRead(2)) {
37      digitalWrite(ledB, !digitalRead(ledB));
38   }
39
40 }
41