Problemino sketch

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 :frowning:
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
  }  
  }  
  }