Pages: [1]   Go Down
Author Topic: Problema lettura pulsanti  (Read 304 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 0
Posts: 59
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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!

Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Offline Offline
Jr. Member
**
Karma: 0
Posts: 59
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Pages: [1]   Go Up
Jump to: