Messen der Stromquellenspannung eines Arduino mit Analog In

Ich versorge einen Arduino mit einer 5-V-Batterie (3,7 V zu einem Aufwärtsmodul) und muss die Spannung messen. Nehmen wir an, die Batterie liefert einen hohen Strom . Ist es sicher, die Spannung über Analog In zu messen? Wie hierin:

Geben Sie hier die Bildbeschreibung ein

Der Grund, warum ich frage, ist, dass ich nicht viel über die ADC-Architektur und die Einschränkungen des Arduino weiß. Also normalerweise würde ich das zur Sicherheit tun:

Geben Sie hier die Bildbeschreibung ein

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

Hinweis: Eine ähnliche Frage wurde hier gestellt: ( Monitor DC Power Usage ), aber sie beantwortet nicht die Frage nach hohen Strombelastungen der Batterie.

Woher hast du eine 5V Batterie?
Eigentlich ist es eine 3,7-V-Batterie, die in eine Aufwärtsspannungsreglerschaltung geht. Ich bin in der Tat daran interessiert, die 3,7-V-Batterie selbst zu messen, aber zum Beispiel habe ich nur angenommen, dass sie 5 V hat, um zu zeigen, dass der Arduino funktioniert.
Ah, aber es könnte die Dinge ändern. Wahrscheinlich nicht: Dem Arduino ist es egal, wie viel Strom von der Batterie gezogen wird, solange nicht der gesamte Strom durch den IO-Pin fließt. Aber ich bin mir nicht sicher, ich kenne Arduino nicht.
Das stimmt. Ich mache mir Sorgen um den Stromeingang zum Analog In-Pin, wenn ich ihn direkt an eine Batterie anschließe.

Antworten (2)

Überprüfen Sie das Datenblatt für den Eingangsstrom an einem E / A-Pin. Dies hängt von der genauen Art des Controllers auf Ihrem Arduino ab. Es wird wahrscheinlich Input Leakage Current I/O Pin genannt und wird in der Nähe von 1μA liegen .

Hier ist ein typisches ATmega-Datenblatt, das auf Uno / Duemilanove / ... verwendet wird, Sie finden den Parameter auf Seite 304. Überprüfen Sie das Datenblatt für Ihren spezifischen Controller auf genaue Details.

Wenn Sie eine 3,7-V-Batterie und einen Aufwärtswandler verwenden, um den Controller mit 5 V zu versorgen, können Sie die Batterie 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 gesamter Arduino über den analogen Eingangspin gespeist, und das möchten Sie nicht . Alle Eingangspins haben einen Überspannungsschutz, der dieses Verhalten ermöglicht, aber die Dioden sind nicht für Dauerströme ausgelegt. Fazit: Es ist am besten, einen Vorwiderstand zwischen Batterie und Eingangspin einzubauen.

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

v m e a s u r e m e n t = R 2 × v B EIN T T R 1 + R 2

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

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 sind?
Es sollte sicher sein, wenn 5 V konstant sind, aber die Dinge gehen die ganze Zeit schief, also: 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 so zu gestalten, dass sie bei Bedarf funktionieren.
Eine andere Frage, wenn ich darf: Reicht nicht ein einzelner Widerstand (1K) parallel zur Batterie aus, um eine hohe Stromaufnahme zu verhindern? (Siehe meine zweite Abbildung)
Nein, es tut nichts anderes als die Batterie zu ziehen.

Eine andere Möglichkeit besteht darin, die interne 1,1-V-Bandlückenspannungsreferenz des Arduino zu verwenden, um den Wert von VCC ohne die Verwendung zusätzlicher externer Teile zu bestimmen, 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 gegen die interne 1,1-V-Bandlücke bestimmen müssen, da diese um bis zu 10 % abweichen kann.

Aber das würde keine zusätzlichen Teile erfordern und würde es Ihrem Atmega ermöglichen, die Spannung seiner Stromquelle zu bestimmen.

Hier ist ein weiterer Artikel, der beschreibt, wie das geht. Der verwendete Code ist etwas anders: provideryourown.com/2012/…
@ThomasW schön! Ein weiterer großartiger Artikel über die Verwendung der 1,1-V-Bandlücke.