Switch analogico pressione o click

Salve a tutti, vi scrivo per chiedervi come riconoscere se uno switch analogico è premuto a lungo o per breve tempo. Tra tutti i codici che ho visto si utilizza sempre digitalRead per farlo, distinguendo tra HIGH e LOW. Io invece ho 4 switch differenti che vanno a finire sul pin A0. Per distinguerli, a seconda dello switch premuto mi viene un valore di A0 diverso tramite l'analogRead. Il codice non l'ho ancora scritto, quindi non posso incollarvi niente. Spero di essermi spiegato :slight_smile:

ciao
per essere fattibile e' fattibile, ma vuoi che ti si scriva il codice?
se vuoi solo delle indicazioni io lo farei con la istruzione IF dove vai a verificare che il valore di A0 sia all'interno di un range che stabilisci tu, 4 switch quindi 4 valori per A0 quindi 4 IF

stefano

Funzione millis(). Alla rilevazione della pressione fai partire il contatore, e dopo tot secondi controlli se è ancora premuto.
Oppure, per essere più affidabile, controlli tipo ogni 10ms se c'è ancora pressione e incrementi una variabile che se arriva al tuo tot di secondi da l'ok.

Usa l'istruzione switch case, resistenze di precisione e tanta pazienza.
Prevedi anche che deve discriminare più pulsanti premuti contemporaneamente.

Fai un semplice programma che legge l'ingresso analogico e stampa il valore su seriale.
Lancia il programma, apri il monitor seriale, premi tutte le possibili combinazione di pulsanti e segnati i valori corrispondenti.
Una volta che avrai i valori potrai crearti una serie di IF per discriminare il pulsante premuto e da li poi attiverai le diverse funzioni in base a ciò che vuoi che faccia l'Arduino.