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);
}