Messen der Stromquellenspannung eines Arduino mit Analog In

9

Ich versorge einen Arduino mit einer 5-V-Batterie (3,7 V für ein Step-up-Modul) und muss die Spannung messen. Angenommen, die Batterie liefert hohen Strom . Ist es sicher, die Spannung über Analog In zu messen? Wie in diesem:

Geben Sie hier die Bildbeschreibung ein

Der Grund, den ich frage, ist, dass ich nicht viel über die ADC-Architektur und die Einschränkungen des Arduino weiß. Normalerweise würde ich dies aus Sicherheitsgründen tun:

Geben Sie hier die Bildbeschreibung ein

Sind die Verbindungen im ersten Diagramm für den ADC sicher? Danke im Voraus!

Hinweis: Eine ähnliche Frage wurde hier gestellt: ( Überwachung des Gleichstromverbrauchs ), beantwortet jedoch nicht die Frage nach hohen Strombelastungen der Batterie.

Ahmed Farid
quelle
1
Woher hast du eine 5V Batterie?
Tatsächlich handelt es sich um eine 3,7-V-Batterie, die in eine Hochspannungsreglerschaltung eingespeist wird. Ich bin zwar daran interessiert, die 3,7-V-Batterie selbst zu messen, habe aber zum Beispiel nur 5 V angenommen, um zu zeigen, dass der Arduino funktioniert.
Ahmed Farid
Ah, aber es könnte Dinge ändern. Wahrscheinlich nicht: Dem Arduino ist es egal, wie viel Strom von der Batterie aufgenommen wird, solange nicht der gesamte Strom durch den E / A-Pin fließt. Aber ich bin nicht sicher, ich kenne kein Arduino.
Das stimmt. Ich mache mir Sorgen um den Stromeingang des Analog-In-Pins, wenn ich ihn direkt an eine Batterie anschließe.
Ahmed Farid

Antworten:

6

Überprüfen Sie das Datenblatt auf den Eingangsstrom an einem E / A-Pin. Dies hängt vom genauen Reglertyp Ihres Arduino ab. Es wird wahrscheinlich als Eingangsleckstrom-E / A-Pin bezeichnet und liegt in der Nähe von 1 μA .

Hier ist ein typisches ATmega-Datenblatt, das unter Uno / Duemilanove / ... verwendet wird. Den Parameter finden Sie auf Seite 304. Überprüfen Sie das Datenblatt Ihres spezifischen Controllers auf genaue Details.

Wenn Sie eine 3,7-V-Batterie und einen Aufwärtswandler verwenden, um 5 V an den Controller zu liefern, können Sie den Akku direkt an den Analogeingang Ihres Controllers anschließen. Wenn jedoch die Ausgangsspannung des Aufwärtswandlers unter die Spannung der Batterie fällt (aus welchem ​​Grund auch immer), wird Ihr gesamtes Arduino über den analogen Eingangspin gespeist, und das ist es, was Sie nicht wollen. Alle Eingangspins sind gegen Überspannung geschützt, was dieses Verhalten ermöglicht. Die Dioden sind jedoch nicht für Dauerströme ausgelegt. Fazit: Es ist am besten, einen Vorwiderstand zwischen Batterie und Eingangspin einzubauen.

Jetzt hängt Ihre Messung von der Genauigkeit der 5-V-Stromversorgung ab. Je nachdem, welchen genauen Regler Sie haben, stehen verschiedene interne Referenzspannungen zur Verfügung, die weitaus genauer sind als die Versorgungsspannung. Wenn Sie Masse (R2) einen zusätzlichen Widerstand hinzufügen, können Sie eine solche Referenz verwenden, um die Eingangsspannung genau zu messen. Dies wird als (ohmscher) Spannungsteiler bezeichnet. Bei dem angegebenen Verhältnis beträgt die Spannung am Eingangspin 1 V, wenn die Batteriespannung 3,7 V beträgt:

Vmeasurement=R2×VBATTR1+R2

schematisch

simulieren Sie diese Schaltung - Schema erstellt mit CircuitLab

Jippie
quelle
1
Im Wesentlichen ist es also möglich, es direkt an eine Batterie anzuschließen, aber NICHT empfohlen, wenn die 5 V variieren. Auch wenn die 5V geregelt und konstant ist?
Ahmed Farid
2
Es sollte sicher sein, wenn 5 V konstant sind, aber es geht immer schief. Besser sicher als leid. Ein oder zwei Widerstände sind viel billiger als ein neuer Mikrocontroller. Beim Engineering geht es nicht nur darum, Dinge zum Laufen zu bringen, sondern auch darum, Dinge zu schaffen, die nach Bedarf weiter funktionieren.
Jippie
Eine andere Frage, wenn ich darf: Ist ein einzelner Widerstand (1K) parallel zur Batterie nicht gut genug, um einen hohen Stromeingang zu verhindern? (Siehe meine zweite Figur)
Ahmed Farid
Nein, es wird nichts anderes getan, als die Batterie zu ziehen.
Jippie
4

Eine andere Möglichkeit besteht darin, die interne V1-V-Bandlückenspannungsreferenz des Arduino zu verwenden, um den Wert von VCC zu bestimmen, ohne zusätzliche externe Teile zu verwenden, wie unter diesen beiden Links beschrieben:

http://jeelabs.org/2012/05/04/measuring-vcc-via-the-bandgap/

und

http://arduino.cc/forum/index.php?topic=88935.0

Das einzige Problem ist, dass Sie einen Kalibrierungswert für die interne 1,1-V-Bandlücke ermitteln müssen, da diese um bis zu 10% abweichen kann.

Dies würde jedoch keine zusätzlichen Teile erfordern und es Ihrem atmega ermöglichen, die Spannung seiner Stromquelle zu bestimmen.

Flügel Tang Wong
quelle
3
Hier ist ein weiterer Artikel, der beschreibt, wie das geht. Der verwendete Code ist etwas anders: requireyourown.com/2012/…
ThomasW
@ThomasW schön! Ein weiterer großartiger Artikel zur Verwendung der 1.1v-Bandlücke.
Wing Tang Wong