leo72:
Ma parliamo di pulsanti o di interruttori?
Un pulsante è un contatto che si chiude o apre temporaneamente, un interruttore è un contatto permanente.
Se usi un interruttore, basta alternare con un if: if chiuso {xxx} else {yyy}.cece99:
quello che vorrei fare è riuscire a mettere un interruttore che quando è chiuso mi permette di cambiare i tempi, e quando lo apro, mi fa partire una funzione basata sul fade,
ecco cosa non avevate capito!!! per passare dalla modalità "programmazione" a quella di "esecuzione" utilizzo un interruttore, mentre per fare la "programmazione" dei tempi utilizzo due pulsantini ;).
Sto provando in tutti i modi ma non riesco a far funzionare nulla
Questo è lo sketch (compila ma non funziona: quando muovo l'interruttore nel display non si vede più nulla :()
byte a = 0;
byte b = 25;
int val = 0;
int val1 = 0;
int val2 = 0;
int brightness = 0;
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
pinMode(7, INPUT);
pinMode(8, INPUT);
pinMode(6, INPUT);
lcd.begin(16, 2);
lcd.print("Luci presepe by");
lcd.setCursor(0, 1);
lcd.print("Cesare Cacitti ");
delay(5000);
//scrivo nome e cognome :-)
}
void loop() {
//stampo i tempi
lcd.setCursor(0, 0);
lcd.clear();
lcd.print("Giorno:");
lcd.print(a);
lcd.setCursor(0, 1);
lcd.print("Notte:");
lcd.print(b);
delay(100);
val2 = digitalRead(6); // se ho l'interruttore chiuso, vado in modalità programmazione
if (val2 == HIGH) {
val = digitalRead(7);
if (val == HIGH) {
a=a-1;
}
val1 = digitalRead(8);
if (val1 == HIGH) {
a=a+1;
}
else {// se è aperto vado in modalità esecuzione
//codice fade
}
}
}