1 /* Toggle con transizioni tra On | OFF con pulseIn
5 Sketch di esempio per accensione spegnimento di tutto l'impianto luci
6 tramite un interruttore a due posizioni della radio utilizzando pulseIn.
9 1 Lampeggiatore in coda in PWM
12 1 interruttore su interrupt 0 per accensione / spegnimento luci
15 Il codice e' blocking fin tanto che il segnale passa da RISE a FALL
16 quindi blocca per 1-2ms a ogni esecuzione. Con la variabile freq
17 si imposta ogni quanto fare una lettura.
25 unsigned long currentMillis; // timestamp reference per millis per tutto il loop
36 currentMillis = millis(); // Timestamp per tutto il loop
41 Serial.println("Luci On ");
44 Serial.println("Luci Off ");
50 boolean toggleRead(byte togglePin) {
52 long static unsigned toggleTime ; // Timestamp per switch
53 static int toggleValue = 0 ; // Valore catturato
54 static int toggleIn = 0 ; // Valore filtrato
55 const int soglia = 1400; // soglia per scatto toggle a 2 posizioni
56 const unsigned int freq = 400 ; // Ogni quanti millisecondi leggere il valore
58 if (currentMillis - toggleTime > freq) {
60 toggleIn = pulseIn(togglePin, HIGH, 25000);
61 if (toggleIn != 0 && toggleIn > 1000 && toggleIn <2000) {
62 // get only resonable values
63 toggleValue = toggleIn;
64 toggleTime = currentMillis ;
68 Serial.print(toggleIn);
69 Serial.print(" - Filtrato: ");
70 Serial.println(toggleValue);
73 if (toggleValue > soglia) {