Zitat Zitat von i_make_it Beitrag anzeigen
Du rechnest munter mit "float" und "int".
Ich selbst vermeide float wo es nur geht, da die Verarbeitung deutlich langsamer ist als bei int.
Wenn ich mir mal kurz die Arduino Referenz ansehe:
https://www.arduino.cc/reference/en/...a-types/float/

Versuch doch mal als erstes:
Vout = (Vin * sensorValue) / 1023;
in
Vout = (Vin * (float)sensorValue) / 1023;
zu ändern.
Dann rechnest Du zumindest schon mal nicht mehr mit Äpfeln (int) und Birnen (float).

https://www.arduino.cc/en/Reference/Cast

Schneller wäre die ganze Berechung mit Int oder (wenn den 32 Bit benötigt werden) mit long durchzuführen.
Mann kann das ganze ja auf Millivolt oder Mikrovolt trimmen. Die Umrechnung in Volt und den Nachkomma Bereich ist dann nicht so schwer.
das stimmt nicht, (Vin * sensorValue) wird automatisch (implizit) zu float gecastet, weil einer der beiden Faktoren bereits als float vordefiniert ist.
Außerdem hat der OP sicherlich kein Timing-Problem mit float.
delay(100); // Delay in milliseconds between reeds