Ich möchte eine Batterielebensdaueranzeige erstellen, die ich in Verbindung mit einem Mikrocontroller verwenden kann. Ich hoffe, dass ich dann die verbleibende Akkulaufzeit ablesen und den Mikrocontroller zunehmend in den Ruhezustand versetzen kann, um die Akkulaufzeit zu verlängern.
microcontroller
sleep
indicator
low-battery
littlebirdceo
quelle
quelle
Antworten:
Bei der primären Frage, wie die Spannung einer Batterie gemessen werden soll, besteht die einfachste Methode darin, einen der ADC-Pins am Arduino zu verwenden.
Wenn Sie 5 V aus der Batterie bereitstellen (unwahrscheinlich), können Sie das Pluszeichen (+) direkt an einen der analogen Eingangsstifte anschließen und analogRead () verwenden - jede Werterhöhung (von 0 bis 1023) entspricht 4,9 mV. Multiplizieren Sie den gelesenen Wert mit 0,0049, um die gelesenen Volt zu erhalten.
Wenn Sie mit einer höheren Spannung als 5 V (mit größerer Wahrscheinlichkeit) arbeiten, können Sie eine Spannungsteilerschaltung (siehe: http://en.wikipedia.org/wiki/Voltage_divider ) verwenden, um die Spannung, die Sie an den Analogeingang senden, auf zu bringen <= 5 v. Wenn Sie mit 12 V arbeiten, möchten Sie die Spannung in etwa 1/3 teilen. Nach dem Multiplizieren des ADC-Werts mit 3 multiplizieren, um die tatsächliche Spannung zu erhalten.
Wenn Sie also 12 V und einen 1/3-Spannungsteiler verwenden, gilt Folgendes:
! c
quelle
tinker.it hat einen "geheimen" Spannungspegelmesser im Atmega168 / atmega328 veröffentlicht. Mit einem kleinen Trick kann ein Arduino VCC mit einer internen 1.1v-Präzisionsreferenz vergleichen. Die Erklärung und der Code finden Sie hier: https://provideyourown.com/2012/secret-arduino-voltmeter-measure-battery-voltage/
quelle
Der Vorschlag von shutterdrone ist sehr gut, es fehlt jedoch ein Detail, da impliziert wird, dass die analoge Spannungsreferenz mit der gemessenen Spannung übereinstimmt (abgesehen von der Annahme, dass ein Arduino verwendet wird, was nicht ausdrücklich angegeben ist).
Sie benötigen einen ADC, unabhängig davon, ob er in Ihre uC integriert ist oder eine externe Komponente. Der ADC benötigt eine analoge Spannungsreferenz (ARef), um den Eingang mit zu vergleichen. Sie möchten nicht, dass das ARef mit der von Ihnen erfassten Spannung übereinstimmt, da der ADC dann die Eingangs- und Referenzspannung immer als gleich ansieht, sodass der Analogwert für die erfasste Spannung immer das Maximum ist. Was Sie brauchen, ist eine sehr genaue analoge Spannungsreferenz, die sich nicht ändert, wenn sich die Versorgungsspannung ändert. Der ADC vergleicht diese Referenzspannung mit der Batteriespannung. Sie können einen Spannungsteiler verwenden, um die erfasste Batteriespannung in den Bereich des ARef zu reduzieren.
Der Arduino (Atmega8 / 168/328 / etc.) Verfügt über einen eingebauten ADC und eine eingebaute 1,1-V-Analogreferenz. Die einzigen externen Komponenten, die Sie benötigen, sind Widerstände für den Spannungsteiler. Ich denke, Sie möchten auch sehr hohe Werte für die Widerstände verwenden, um den Stromverbrauch der Batterie zu verringern.
quelle