const byte pin_r1 = 4, pin_r2 = 3, pin_r3 = 2;
const float r1=220, r2=22e3, r3=2.2e6;
const float Uref = 5.0;
void setup() {
Serial.begin(115200);
pinMode(pin_r1, INPUT);
pinMode(pin_r2, INPUT);
pinMode(pin_r3, INPUT);
}
float messung(byte pin, float r)
{
pinMode(pin, OUTPUT);
digitalWrite(pin, HIGH);
int rohwert = analogRead(A0);
digitalWrite(pin, LOW);
pinMode(pin, INPUT);
//if(rohwert < 3 || rohwert > 1019)
// return -1.0;
/*
U2 / Uref = R2 / (R1+R2)
Uref / U2 = (R1+R2)/R2 = R1/R2 + 1
(Uref / U2 - 1 ) / R1 = 1/R2
R1*U2 / (Uref-U2) = R2
*/
float U0 = rohwert * Uref / 1023.0;
float r0 = r * U0 / (Uref-U0);
Serial.println(rohwert);
Serial.println(U0);
Serial.print(r, 0);
Serial.print(" -> ");
Serial.println(r0, 1);
return r0;
}
void loop()
{
Serial.println("Messreihe:");
messung(pin_r1, r1);
messung(pin_r2, r2);
messung(pin_r3, r3);
delay(1000);
}