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
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.