/* BO-100 as analog input divider to read distance on a linear Pot Circuit required BO-100 Kard in Slot 0 0 ohm r5,12,15,22,25,32,35,42 1k ohm r10,20,30,40 0-10K pot on inputs C0P0-C0P3 wiper, low side connected to ground, high side floating */ void setup(){ pinMode(C0IO0,INPUT); pinMode(C0IO1,INPUT); pinMode(C0IO2,INPUT); pinMode(C0IO3,INPUT); Serial.begin(115200); } void loop(){ Serial.print("Zero: "); //tag Serial.println(CalcPosition(analogRead(C0IO0)),4);//print calculated position Serial.print("One: "); //tag Serial.println(CalcPosition(analogRead(C0IO1)),4);//print calculated position Serial.print("Two: "); //tag Serial.println(CalcPosition(analogRead(C0IO2)),4);//print calculated position Serial.print("Three: "); //tag Serial.println(CalcPosition(analogRead(C0IO3)),4);//print calculated position delay(1000); } //returns distance down sensor where touch is or -1 when untouched double CalcPosition(unsigned int input) { const double length_mm = 100; //resistor divider has range of 0-3v while connected const double max_read_in_range = 1023*3/3.3; //3.3 is adc vRef, 1023 is adc full scale count double calculated = (double)input/max_read_in_range*length_mm; // if(input>max_read_in_range+10){ // add a little for errors and unconnected is 1023 return -1; } else { return calculated; } }