1 /* Toggle con transizioni tra On | OFF con pulseIn
4 Sketch di esempio per accensione spegnimento di tutto l'impianto luci
5 tramite un interruttore a due posizioni della radio utilizzando pulseIn.
8 1 Lampeggiatore in coda in PWM
11 1 interruttore su interrupt 0 per accensione / spegnimento luci
14 Il codice e' blocking fin tanto che il segnale passa da RISE a FALL
15 quindi blocca per 1-2ms a ogni esecuzione. Con la variabile freq
16 si imposta ogni quanto fare una lettura.
24 unsigned long currentMillis; // timestamp reference per millis per tutto il loop
27 const byte chToggle = A0; // PIN su cui e' collegato il canale
28 long unsigned toggleTime = 0; // Timestamp per switch
29 int toggleValue = 1500; // Valore catturato
30 int toggleIn = 1500; // Valore filtrato
31 const int soglia = 1400; // soglia per scatto toggle a 2 posizioni
32 const unsigned int freq = 200 ; // Ogni quanti millisecondi leggere il valore
33 // Attenzione che pulsein e' blocking
43 currentMillis = millis(); // Timestamp per tutto il loop
45 // Lettura ailerons channel ogni 200ms
46 if (currentMillis - toggleTime > freq) {
48 toggleIn = pulseIn(chToggle, HIGH, 25000);
49 if (toggleIn != 0 && toggleIn > 1000 && toggleIn <2000) {
50 // get only resonable values
51 toggleValue = toggleIn;
52 toggleTime = currentMillis ;
56 if (toggleValue > soglia) {
59 Serial.print("Luci On ");
65 Serial.print("Luci Off ");
70 Serial.print(toggleIn);
71 Serial.print(" - Filtrato: ");
72 Serial.println(toggleValue);