Ich versuche die Temperatur mit PT100 zu messen. Ich benutze dafür das ADC Pi Board. ADC Pi verwendet MCP3424 (PDF-Datenblatt) A/D-Wandler, und im Datenblatt habe ich herausgefunden, wie man die Spannung berechnet - es ist ziemlich einfach -
Input Voltage = (Output Code) * LSB/PGA
Also habe ich eine einfache App erstellt, die den Ausgangscode erhält, die Spannung berechnet und aus dieser Spannung den Widerstand berechnet. Aber das Ergebnis stimmte nicht. Also habe ich die Beispielcodes durchsucht und festgestellt, dass die Berechnung etwas anders ist -
voltage = float(
(raw * (self.__lsb / self.__pga)) * 2.448579823702253)
Ich konnte nicht herausfinden, was die Nummer 2.448579823702253
bedeutet ... Ich vermute, dass es etwas mit anderen Teilen auf der Platine zu tun hat, aber ich verstehe die Elektronik nicht so gut.
Kann jemand erklären, was es genau bedeutet?
Gemäß dem Schaltplan befindet sich in der Schaltung ein 10k--6,8k-Widerstandsteiler.
6.8k / (6.8k + 10k) = .4047619 1/.4047619 = 2.470588
Eine andere Anlaufstelle könnte sein:
__lsb = float(0.0000078125) # default lsb value for 18 bit 7.8125e-6 * 2^18 = 2.048 // full-scale value? 5V / 2.048 = 2.441406
Oder vielleicht eine Kombination dieser Dinge.
Tut mir leid, ich habe keine Zeit, das gesamte Datenblatt zu analysieren, aber diese beiden Zahlen liegen nahe an Ihrer magischen Zahl.
Ich ermutige Sie, es Schritt für Schritt durchzuarbeiten und zu versuchen, es vollständig herauszufinden - bis zu dem Punkt, an dem Ihre Ergebnisse innerhalb weniger mV übereinstimmen. Es wird eine richtige Antwort geben, und es wird hilfreich sein, wenn Sie Ihre Einheiten im Auge behalten (mV, LSBs usw.)
Sie können viel darüber lernen, wie digitale Systeme mit der realen Welt kommunizieren!
bitsmack
RBerteig
Daniel