Gestern Nachmittag habe ich meinen Arduino mit einer frischen 9-V-Alkalibatterie laufen lassen (+ mit Vin verbunden, - mit GND verbunden). Heute Morgen (16 Stunden später) war das LCD-Display nicht mehr sichtbar, und als ich die Spannung gemessen habe, sah ich, dass der Akku zu meiner Überraschung erschöpft war - seine Leerlaufspannung betrug nur 7 V.
Mein Gerät ist Arduino Uno mit LCD 2x16 mit LCD-Hintergrundbeleuchtung und 2 DS18B20-Sensoren. Ist es normal, dass ein solches Gerät die 9-V-Batterie so schnell entlädt?
Ich habe eine Antwort auf Was sind (oder wie verwende ich) die Energiesparoptionen des Arduino, um die Batterielebensdauer zu verlängern? Frage und ich denke, was ich sehe, könnte damit zusammenhängen, aber ich bin nicht sicher. Wenn ja, gibt es einige gebräuchliche Schaltpläne, wie Arduino angeschlossen werden kann, um effizient mit einer Batterie betrieben zu werden?
Antworten:
Energieverbrauch
Die Arduino-Boards verbrauchen im Vergleich zu anderen eingebetteten Systemen mit ähnlichen Funktionen ein gutes Stück Leistung.
Es gibt drei Hauptfaktoren:
Der 5- V-Linearregler NCP1117 ( Datenblatt ) im Arduino UNO R3 ( schematisch ) hat einen Ruhestrom von ca. 6 mA.
Der ATMega328P ( Datenblatt ) verbraucht etwa 5 mA bei 8 MHz und 5 V und ist wahrscheinlich mehr als doppelt so hoch wie bei 16 MHz.
user2973: Der für die USB-Kommunikation verwendete ATMega16U2 verbraucht ebenfalls ungefähr 13 mA.
Auch LEDs und andere Peripheriegeräte verbrauchen Strom. In Ihrer Schaltung verbraucht die LCD-Hintergrundbeleuchtung wahrscheinlich ebenfalls 4 mA.
Bei einem Spannungsabfall von 9V auf 5V über einen Linearregler geht fast die Hälfte der Leistung aufgrund des 4V-Abfalls durch den Regler verloren. Duncan merkt an, dass dies den Stromverbrauch im Ruhezustand von 9 V sowie den Stromverbrauch für jeden mA von 5 V nahezu verdoppelt , da 4/9-Teile des Stroms vom Spannungsregler als Wärme verschwendet werden. Ein effizienter Schaltregler würde 5 V mit wenig Energieverschwendung abgeben und die Stromaufnahme der Batterie effektiv um 4/9 verringern.
Eine Duracell-9V-Batterie ( Datenblatt ) fällt bei einer Stromaufnahme von 50 mA in ca. 7,5 Stunden von 9 V auf 7 V ab. Eine grobe Vermutung ist daher, dass Ihr Stromkreis ungefähr 25 mA zieht, was sich nach der Beschreibung Ihres Stromkreises ungefähr richtig anhört.
Beachten Sie, dass die Lebensdauer der Alkalibatterien in Bezug auf den Strom nicht linear ist. Bei sehr kleinen Strömen (<1 mA) entspricht die Lebensdauer einer Alkaline der einer Lithiumbatterie.
Strom runter
Hier sind einige Tipps, um den Stromverbrauch zu senken:
Regler: Ersetzen Sie den Regler durch einen mit niedrigem Ruhestrom oder noch besser durch einen Schaltregler (auch mit niedrigem Ruhestrom). Ein Schaltregler verwendet Stromimpulse und einige externe Induktivitäten und Kondensatoren, um eine vernünftige konstante Spannungsausgabe zu erzielen. Es wird keine Energie verschwendet wie beim Spannungsabfall des Linearreglers und ein Wirkungsgrad im hohen Bereich von 90% ist möglich.
ATMega328P: Anstatt mit
delay
für Timing und Spinnen inloop
endlos warten , dass etwas geschieht, neu schreiben Ihren Code , so dass es in den Schlaf geht in zwischen Sensor liest, usw. Es gibt ein paar Low - Power - Bibliotheken gibt , die den Watchdog - Timer verwenden für periodisches Aufwachen aus dem Schlaf, was praktisch ist. Sie können den Stromverbrauch des ATMega328P im Ruhezustand unter 0,1 mA halten.LCD: Schalten Sie die Hintergrundbeleuchtung oder sogar das gesamte LCD aus. Fügen Sie dem Design eine Schaltfläche hinzu, mit der der Benutzer das LCD aktivieren und nach einer festgelegten Inaktivitätsdauer ausschalten kann.
Peripheriegeräte: Die meisten Peripheriegeräte-Chips verfügen auch über einen Ruhezustand, der den Stromverbrauch drastisch senkt. Entfernen Sie nicht benötigte Betriebs-LEDs und andere Anzeigen.
ATMegu16U2: user2973 comments Es sieht so aus, als ob dieser Chip ziemlich leistungshungrig ist ( user2973 ). Es könnte entfernt werden, um Energie zu sparen und stattdessen nur den UART zu verwenden, aber das scheint übertrieben. Es gibt Arduino Pro-Boards, die nur die nackten Knochen von Arduino sind, ohne dass die USB-Schnittstelle anstelle der UNO verwendet werden könnte.
Batterien: Andere Alkalizellen haben eine viel größere Kapazität. Zum Beispiel hat eine 1,5 V AA über 2000 mAh für niedrige Ströme. Die Verwendung von AA-Zellen und eines Aufwärtswandlers kann die Zeit bis zum Batteriewechsel verlängern. Verwenden Sie D-Zellen (16000mAh) und es wird eine Weile laufen. : D
Zusammenfassung
Mit einer geeigneten Stromversorgung und Kodierung können Sie eine Batterie mit einer angemessenen Lebensdauer ausstatten. Unter Verwendung der obigen Prinzipien habe ich ein Arduino-Derivat-Board hergestellt, das einige Sensoren misst und die Messwerte jede halbe Sekunde auf einer SD-Karte speichert. Es kann mit 2 AA-Batterien ungefähr 4 Monate dauern, so dass es definitiv möglich ist, einen niedrigen Stromverbrauch zu haben und im Arduino-Ökosystem zu bleiben.
Der Chip, den ich für den geringen Stromverbrauch in meinem Board verwendet habe, ist der LTC3525-3.3V. Es nimmt eine Eingangsspannung von nur 0,8 V auf und erhöht diese auf 3,3 V. Eine 5-V-Version ist ebenfalls verfügbar. Ich habe eine Platine für diesen Chip entworfen, da es keine vorgefertigten Ausbrüche gab, und im Datenblatt sind Referenzdesigns angegeben. Das Hauptkriterium für die Wahl dieses Chips war, dass er bei sehr geringen Strömen immer noch einen hohen Wirkungsgrad aufweist. Einige andere Wandler benötigen eine geringe Mindeststromaufnahme.
Der größte Stromverbraucher auf dem Board war die Micro-SD-Karte. Sie kann je nach Hersteller zwischen 0,1 mA und 1,5 mA Leerlaufstrom variieren. Ich habe festgestellt, dass Verbatim- und Lexar-Karten am wenigsten Strom verbrauchen. Ich werde diese EE.SE-Frage mit den Ergebnissen meiner Micro-SD-Card-Stromverbrauchstests auf den neuesten Stand bringen.
quelle
Ich denke, ein Arduino Uno ist für solche Projekte nicht geeignet. Einige Komponenten auf der Platine verbrauchen zu viele Verstärker, wie @geometrikal richtig anzeigt. Wenn Sie einer Herausforderung gewachsen sind, empfehle ich Ihnen, Ihr Projekt auf eine andere Ebene zu heben und barebones zu gehen.
Sparkfun hat einen guten Artikel über die Verlängerung der Batterielebensdauer mit einem ATmega328, den Sie auch auf Ihrem Arduino Uno haben: https://www.sparkfun.com/tutorials/309
Suchen Sie nach Möglichkeiten, eine Schaltung nur mit den Komponenten zu erstellen, die Sie wirklich benötigen, und lassen Sie Ihren Mikrocontroller so lange wie möglich schlafen.
quelle
Eine andere Möglichkeit besteht darin, nach einer Hardware (Arduino Clone) zu suchen, die dafür entwickelt wurde, wie dieses Board: https://bitbucket.org/talk2/whisper-node-avr/overview
Wenn Sie diese Hardware mit stromsparenden Codetechniken kombinieren, sollten Sie in der Lage sein, Projekte über einen längeren Zeitraum mit Batterien auszuführen!
quelle