Hinweis (Jan 19): Ab der Softwareversion v1.0.3 ist im Nano eine interne Wächterfunktion integriert. Diese Funktion befindet sich aktuell noch in der Erprobungsphase. Weitere Infos dazu findet ihr hier: LINK
Ich habe ja schon häufiger mal über das Abschalten von "smarten" Powerbänken bei zu geringem Entnahmestrom geschrieben. Handelsübliche Powerbänke sind meistens zum Laden von Handys etc. konzipiert. Wenn deren Akku voll ist, sinkt der Entnahmestrom und damit die Powerbank dann nicht immer weiter läuft, schaltet die "Smart"-Funktion sie ab. Will man die Powerbank als externe Energiequelle für z. B. ein WLANThermo Nano oder einen Lüfter (am Pitmaster-Cube) nutzen, kann dieses Abschalten der Powerbank kontraproduktiv sein. Ein Nano v1, dessen interner Akku voll geladen ist, verbraucht weniger als 100 mAh. Auch ein Lüfter braucht bei geringem Pitmasterwert meist nicht genug Strom, um das Abschalten zu verhinden. Abhilfe schafft das Anschließen eines Verbrauchers, der konstant einen Strom von über 100 mA entnimmt: USB-Lampe oder so eine USB-Kaffeewärmebecher ?. Natürlich entleert das die Powerbank aber unnötig schnell. Die bessere Alternative ist ein kleiner Powerbank-Wächter, der alle paar Sekunden kurz Strom entnimmt und so das Abschalten der Powerbank verhindert.
Die Bauteile für einen kleinen PB-Wächter habe ich schon länger hier liegen, bin bisher aber nicht dazu gegekommen, einen Baubericht dazu zu schreiben. Jetzt also ein kleiner bebildeter Baubericht, wie man sich so einen Wächter (Guard) aus wenigen Bauteilen fix selber bauen kann. Alle Bauteile sind bei reichelt erhältlich (die BOM habe ich in den Anhang gepackt). Wer nicht selber bauen kann/will, der kann sich auch bei mir melden, ich habe alle Teile da und kann euch den Wächter fix zusammenlöten und programmieren.
Folgende Bauteile werden benötigt: Ein Digispark ATtiny85 (super Teil für kleine Bastelleien), ein N-FET zum Schalten des 27 Ohm Leistungswiderstands sowie eine kleine LED, die uns signalisiert, dass der Wächter auch tut was er soll.
Für den Zusammenbau braucht ihr einen kleinen Seitenschneider, Lötkolben und Lötzinn und eventuell eine Pinzette. Der Digispark ATtiny85 ist ein kleiner preisgünstiger Microcontroller, den wir nach dem Zusammenbau mit einer Timerfunktion programmieren. Auf der Rückseite vom ATtiny Board ist genug Platz für unsere kleine Schaltung. Außerdem kommt das Board schon mit einem USB-Anschluss für die Powerbank und braucht keine weiteren Bauteile wie Spannungsversorgung etc. für einen Betrieb.
Also los. Zuerst müssen wir den N-FET vorbereiten. Mit der Zange die Anschlussbeine des FET wie auf dem Foto abgebildet zurechtbiegen. Den mittleren Pin (Drain) kürzt ihr ein. Den brauchen wir nicht, da er ebenfalls an der Oberseite des FET verfügbar ist, wo wir besser hinkommen.
Ist der FET vorbereitet, kann er auch schon auf der Rückseite des ATtiny aufgesteckt und verlötet werden. Beim Einlöten unbedingt darauf achten, dass der FET nicht ganz auf der Platine aufliegt, sondern ein kleiner Spalt vorliegt (siehe Foto weiter unten). Auf der Rückseite von der Platine sind kleine Durchgangslöcher für Leiterbahnen und die sollten auf keinen Fall mit dem Drain-Anschluss vom FET auf dessen Rückseite in Kontakt kommen. Wer will kann am Ende der Lötarbeiten auch noch ein Stück Papier oder Klebeband unter den FET schieben, als Isolierung zur Platine.
Das linke Beinchen (Gate) gehört an P0 und das rechte Beinchen (Source) an GND. Wir wollen später P0 zwischen HIGH und LOW hin- und herschalten und damit den FET öffnen und schließen. Ist er offen, kann GND von Source nach Drain "fließen" und durchströmt dann den Leistungswiderstand, der den Stromverbrauch an der Powerbank simuliert.
Der 27 Ohm Widerstand kann direkt mit verlötet werden. Die eine Seite an den oberen Drain-Anschluss vom FET; die andere Seite kommt an 5V.
Für die eigentliche Funktion des Powerbank-Wächters war's das eigentlich schon. Wenn der FET geöffnet ist, fließen durch den Widerstand etwa 5V / 27 Ohm = 185 mA. Der Strom reicht, um das Abschalten der Powerbank zu verhinden, dabei muss der Strom aber nicht durchgängig fließen, es reicht, wenn wir den FET alle paar Sekunden kurz öffnen. Dadurch wird die Powerbank nicht unnötig schnell leer gezogen und der Leistungswiderstand wird nicht zu warm.
Damit wir später im Betrieb direkt sehen können, ob der Wächter auch funktioniert, bringen wir noch eine LED an. Hier am besten eine LED mit integriertem Vorwiderstand benutzen (siehe BOM). Für den Einbau die Beinchen wie im Foto abgebildet vorbiegen. Das längere Beinchen (+ Pol) kurz hinter der LED 90° abwinkeln. Das kürzere Beinchen (- Pol) mit einer kleinen Stufe versehen (direkt wo das Beinchen aus dem LED-Kopf rauskommt).
Das längere Beinchen (das mit dem 90° Knick) kommt in das Bohrloch von P4. Das kürzere Beinchen kürzen und an den Drain-Anschluss vom FET anlöten, wo auch die eine Seite vom Widerstand angelötet ist. Die Stufe in diesem Beinchen soll einen Kontakt zum Anschluss P5 vermeiden.
Hier sieht man den Spalt zwischen FET und Platine. Wie gesagt, wer will kann da jetzt noch etwas Klebeband drunter schieben.
Wer von euch noch gute Augen hat, der hat auf dem ersten Foto noch einen kleinen SMD-Kondensator gesehen. Wer sich das zutraut, kann den Kondensator auf der Oberseite des ATtiny noch zwischen 5V und GND löten. Der Kondensator ist kein Muss, kann also auch weggelassen werden.
Das war's auch schon mit dem Zusammenlöten. Zeitaufwand beim ersten Bau etwa 30 min, ab dem zweiten geht es in 5 Minuten ?.
Ganz fertig sind wir aber noch nicht, weil es fehlt ja noch die Software. Der Digispark ATtiny85 lässt sich mit der Arduino IDE flashen. Den Programm-Code habe ich euch angehängt. Darin ist auch ein Video (nicht von mir) verlinkt, in dem Schritt für Schritt erklärt wird, wie man die Arduino IDE und den PC vorbereiten muss, damit man den ATtiny flashen kann. Das bizarre daran, das eigentliche Flashen des Codes dauert keine 5s, aber der PC und die Arduino IDE müssen eben erst vorbereitet werden. Anders als die "großen" ATmegas (Arduino UNO etc.) hat der Digispark ATtiny85 keine "originale" USB-Schnittstelle sondern eine reduzierte Form, nur für Energieversorgung und zum kurzen Flashen. Deshalb muss der USB-Treiber am PC manuell installiert werden. Wie gesagt, schaut euch das Video an, dort wird alles erklärt.
Noch ein paar Worte zur Software:
Die Timer-Funktion könnte man auch direkt im Register vom Microcontroller umsetzen, aber ich wollte es bewusst einfach halten, damit man es auch nachvollziehen und ggf. anpassen kann. In setup() werden die beiden Pins P0 (Anschluss des Gates vom FET) und P4 (+ Pol von der LED) initalisiert. Nachdem setup() einmal durchlaufen ist, läuft danach die loop() ständig von oben nach unten durch. Innerhalb von loop() wird geschaut, ob seit dem Start schon 4 Sekunden (4000 ms) vergangen sind, wenn ja, wird P0 auf HIGH gesetzt und damit der FET geöffnet. Gleichzeitig wird der Timer zurückgesetzt. Nach 1 Sekunde (1000 ms) wird nun P0 wieder auf LOW gesetzt und der FET abgeschaltet. Nach weiteren 3 Sekunden (4 -1) fängt das Ganze dann wieder von vorne an.
Je nach Powerbank könnte der Intervall von 4 Sekunden auch länger (bis zu 20 s) gestaltet werden. Kommt drauf an, wie schnell die Abschalte-Funktion der Powerbank arbeitet. Gleichzeitig könnte auch die HIGH-Zeit von 1 Sekunde verkürzt werden (500 ms). Auch hier kommt es darauf an, was die Powerbank an Stromfluss braucht, um nicht abzuschalten. Die aktuelle Konfiguration sollte mit so ziemlich jeder Powerbank funktionieren. Wer den Energieverbrauch des Wächters optimieren will, der kann für seine Powerbank ja ein paar andere Zeiten ausprobieren und hier berichten.
Wenn die Software auf dem Wächter installiert wurde, ist er auch schon für den Betrieb bereit. Einfach in die Powerbank einstecken und los geht's. Nach ein paar Sekunden (etwa 10s, der Bootmodus muss erst abschalten) sollte die LED das erst mal aufleuchten und dann immer wieder im Intervall von 4s.
Auf der Platinenvorderseite befindet sich noch eine kleine SMD-LED, diese leuchtet immer, wenn am USB-Anschluss Spannung anliegt. Damit kann man also zusätzlich zum Wächterintervall schnell sehen, ob die Powerbank noch läuft, oder abgeschaltet hat.
Ok, das war's. Viel Spaß euch beim Nachbauen.
Steffen
Ich habe ja schon häufiger mal über das Abschalten von "smarten" Powerbänken bei zu geringem Entnahmestrom geschrieben. Handelsübliche Powerbänke sind meistens zum Laden von Handys etc. konzipiert. Wenn deren Akku voll ist, sinkt der Entnahmestrom und damit die Powerbank dann nicht immer weiter läuft, schaltet die "Smart"-Funktion sie ab. Will man die Powerbank als externe Energiequelle für z. B. ein WLANThermo Nano oder einen Lüfter (am Pitmaster-Cube) nutzen, kann dieses Abschalten der Powerbank kontraproduktiv sein. Ein Nano v1, dessen interner Akku voll geladen ist, verbraucht weniger als 100 mAh. Auch ein Lüfter braucht bei geringem Pitmasterwert meist nicht genug Strom, um das Abschalten zu verhinden. Abhilfe schafft das Anschließen eines Verbrauchers, der konstant einen Strom von über 100 mA entnimmt: USB-Lampe oder so eine USB-Kaffeewärmebecher ?. Natürlich entleert das die Powerbank aber unnötig schnell. Die bessere Alternative ist ein kleiner Powerbank-Wächter, der alle paar Sekunden kurz Strom entnimmt und so das Abschalten der Powerbank verhindert.
Die Bauteile für einen kleinen PB-Wächter habe ich schon länger hier liegen, bin bisher aber nicht dazu gegekommen, einen Baubericht dazu zu schreiben. Jetzt also ein kleiner bebildeter Baubericht, wie man sich so einen Wächter (Guard) aus wenigen Bauteilen fix selber bauen kann. Alle Bauteile sind bei reichelt erhältlich (die BOM habe ich in den Anhang gepackt). Wer nicht selber bauen kann/will, der kann sich auch bei mir melden, ich habe alle Teile da und kann euch den Wächter fix zusammenlöten und programmieren.
Folgende Bauteile werden benötigt: Ein Digispark ATtiny85 (super Teil für kleine Bastelleien), ein N-FET zum Schalten des 27 Ohm Leistungswiderstands sowie eine kleine LED, die uns signalisiert, dass der Wächter auch tut was er soll.
Für den Zusammenbau braucht ihr einen kleinen Seitenschneider, Lötkolben und Lötzinn und eventuell eine Pinzette. Der Digispark ATtiny85 ist ein kleiner preisgünstiger Microcontroller, den wir nach dem Zusammenbau mit einer Timerfunktion programmieren. Auf der Rückseite vom ATtiny Board ist genug Platz für unsere kleine Schaltung. Außerdem kommt das Board schon mit einem USB-Anschluss für die Powerbank und braucht keine weiteren Bauteile wie Spannungsversorgung etc. für einen Betrieb.
Also los. Zuerst müssen wir den N-FET vorbereiten. Mit der Zange die Anschlussbeine des FET wie auf dem Foto abgebildet zurechtbiegen. Den mittleren Pin (Drain) kürzt ihr ein. Den brauchen wir nicht, da er ebenfalls an der Oberseite des FET verfügbar ist, wo wir besser hinkommen.
Ist der FET vorbereitet, kann er auch schon auf der Rückseite des ATtiny aufgesteckt und verlötet werden. Beim Einlöten unbedingt darauf achten, dass der FET nicht ganz auf der Platine aufliegt, sondern ein kleiner Spalt vorliegt (siehe Foto weiter unten). Auf der Rückseite von der Platine sind kleine Durchgangslöcher für Leiterbahnen und die sollten auf keinen Fall mit dem Drain-Anschluss vom FET auf dessen Rückseite in Kontakt kommen. Wer will kann am Ende der Lötarbeiten auch noch ein Stück Papier oder Klebeband unter den FET schieben, als Isolierung zur Platine.
Das linke Beinchen (Gate) gehört an P0 und das rechte Beinchen (Source) an GND. Wir wollen später P0 zwischen HIGH und LOW hin- und herschalten und damit den FET öffnen und schließen. Ist er offen, kann GND von Source nach Drain "fließen" und durchströmt dann den Leistungswiderstand, der den Stromverbrauch an der Powerbank simuliert.
Der 27 Ohm Widerstand kann direkt mit verlötet werden. Die eine Seite an den oberen Drain-Anschluss vom FET; die andere Seite kommt an 5V.
Für die eigentliche Funktion des Powerbank-Wächters war's das eigentlich schon. Wenn der FET geöffnet ist, fließen durch den Widerstand etwa 5V / 27 Ohm = 185 mA. Der Strom reicht, um das Abschalten der Powerbank zu verhinden, dabei muss der Strom aber nicht durchgängig fließen, es reicht, wenn wir den FET alle paar Sekunden kurz öffnen. Dadurch wird die Powerbank nicht unnötig schnell leer gezogen und der Leistungswiderstand wird nicht zu warm.
Damit wir später im Betrieb direkt sehen können, ob der Wächter auch funktioniert, bringen wir noch eine LED an. Hier am besten eine LED mit integriertem Vorwiderstand benutzen (siehe BOM). Für den Einbau die Beinchen wie im Foto abgebildet vorbiegen. Das längere Beinchen (+ Pol) kurz hinter der LED 90° abwinkeln. Das kürzere Beinchen (- Pol) mit einer kleinen Stufe versehen (direkt wo das Beinchen aus dem LED-Kopf rauskommt).
Das längere Beinchen (das mit dem 90° Knick) kommt in das Bohrloch von P4. Das kürzere Beinchen kürzen und an den Drain-Anschluss vom FET anlöten, wo auch die eine Seite vom Widerstand angelötet ist. Die Stufe in diesem Beinchen soll einen Kontakt zum Anschluss P5 vermeiden.
Hier sieht man den Spalt zwischen FET und Platine. Wie gesagt, wer will kann da jetzt noch etwas Klebeband drunter schieben.
Wer von euch noch gute Augen hat, der hat auf dem ersten Foto noch einen kleinen SMD-Kondensator gesehen. Wer sich das zutraut, kann den Kondensator auf der Oberseite des ATtiny noch zwischen 5V und GND löten. Der Kondensator ist kein Muss, kann also auch weggelassen werden.
Das war's auch schon mit dem Zusammenlöten. Zeitaufwand beim ersten Bau etwa 30 min, ab dem zweiten geht es in 5 Minuten ?.
Ganz fertig sind wir aber noch nicht, weil es fehlt ja noch die Software. Der Digispark ATtiny85 lässt sich mit der Arduino IDE flashen. Den Programm-Code habe ich euch angehängt. Darin ist auch ein Video (nicht von mir) verlinkt, in dem Schritt für Schritt erklärt wird, wie man die Arduino IDE und den PC vorbereiten muss, damit man den ATtiny flashen kann. Das bizarre daran, das eigentliche Flashen des Codes dauert keine 5s, aber der PC und die Arduino IDE müssen eben erst vorbereitet werden. Anders als die "großen" ATmegas (Arduino UNO etc.) hat der Digispark ATtiny85 keine "originale" USB-Schnittstelle sondern eine reduzierte Form, nur für Energieversorgung und zum kurzen Flashen. Deshalb muss der USB-Treiber am PC manuell installiert werden. Wie gesagt, schaut euch das Video an, dort wird alles erklärt.
Noch ein paar Worte zur Software:
C++:
/***************************************************
Copyright (C) 2018 Steffen Ochs
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
GUIDE: Flash Attiny85 Digispark
https://www.youtube.com/watch?v=MmDBvgrYGZs
****************************************************/
unsigned long ontimer;
void setup() {
// put your setup code here, to run once:
pinMode(0,OUTPUT);
pinMode(4,OUTPUT);
digitalWrite(0, LOW);
digitalWrite(4, HIGH);
ontimer = 0;
}
void loop() {
// put your main code here, to run repeatedly:
if (millis() - ontimer > 4000) {
ontimer = millis();
digitalWrite(0,HIGH);
}
if (millis() - ontimer > 1000) {
digitalWrite(0, LOW);
}
}
Die Timer-Funktion könnte man auch direkt im Register vom Microcontroller umsetzen, aber ich wollte es bewusst einfach halten, damit man es auch nachvollziehen und ggf. anpassen kann. In setup() werden die beiden Pins P0 (Anschluss des Gates vom FET) und P4 (+ Pol von der LED) initalisiert. Nachdem setup() einmal durchlaufen ist, läuft danach die loop() ständig von oben nach unten durch. Innerhalb von loop() wird geschaut, ob seit dem Start schon 4 Sekunden (4000 ms) vergangen sind, wenn ja, wird P0 auf HIGH gesetzt und damit der FET geöffnet. Gleichzeitig wird der Timer zurückgesetzt. Nach 1 Sekunde (1000 ms) wird nun P0 wieder auf LOW gesetzt und der FET abgeschaltet. Nach weiteren 3 Sekunden (4 -1) fängt das Ganze dann wieder von vorne an.
Je nach Powerbank könnte der Intervall von 4 Sekunden auch länger (bis zu 20 s) gestaltet werden. Kommt drauf an, wie schnell die Abschalte-Funktion der Powerbank arbeitet. Gleichzeitig könnte auch die HIGH-Zeit von 1 Sekunde verkürzt werden (500 ms). Auch hier kommt es darauf an, was die Powerbank an Stromfluss braucht, um nicht abzuschalten. Die aktuelle Konfiguration sollte mit so ziemlich jeder Powerbank funktionieren. Wer den Energieverbrauch des Wächters optimieren will, der kann für seine Powerbank ja ein paar andere Zeiten ausprobieren und hier berichten.
Wenn die Software auf dem Wächter installiert wurde, ist er auch schon für den Betrieb bereit. Einfach in die Powerbank einstecken und los geht's. Nach ein paar Sekunden (etwa 10s, der Bootmodus muss erst abschalten) sollte die LED das erst mal aufleuchten und dann immer wieder im Intervall von 4s.
Auf der Platinenvorderseite befindet sich noch eine kleine SMD-LED, diese leuchtet immer, wenn am USB-Anschluss Spannung anliegt. Damit kann man also zusätzlich zum Wächterintervall schnell sehen, ob die Powerbank noch läuft, oder abgeschaltet hat.
Ok, das war's. Viel Spaß euch beim Nachbauen.
Steffen
Anhänge
Zuletzt bearbeitet: