ich habe mir ein Kondensator-Messgerät mit Autoranging ~10.000uF - 1nF zusammengesteckt und ausgehend von diesem Code https://www.arduino.cc/en/Tutorial/CapacitanceMeter um die Autoranging-Funktionalität erweitert. Funktioniert auch gut!
In diesem Code gibt es folgende Zeile:
while(analogRead(analogPin) < 648){ } // 647 is 63.2% of 1023, which corresponds to full-scale voltage
Die Zeile habe ich verstanden, aber eigentlich sollte dort nicht 648 sondern 647 stehen, da bei mir 1023 x 0,632 = 646.5 ergibt. Und ausgehend von einem idealen ADC liegt die Schaltschwelle mittig zwischen 646 und 647, womit eigentlich das genauere Ergebnis rauskommen sollte!?
Oder gibt es hier noch andere Abhängigkeiten, die ich nicht berücksichtigt habe?
Gunther hatte aber den richtigen Einwurf, es muss 1024 und nicht 1023 heißen!
Ich habe gerade eine Stunde im Netz rumgewühlt, mir mal eine 2 bit Quantisierung aufgemalt, und die weit verbreitete n²-1 für Unsinn befunden!
Es muss durch 1024 geteilt werden, nicht 1023!
Die 1023 sieht zwar im ersten Moment logisch aus, aber wenn man sich mal eine Quantisierung in 4 Schritten aufgemalt hat, ergibt das eben doch nur Unsinn. Es steht ja auch richtig im Datenblatt des Atmel, leider habe ich in Datenblättern auch schon Fehler gesehen ...