Inhaltsverzeichnis:
- Schritt 1: Verringern der Versorgungsspannung durch Verwendung eines LiPo-Akkus
- Schritt 2: CPU-Takt reduzieren
- Schritt 3: Entfernen Sie die On-Board-Power-LED und den Power-Regler
- Schritt 4: Trennen des USB D-Pullup-Widerstands (gekennzeichnet mit 152) von 5 Volt (VCC) und Anschließen an USB V+
- Schritt 5: Verwenden Sie Schlaf statt Verzögerung ()
- Schritt 6: Ändern Sie die Sicherungen
- Schritt 7: Weitere Informationen
Video: Reduzieren des Batteriestromverbrauchs für Digispark ATtiny85 - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
oder: 2 Jahre lang einen Arduino mit einer 2032-Knopfzelle betreiben.
Wenn Sie Ihr Digispark Arduino Board aus der Box mit einem Arduino-Programm verwenden, zieht es 20 mA bei 5 Volt.
Mit einer 5-Volt-Powerbank von 2000 mAh läuft es nur 4 Tage.
Schritt 1: Verringern der Versorgungsspannung durch Verwendung eines LiPo-Akkus
Bei Verwendung eines LiPo-Akkus mit 3,7 Volt als Versorgung verbraucht Ihr Digispark Board nur 13 mA.
Mit einem Akku von 2000 mAh läuft es 6 Tage.
Schritt 2: CPU-Takt reduzieren
Wenn Sie in Ihrem Programm keine USB-Verbindung, schwere Mathematik oder schnelle Abfragen verwenden, reduzieren Sie die Taktrate. Z. B. die stark abfragende Infrarot-Empfangsbibliothek IRMP läuft gut mit 8 MHz.
Bei 1 MHz zieht Ihr Digispark 6 mA. Mit einem Akku von 2000 mAh läuft es 14 Tage lang.
Schritt 3: Entfernen Sie die On-Board-Power-LED und den Power-Regler
Deaktivieren Sie die Power-LED, indem Sie den Kupferdraht, der die Power-LED mit der Diode verbindet, mit einem Messer durchbrechen oder den 102-Widerstand entfernen / deaktivieren.
Da Sie jetzt einen LiPo-Akku verwenden, können Sie auch den integrierten Stromregler-IC entfernen. Heben Sie zuerst die äußeren Stifte mit Hilfe eines Lötkolbens und eines Stiftes an. Dann den großen Stecker verlöten und den Regler entfernen. Bei kleinen Reglern viel Lötzinn verwenden und alle 3 Pins zusammen erhitzen, dann entfernen.
Bei 1 MHz und 3,8 Volt zieht Ihr Digispark jetzt 4,3 mA. Mit einem Akku von 2000 mAh läuft es 19 Tage.
Schritt 4: Trennen des USB D-Pullup-Widerstands (gekennzeichnet mit 152) von 5 Volt (VCC) und Anschließen an USB V+
Diese Modifikation ist mit allen 1.x-Versionen des Micronucleus-Bootloaders kompatibel. Wenn Sie bereits einen neuen 2.x-Bootloader auf Ihrem Board haben, müssen Sie auf eine der 2.5-Versionen mit "activePullup" im Namen aktualisieren. Am einfachsten ist es, das neue Digispark-Board-Paket zu installieren und den Bootloader mit der empfohlenen (!!!nicht der Standard- oder aggressiven!!!) Version zu brennen.
Brechen Sie den Kupferdraht an der Seite des Widerstands, die zum ATtiny zeigt. Dies deaktiviert die USB-Schnittstelle und damit die Möglichkeit, das Digispark-Board über USB zu programmieren. Um ihn wieder zu aktivieren, aber trotzdem Strom zu sparen, verbinden Sie den Widerstand (markiert mit 152) direkt mit dem USB V+, der an der Außenseite der Shottky-Diode leicht zugänglich ist. Die Diode und ihre richtigen Seiten können mit einem Durchgangsprüfer gefunden werden. Eine Seite dieser Diode ist mit Pin 8 des ATtiny (VCC) und Digispark 5V verbunden. Die andere Seite ist mit dem USB V+ verbunden. Jetzt wird der USB-Pullup-Widerstand nur aktiviert, wenn das Digispark-Board an USB angeschlossen ist, z. B. beim Programmieren.
Die letzten beiden Schritte sind hier ebenfalls dokumentiert.
Bei 1 MHz und 3,8 Volt zieht Ihr Digispark jetzt 3 mA. Mit einem Akku von 2000 mAh wird es 28 Tage lang laufen.
Schritt 5: Verwenden Sie Schlaf statt Verzögerung ()
Anstelle langer Verzögerungen können Sie den stromsparenden CPU-Sleep verwenden. Der Schlaf kann zwischen 15 Millisekunden und 8 Sekunden in Schritten von 15, 30, 60, 120, 250, 500 Millisekunden und 1, 2, 4, 8 Sekunden dauern.
Da die Startzeit aus dem Ruhezustand mit den werkseitigen Digispark-Sicherungseinstellungen 65 Millisekunden beträgt, können nur Verzögerungen von mehr als 80 ms durch den Ruhezustand ersetzt werden.
Im Schlaf verbraucht Ihr Digispark 27 µA. Mit einer 200 mAh Knopfzelle 2032 schläft es 10 Monate.
Um richtig zu sein, muss der Digispark mindestens alle 8 Sekunden aufwachen, mindestens 65 Millisekunden laufen und etwa 2 mA Strom aufnehmen. Dies führt zu einem durchschnittlichen Strom von 42 µA und 6 Monaten. In diesem Szenario macht es fast keinen Unterschied, ob Ihr Programm 10 Millisekunden lang (alle 8 Sekunden) läuft.
Der Code für die Verwendung von Sleep lautet:
#include #include flüchtig uint16_t sNumberOfSleeps = 0; extern volatile unsigned long millis_timer_millis; Void setup () { sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // tiefster Schlafmodus … } void loop(){ … sleepWithWatchdog(WDTO_250MS, true); // 250 ms schlafen … sleepWithWatchdog(WDTO_2S, true); // sleep für 2 s … } /* * aWatchdogPrescaler kann 0 (15 ms) bis 3 (120 ms), 4 (250 ms) bis 9 (8000 ms) sein */ uint16_t computeSleepMillis(uint8_t aWatchdogPrescaler) { uint16_t tResultMillis = 8000; for (uint8_t i = 0; i spart 200 uA // wdt_enable() verwenden, da es behandelt, dass sich das WDP3-Bit in Bit 5 des WDTCR-Registers befindet wdt_enable(aWatchdogPrescaler); WDTCR |= _BV(WDIE) | _BV(WDIF); // Watchdog-Interrupt aktivieren + Interrupt-Flag zurücksetzen -> benötigt ISR(WDT_vect) sei(); // Interrupts aktivieren sleep_cpu(); // Der Watchdog-Interrupt weckt uns aus dem Schlaf wdt_disable(); // Weil der nächste Interrupt es sonst tut zu einem Reset führen, da wdt_enable() WDE setzt / Watchdog System Reset Enable ADCSRA |= ADEN; /* * Da der Timer-Takt deaktiviert werden kann Millis nur anpassen, wenn nicht im IDLE-Modus geschlafen (SM2…0 Bits sind 000) */ if (aAdjustMillis && (MCUCR & ((_BV(SM1) | _BV(SM0)))) != 0) { millis_timer_millis += computeSleepMillis(aWatchdogPrescaler); } } /* * Dieser Interrupt weckt die CPU aus dem Ruhezustand */ ISR(WDT_vect) { sNumberOfSleeps++; }
Schritt 6: Ändern Sie die Sicherungen
Von den 27 mA werden 22 mA vom BSB (BrownOutDetection/Unterspannungserkennung) gezogen. Der BSB kann nur durch Umprogrammieren der Sicherungen deaktiviert werden, was nur mit einem ISP-Programmierer möglich ist. Mit diesem Skript können Sie den Strom auf 5,5 µA reduzieren und auch die Startzeit aus dem Ruhezustand auf 4 Millisekunden reduzieren.
5 der verbleibenden 5,5 µA werden vom aktiven Watchdog-Zähler gezogen. Wenn Sie externe Resets zum Aufwecken verwenden können, kann die Stromaufnahme auf 0,3 µA sinken, wie im Datenblatt angegeben.
Wenn Sie diesen Wert nicht erreichen, kann dies daran liegen, dass der Sperrstrom der Schottky-Diode zwischen VCC und Pullup zu hoch ist. Beachten Sie, dass ein 12 MOhm-Widerstand bei 3,7 Volt auch 0,3 µA zieht.
Daraus ergibt sich eine durchschnittliche Stromaufnahme von 9 µA (2,5 Jahre bei einer 200 mAh Knopfzelle 2032), wenn Sie z. B. verarbeiten Daten alle 8 Sekunden für 3 Millisekunden wie hier.
Schritt 7: Weitere Informationen
Aktuelle Zeichnung einer Digispark-Platine.
Projektieren Sie mit dieser Anleitung.
Empfohlen:
Entwicklung des Drivemall-Boards: 5 Schritte
Entwicklung des Drivemall Boards: In diesem Tutorial sehen wir die grundlegenden Schritte zum Erstellen eines benutzerdefinierten Arduino-Boards. Die verwendete Software ist KiCad für das Boarddesign und die Arduino IDE für das Erstellen und Laden der Firmware für das Board
Installieren des Windows-Subsystems für Linux (WSL): 3 Schritte
Installieren des Windows-Subsystems für Linux (WSL): Diese Anleitung soll Benutzern helfen, das Windows-Subsystem für Linux auf ihrem Windows 10-Computer zu installieren. Die spezifische Linux-Distribution, die dieser Befehlssatz verwendet, heißt Ubuntu. Schauen Sie hier für eine Übersicht über die verschiedenen Linux
Kennenlernen des "Professional ILC8038 Function Generator DIY Kit": 5 Schritte
Kennenlernen des "Professional ILC8038 Function Generator DIY Kit": Auf der Suche nach neuen Elektronikprojekten bin ich auf ein süßes kleines Funktionsgenerator-Kit gestoßen. Es wird als „Professional ILC8038 Function Generator Sine Triangle Square Wave DIY Kit“bezeichnet und ist bei einer Reihe von Anbietern erhältlich
DC-DC-Abwärtswandler DIY -- So reduzieren Sie die Gleichspannung einfach – wikiHow
DC-DC-Abwärtswandler DIY || So können Sie die Gleichspannung einfach herunterstufen: Ein Abwärtswandler (Abwärtswandler) ist ein DC-zu-DC-Leistungswandler, der die Spannung (während der Strom) von seinem Eingang (Versorgung) zu seinem Ausgang (Last) heruntertransformiert wird. Es handelt sich um eine Klasse von Schaltnetzteilen (SMPS), die typischerweise mindestens
Montage des Smapler V0001r2 Schritt für Schritt: 3 Schritte
Montage des Smapler V0001r2 Schritt für Schritt: Dies ist eine fotografische Anleitung zur Montage des Smapler V0001r2. Es ist eine eigenständige Arduino-kompatible Schaltung mit einem integrierten SD-Kartenanschluss, einem PS2-Anschluss für Maus/Tastatur, einem Soundverstärker und einer Reihe von I/O-Pins für Sensoren. Damit k