5 pulsanti con resistenze letti con AnalogRead danno valori fluttuanti

Ho recuperato una vecchia pulsiantiera da un TV CRT vecchio.
Ha 5 microswitch classici a cui sono collegate 5 resistenze di valori molto differenti tra loro e
2 fili che vanno alla scheda madre, lo schema logico in allegato.
Volevo usarli come pulsanti collegati a 5 porte digitali di arduino, ma visto che le resistenze hanno valori crescenti e visti i 2 fili gia' pronti, pensavo di usarla in analogico, anche perche' non mi va di fare saldature e cambiare le resistenze, anche perche' il progetto serve a me, quindi non andrei nemmeno a premere 2 tasti insieme o cose del genere. Quindi ho collegato direttamente i 2 fili al VCC (+5V) e all'A3, come nello schema allegato.

Se non premo nessun pulsante, i valori rilevati sono totalmente casuali (il pin A3 rimane libero).
Se premo qualche pulsante, i valori sono sempre un po' fluttuanti e per molti tasti mi da sempre il fondo scala ovvero 1023.
Come potrei risolvere facilmente?

I valori delle resistenze misurati con il tester sono:

R1 = 270 ohm
R2 = 468 ohm
R3 = 667 ohm
R4 = 1460 ohm
R5 = 3870 ohm

e questo è lo sketch usato:

int sensorPin = A3; // select the input pin for the potentiometer
int ledPin = 13; // select the pin for the LED
int sensorValue = 0; // variable to store the value coming from the sensor

void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}

void loop() {
// read the value from the sensor:
sensorValue = analogRead(sensorPin);
// turn the ledPin on
digitalWrite(ledPin, HIGH);
Serial.println(sensorValue); // Stampo nella seriale il valore letto
// stop the program for milliseconds:
delay(sensorValue);
// turn the ledPin off:
digitalWrite(ledPin, LOW);
// stop the program for for milliseconds:
delay(sensorValue);
}

minipro_pulsantiera.jpg

Devi fare un partitore, quindi inserire una resistenza tra il pin A3 e il GND

di che valore la resistenza?

mah.. con quei valori, a occhio 1000 Ohm

  1. NON puoi mai lasciare un pin flottante o leggerai sempre valori a caso.

  2. Crea un partitore di tensione con una resistenza fissa e, in serie una di quelle che selezioni con il pulsante così da avere, al centro del partitore, un valore di tensione diverso per ogni pulsante premuto e leggi tale valore tramite il pin analogico (applica la legge di Ohm).

Guglielmo