Projekte - Powerbank-Wächter
Die in Europa verwendeten Power-Bänke haben eine automatische Abschaltung bei zu geringer oder auch keiner Last. Sie sind somit für den mobilen Betrieb eines Kleinstcomputers eigentlich ungeeignet....
Aber jeder hat sie und sie sind so schön praktisch...aber z.B. beim Betrieb eines ESP32 ( ggf. sogar im SLEEP-Modus ) schalten sie sich nach kurzer Zeit ab.
Auf der Suche nach einer Lösung habe ich im Web - auf irgendeiner Seite in einem Blog - einen Vorschlag für einen Batteriewächter auf Basis eines DigiSparks gefunden, den ich mir noch etwas angepasst habe...

Ich nutze einen schaltfähigen PIN und einen npn-Transistor sowie zwei Widerstände 220 Ohm und 22 Ohm.

Schaltung:

Programmierung:
(Achtung - der Text [code].....[/code] gehört NICHT zum Programm..)
[code]
/*
* digistump_Powerbankwächter_Blink
*
* Werkzeuge board digstump digispark default 16.5mHz
*
* am digistump wird auf Pin 0 über 220R-Widerstand auf einen npn-Transistor
* Basis geschaltet, welcher bei HIGH den Durchgang 5V => Widerstand 22 Ohm
* ( je nach Powerbank)=> GND freigibt
* Dies wird entsprechend der programmierten Ein-/Aus-Zeiten dauerhaft gemacht,
* so dass die Powerbank denkt, es wäre ein Verbraucher mit ausreichend Strom-
* abnahme angehängt - und nicht in den automatischen Ruhemodus geht...
* bei 22 Ohm ist die Abnahme 5V/22 = 227mA bzw. (5V-0.7VTransistor)/22 = 1095mA)
*
* aktuell mit 5000mAh Powerbank gembird und 750 ms Stromverbrauch und 20 sekunden
* ohne Stromverbrauch getestet...
*
* Dies ist IMMER von der Leistungsaufnahme Eures Systems und dessen Auslastung
* abhängig - hier mit einem ESP32-CAM im DeepSleep-Modus...
*/
// Bibliotheken
// keine...
// Definitionen
// keine, wir sprechen die PIN's direkt an...
// erste Einstellungen
void setup() {
pinMode(0, OUTPUT); // interne LED am Chip
digitalWrite(0, LOW);
pinMode(1, OUTPUT); // der Steuer-PIN
digitalWrite(1, LOW);
} // ENDE setup
// Dauerschleife
void loop() {
digitalWrite(0, HIGH); // LED an
digitalWrite(1, HIGH); // Steuerspannung an
delay(750); // Zeit für Stromverbrauch....NICHT ZULANG - Widerstand wird HEISS
digitalWrite(0, LOW); // LED aus
digitalWrite(1, LOW); // Steuerspannung aus
delay(20000); // Wartezeit ohne Stromverbrauch....
} // ENDE loop
[/code]
Das funktioniert bei mir recht gut - allerdings muss die Powerbank noch einen zweiten Anschluss haben - für die eigentliche Last....
Auch wenn ich im Photo noch ein Kabel für eine externe Last dran habe - dies ist keine gute Lösung, die zulässigen Ströme sind minimal !!!
Und wie gesagt, der Chip ist "eine Mimose" und verabschiedet sich häufig....dann ist das Betriebssystem weg und er lässt sich nicht mehr programmieren....
Aber seitdem ich beim Rausziehen darauf achte, das er nicht grad eingeschaltet ist - die rote LED hat grad geleuchtet, dann ist er in der Wartezeit - hält er jetzt schon recht lange.
Probiert es doch einfach aus....