Go Down

Topic: Problema lettura pulsanti (Read 322 times) previous topic - next topic

FràFrà

Ho creato una classica tastiera con vari pulsanti collegati tutti su un entrata analogica nel mio caso A0.
ho messo una resistenza da 1K tra A0 e GND poi ad ogni pulsante gli ho messo logicamente una resistenza diversa per variare il valore di lettura quando premuto

ora dato che ho alcune interferenze  a volte mi legge per esempio il valore 90 ed a volte 92 o 89 ecc...
se io nel codice gli do il valore 90 al pulsante capita che quando mi legge il 90 funziona mentre negli altri casi stenta.
come potrei risolvere il problema?
qui gli assegno il valore ad ogni pulsante:

fourButtons.setRef(PulsanteMeno,90);

io avevo pensato di fare così:

fourButtons.setRef(PulsanteMeno, 87 & 88 & 89 & 90 & 91 & 92 & 93);

ma il risultato non cambia!


leo72

Non puoi leggere valori assoluti, piccole fluttuazioni interferiranno sempre con le letture.

Devi farti un array con i valori massimi di lettura di ogni tasto e poi fare un check per vedere se la lettura rientra in un determinato range.
Ad esempio, facciamo che hai letturaPulsanti[10]={100, 150, 200, 250, 300, 350, 400, 450, 500, 550}
Leggi l'ingresso analogico poi fai un for:
byte leggiTasto{
  for (byte i=0; i<10; i++) {
    if (lettura<letturaPulsanti) { return lettura; }
  }
}

In questo modo ti dovrebbe restituire la lettura compresa fra il minimo ed il massimo.

FràFrà

Ok grazie..ora provo e vedo se funziona...

Go Up