Ich arbeite derzeit an einem Arduino-Projekt, bei dem die Ladung meiner Autobatterie einmal täglich über einen ESP8266 an mich gesendet wird. Im Winter fahre ich kein Auto und möchte informiert werden, wenn die Batterie einen kritischen Wert überschreitet, damit ich sie aufladen und Schäden vermeiden kann.
Daher ist Energieeffizienz für das Projekt wichtig, damit die Batterie selbst nicht entladen wird. Ich lese viel über den Schlafmodus, effiziente Dropdown-Regler usw. Allen ist gemeinsam, dass der Spannungsregler immer läuft, was ich nicht will.
Ich suche eine Art "Swich-On-Timer-Schaltung". Es sollte 24 Stunden herunterzählen und dann ein Relais oder einen MOSFET einschalten, der den Spannungsregler mit der Stromversorgung verbindet und damit den Arduino und den ESP8266 einschaltet. Wenn der Arduino mit der Übertragung fertig ist, setzt er den Timer zurück, wodurch der Spannungsregler vom Stromnetz getrennt wird, und so weiter. Natürlich sollte die Timer-Schaltung nur sehr wenig Strom verbrauchen.
Kennt jemand eine solche Schaltung? Ich suchte auf AliExpress mit allen Variationen von Wörtern, die mir in den Sinn kamen, ohne Erfolg. Oder vielleicht ein IC, mit dem (einfach) eine solche Schaltung erstellt werden kann?
Antworten:
Ein Ansatz wäre die Verwendung eines DS3231-Moduls (Precision Real Time Clock). Solche Module werden bei Ebay für unter 1 US-Dollar verkauft. Suche nach
ds3231 arduino
.In der Regel verfügen diese Module über einen sechspoligen Anschluss mit den mit 32K, SQW, SCL, SDA, VCC und GND gekennzeichneten Pins. Wie in den DS3231-Spezifikationen angegeben, wird der INT / SQW-Pin entweder für die Rechteckwellenausgabe oder für die Interruptausgabe verwendet. Auf Seite 13 der technischen Daten steht im Abschnitt Kontrollregister:
Zunächst würden Sie eine Skizze ausführen, um den DS3231 einzurichten: Schalten Sie einen täglichen Alarm ein, aktivieren Sie einen Interrupt anstelle einer Rechteckwelle, stellen Sie die aktuelle Zeit ein usw. Laden Sie dann ein Betriebsprogramm, das bei jedem Betrieb die Autobatteriespannung liest und handelt angemessen.
Der INT / SQW-Pin des DS3231 wird an das Gate eines P-Kanal-Mosfets angeschlossen, der die 12-V-Stromversorgung an den Arduino weiterleitet. Der P-Fet wird eingeschaltet, wenn der Open-Drain-Ausgangspin INT / SQW des Alarms eingeschaltet wird. Das Betriebsprogramm erledigt seine Aufgabe und löscht dann das DS3231-Interrupt-Flag, um die Stromversorgung bis zum nächsten Alarm abzuschalten. (Stellen Sie zum Debuggen kürzere Intervalle als einen Tag ein, z. B. einmal pro Minute, wie in Tabelle 2, Alarmmaskenbits, auf Seite 12 der technischen Daten beschrieben.)
Normalerweise verbraucht der DS3231 0,84 μA, wenn er mit einer 3,3-V-Batterie betrieben wird, oder 1 μA mit 5 V. Siehe Elektrische Eigenschaften, Seite 3 der technischen Daten.
quelle
Der Timer oder die Timer-Schaltung selbst müsste etwas Strom ziehen. Jeder der Pico-Power-AVR-Chips verbraucht im Ruhemodus nur sehr wenig Strom - in den 10er Jahren der Mikroverstärker für den 328, wenn ich mich richtig erinnere. Wenn Sie einen AVR für die geringste Stromaufnahme ausschalten, muss fast alles außer dem Watchdog-Timer heruntergefahren werden, und die maximale WDT-Zeit beträgt 8 Sekunden. Eine Bibliothek wie Narcoleptic verwaltet längere Zeiträume für Sie. Was Sie jedoch tun müssten, ist eine viel effizientere geregelte Stromversorgung als die auf der Arduino-Platine eingebaute (wenn Sie diese verwenden). Damit sollte die Belastung Ihrer Autobatterie durch den Arduino mikroskopisch klein sein.
Ein mögliches Design für eine effiziente Versorgung ist eine Reihe von Alkalibatterien, beispielsweise 3 in Reihe für einen 4,5-Ausgangs- (im frischen Zustand) mal 2 oder mehr solcher Strings parallel, die direkt an den 5-V-Bus angeschlossen sind.
Ich habe das Strombudget nicht erstellt, um zu wissen, welche Kapazität Sie benötigen und ob Sie D-Zellen benötigen oder aus kleineren, z. B. AAs, ein praktisches Array erstellen könnten, aber dies ist ein Weg, um die Autobatterie nicht zu belasten (Abzinsung der Anforderungen des Autobatteriespannungssensors). Möglicherweise möchten Sie den Zustand des Arduino-Batterie-Arrays in den täglichen Bericht aufnehmen oder für den Preis einiger Alkalien die Arduino-Batterie so überarbeiten, dass eine Überwachung unnötig wird.
Einige Datenpunkte legen nahe, dass eine separate Batterie ein praktikabler Ansatz ist:
quelle
SLEEP_MODE_PWR_SAVE
, bei dem nur der Async-Timer aktiv war, ungefähr 2 µA benötigte.Erwägen Sie die Verwendung des "Adafruit TPL5110 Power Timer"
https://learn.adafruit.com/adafruit-tpl5110-power-timer-breakout/overview
quelle
Sie können einen Timer-Schalter verwenden. Sie können es bei ebay für rund 5 Euro kaufen. Ich benutze diesen
https://www.ebay.com/itm/CN101-DC-12V-16A-Digital-LCD-Power-Programmable-Timer-Time-Relay-Switch-New/401190616827?hash=item5d68d2fefb:g:K3sAAOSwNRdX3ggT
Ich habe auch versucht, DS3231, aber das Arduino ist im Standby-Modus und es verbraucht Energie. Dies ist die beste Lösung, die ich gefunden habe
quelle