Da variabile a numero.... ????

Ciao scusate il quesito..
Ho cercato in giro ma non trovo una spiegazione o esempio chiaro di come fare per cambiare un orario con un bottone a 2 stati.
esempio se il bottone è premuto imposta 2 ore(7200 sec.) se non premuto imposta 1ora(3600sec).
presumo che la base sia if bottone >= HIGH .......ecc.. però dovrebbe cambiarmi il valore per il timer.

Grazie mille..

ciao...per me il quesito è un po' troppo generico; quand'è che il pulsante deve essere verificato? all'interno di specifiche condizione (tipo pagine di un menù)? o continuamente in ogni dove e quando nello sketch?
se premo e rilascio cosa deve fare? tiene buono il fatto che l'hai premuto o deve ritornare il valore come se non fosse premuto?...mi fermo qui...perchè altrimenti con un if/else (e forse una flag) si risolve il tutto!

allora lo sketch prevede varie funzioni temperatura ora ecc. basta che mi legga lo stato in un ciclo completo. Quando e premuto fa 2 ore e lasciato 1 ora esempio (if bottone = HIGH fai 1 ora else fai 2 ore.. per intenderci) il valore però devo modificarlo nella riga dove dico:

if((tempo >= 3600)
oppure
if((tempo >= 7200)

non sono sicuro di aver capito cosa vuoi e cosa ti serve…diciamo che per come l’ho capita farei:

int tempo = 3600;
boolean myFlag = false;

void setup() {
  // put your setup code here, to run once:
}

void loop() {
  if (digitalRead(unPin) == HIGH && myFlag ==false) {
    tempo *= 2;
    myFlag = true;
  }
  // put your main code here, to run repeatedly:
}

così ti basta un if()…se NON premi il pulsante hai 3600…se lo premi hai 7200 (e non toni indietro)…poi una volata usato il valore 7200 resetti la boolean.

adesso che leggo bene il tuo ultimo post...ATTENZIONE che se scrivi le due if come hai fatto adesso la prima verrà sempre eseguita anche se tempo vale 7200

Si credo così sia giusto. Sono una piccola domanda se volessi fare esempio da 4 a 5 ore cambio il valore tempo e il ×2 fareiun altro calcolo? Giusto? Così lo posso usare per vari comandi

Grazie mille per l'aiuto.

come ti ho suggerito io dai un solo comando e poi non ne accetta altri...in quanto c'è una flag che impedisce un secondo incremento della variabile.
Se ti serve incrementare continuamente la varibile ti serve qualche cosa che ti dica quante volte l'hai aumentata...
in conclusione...ma non vorrei aver capito male... se intendi usare la variabile tempo in più "posti" e dargli valori diversi non funzionerà...in quanto tempo contiene un solo valore alla volta.
per ogni verifica che vuoi fare devi usare una variabile diversa dove salvare il "tempo" che ti serve.

No mo son spiegato male. Cosi va bene. Ma se un giorno volessi fare da 2 a 8 ore cambio solo i valori. Ma cmq mi serve solo 1 cambiamento come descritto da te. Io giocavo solo con i numeri per cambiare l ora se 2 ore non bastasse farei 1 o 4 per dire. Ma sempre 1 solo comando

e allora ti basterebbe fare :

#define ORE 2

word tempo = 3600; // word è come unsigned int e conta da 0 a 65535

tempo *= ORE;

in questo modo, senza dover cercare in tutto lo sketch dove hai messo il calcolo; ti basta cambiare il valore di ORE in 3 o 4 o quello che vuoi (fino a 18 massimo...65535/3600 == 18.2)

Si perfetto. Grazie mille proverò. Gentilissimo..