const int ledPin = 13;
int previousA0Value = 0;
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
int A0value = analogRead(A0);
if ( A0value != previousA0Value ) {
Serial.print("value = "); Serial.println(A0value);
previousA0Value = A0value;
}
digitalWrite(ledPin, HIGH); delay(500);
digitalWrite(ledPin, LOW); delay(500);
}
byte readIDSwitch(){
byte id;
// this table is derived from measuring voltages / resistance
// from the resistor ladder circuit
const int id_table[] = {
0, 114, 205, 279, //0, 1, 2, 3
341, 394, 438, 477, //4, 5, 6, 7
512, 542, 568, 592, //8, 9, 10, 11
614, 633, 651, 667 //12, 13, 14, 15
};
const int epsilon = 10;
short v = analogRead(A0); //Wherever the signal goes to from resistors
Serial.println("buttons " + String(v) );
// use a lookup table, because the voltages are not linear
for (int i = 0 ; i < 16; i++ ) {
if ( (id_table[i] - epsilon < v) &&
(v < id_table[i] + epsilon) ) {
id = i;
Serial.println("id " + String(id) );
return id;
}
}
return 0;
}