Ich teste die Seeeduino v4.2-Karte mit dem ADCInOutSerial- Code in der Arduino IDE und die niedrigste Spannung, die die Karte lesen kann, beträgt 18 mV , was einem äquivalenten ADC von 4 auf dem seriellen Monitor entspricht. Der Chip, den das Board verwendet, ist der ATmega328P . Es arbeitet mit einem 5-V-Netzteil und hat einen 10-Bit-ADC (1024 Pegel). Die Spannung, die ich für einen ADC-Pegel von 1 berechnet habe, ist also 5/1024 = x / 1, wobei x die äquivalente Spannung für das ist ADC-Pegel von 1, der 5 mV beträgt .
Das Board liest jedoch nichts unter 18 mV. Ist es normal, dass der Chip keinen ADV-Wert unter 18 mV lesen kann, oder mache ich irgendwo einen Fehler?
Ich habe die Spannung mit einem Multimeter getestet.
arduino
microcontroller
adc
J2018
quelle
quelle
Antworten:
Siehe Datenblatt Abschnitt 28.8 ADC-Eigenschaften: typischer Offsetfehler 2 LSB und typischer Verstärkungsfehler 2 LSB. Die absolute Genauigkeit (INL, DNL, Verstärkungsfehler, Offsetfehler usw.) kann unter bestimmten Betriebsbedingungen typischerweise 4,5 LSB betragen. Dies sind typische, nicht garantierte Min / Max-Spezifikationen. Also ja, es ist ziemlich normales Verhalten. Sie können einen externen ADC kaufen, der minimale / maximale Leistungsspezifikationen garantiert. Der interne ADC tauscht jedoch Komfort gegen Leistung. Übrigens, Ihr Multimeter hat wahrscheinlich seine eigenen Messfehlerspezifikationen. Überprüfen Sie die mitgelieferte Broschüre.
quelle
Abgesehen von den an anderer Stelle erwähnten theoretischen und Worst-Case-Chipspezifikationen gibt es auch eine mögliche Fehlerquelle bei den Spannungsabfällen über Kupferspuren.
Die Erdung ist bei mV-Pegel nicht äquipotential, da Ströme im mA-Pegel oder höher durch typisches 1-Unzen-Kupfer fließen. Sie können also diesen Spannungsabfall ablesen. Wenn Sie die Spannung messen, die in den Chip fließt, legen Sie die negative Leitung Ihres Messgeräts direkt auf den GND-Pin, der dem Aref-Pin am nächsten liegt.
quelle
Der ADC hat einen Nullpunktversatz, ebenso wie die Signalaufbereitungselektronik (z. B. ein Operationsverstärker).
Wenn Sie genaue ADC-Messungen benötigen, ist es üblich, eine Selbstkalibrierung durchzuführen. Beim Einschalten wird der Signaleingang vorübergehend vom ADC getrennt, und das Mikro überprüft den ADC-Messwert mit einem garantierten 0-V-Eingang. Das Mikro kann diesen Wert dann von den tatsächlichen ADC-Messwerten subtrahieren, um die tatsächliche Spannung am Eingang zu erhalten.
Für Anwendungen, die eine noch bessere Messgenauigkeit benötigen, ist es auch üblich, beim Einschalten eine weitere Selbstkalibrierungsstufe hinzuzufügen, bei der eine bekannte Referenzspannung vorübergehend auf den Signaleingang geschaltet wurde. Wenn Sie die tatsächliche Spannung kennen, können Sie den ADC-Wert nach Bedarf nach oben oder unten skalieren. Wenn Sie nur einen ADC im System haben, ist dies nicht erforderlich, da ADCs allein genau genug sind. Wenn Sie jedoch vor dem ADC eine Art Signalaufbereitungsschaltung haben, werden Verstärkungsfehler aufgrund von Komponententoleranzen im Rest der Schaltung korrigiert.
quelle
Bei einem 328P sind es im Allgemeinen 5 V / 1024 oder ~ 4,88 mV. Wenn Vcc niedriger ist, z. B. 4,75 V von USB, ist es etwas niedriger.
Die tatsächliche Verwendbarkeit wird wie an anderer Stelle beschrieben sein.
quelle