Events

:

:

Elektronik | Funk | Software

Der Technik-Blog

  • Social Media

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden

    Der Technik-Blog

    Arduino Powerbank Abschaltautomatik verhindern - Prevent Automatic Power Off

    Arduino mit Powerbank betreiben

    Alex @ AEQ-WEB

    Powerbanks eignen sich ideal für den Betrieb von Arduino Boards, ESP32, ESP8266 oder auch NodeMCU Boards. Sie sind nicht nur wegen der teilweise besonders hohen Kapazität sehr beliebt, sondern verfügen auch gleich über die benötigten 5V Betriebsspannung. Allerdings gibt es ein großes Problem bei nahezu allen Powerbanks: Sie funktionieren mit Mikrocontrollern nicht oder schalten nach wenigen Minuten Betriebszeit einfach aus. In diesem Artikel zeigen wir, welche Möglichkeiten es gibt, wie man einen Mikrocontroller kompatibel macht für einen Powerbank.

    Warum schaltet der Powerbank überhaupt ab?

    Im Powerbank befindet sich eine eigene Elektronik, die bei einer zu geringen Energieaufnahme die Stromzufuhr abschaltet. Powerbanks sind nicht für den Dauerbetrieb gedacht und nur für Aufladezwecke vorgesehen. Lädt man zum Beispiel damit den Akku vom Smartphone, so fließt ein Strom von einigen Hundert Milliampere bis hin zu ein bis drei Ampere. Wenn der Akku vollgeladen ist, geht die Stromaufnahme deutlich zurück und das Smartphone bezieht nur noch wenige Milliampere. Genau zu diesem Zeitpunkt sollte dann der Powerbank abschalten. Ein Mikrocontroller wie Beispielsteiße ein Arduino Uno Board benötigt im Leerlauf weniger als 30 Milliampere. Der Powerbank nimmt nun an, dass das angeschlossene Gerät vollgeladen ist, und schaltet daher sofort oder nach wenigen Minuten ab. Um dies zu unterbinden, muss man den Powerbank belasten bzw. einen leeren Smartphone-Akku vortäuschen.

    Werbung:

    Erste Variante (Lastwiderstand)

    Die einfachste aber auch ineffizienteste Lösung ist ein Widerstand, der parallel zwischen Powerbank und Mikrocontroller geschaltet wird. Das kann z. B. ein 220 Ohm Widerstand sein. Man hat dadurch einen höheren Stromverbrauch, der sinnlos Energie verschwendet und den Powerbank schnell entleert. Wenn man z. B. den Stromverbrauch vom Arduino (~30 mA) und den Lastwiderstand (~90 mA) addiert, so ergibt das einen Energieverbrauch von 120 mA, was meistens ausreicht für einen Powerbank im Dauerbetrieb. Allerdings läuft der Arduino mit einem 2000 mA Powerbank dann gerade einmal 24 Stunden, was sehr wenig ist. Es gibt aber eine ähnliche und weit aus effizientere Lösung, die wir im nächsten Absatz erklären.

    Zweite Variante (Impulslast)

    Die zweite Variante ist eindeutig die bessere, jedoch erfordert diese mehr Bauteile. Der größte Vorteil ist der niedrige Energieverbrauch im Gegensatz zur ersten Variante, weil hier der Lastwiderstand nur sehr kurz in Betrieb ist. Da das Arduino Board und nahezu alle Mikrocontroller auf einen digitalen Ausgang nur maximal 40 mA schalten können, wir ein Verstärker benötigt. In unserem Fall ist das ein NPN BC547 Transistor. Dieser Transistor kann bis zu 100 mA schalten, was für den Powerbank ausreichend ist. Da der Eigenverbrauch bei etwa 25 mA liegt und der Arduino auch noch andere Aufgaben hat, kommt man in den meisten Fällen auf über 150 mA Gesamtstrom, was ausreichen sollte, um die Abschaltautomatik zu verhindern.

    Achtung: Bei der Verwendung von 0.25 Watt Widerständen mit weniger als 100 Ω können diese im Dauerbetrieb sehr heiß werden und beschädigt werden!

    Kollektor Widerstandstabelle
    Widerstand Kollektorstrom Gesamtstrom
    150 Ω ca. 30 mA ca. 55 mA
    100 Ω ca. 45 mA ca. 70 mA
    68 Ω ca. 65 mA ca. 90 mA
    47 Ω ca. 95 mA ca. 120 mA
    Gesamtstrom = Summe aus dem Eigenverbrauch von einem Arduino Uno und den Lastwiderstand
    Werbung:

    Die Software

    Die Software ist sehr einfach aufgebaut und beinhaltet lediglich einen Timer, der nach X Sekunden für eine Sekunde einen digitalen Ausgang (Standard: Pin 10) einschaltet. Der Vorteil von diesem Code ist, dass es für die Wartezeit kein "delay" gibt und der Mikrocontroller dazwischen andere Aufgaben erledigen kann.

    Sourcecode für Arduino
    /* 
    More information at: https://www.aeq-web.com
    Version 1.0 | 2019-APR-02
    */
    
    int dummyloadpin = 10;
    long cronmillis = 0;
    long interval = 4000;
     
    void setup()
    {
      pinMode(dummyloadpin,OUTPUT);
    }
     
    void loop() 
    {
      if ((millis() - cronmillis) > interval) 
        {
          cronmillis = millis();
          digitalWrite(dummyloadpin,HIGH);
          delay(1000);
          digitalWrite(dummyloadpin,LOW);
        }
    }



    122X122

    Über den Autor

    Alex, der Gründer von AEQ-WEB. Seit über 10 Jahren beschäftigt er sich mit Computern und elektronischen Bauteilen aller Art. Neben den Hardware-Projekten entwickelt er auch Webseiten, Apps und Software für Computer.

    Top Artikel in dieser Kategorie:

    Arduino IRFZ44N PWM MOSFET Load Control

    Arduino MOSFET Steuerung

    • Video
    • DE/EN

    In diesen Artikel zeigen wir wie man große Lasten mittels eines MOSFET-Transistors über das Arduino Board steuert und die Drehzahl von einem Motor regelt

    Weiterlesen
    Arduino LM358 PT1000 Sensor Converter

    Temperatur messen mit PT1000 & Arduino

    • Video
    • DE/EN

    PT1000 Sensoren können nicht direkt analog mit einem Mikrocontroller gemessen werden. Wie baut man einen Messwandler mit dem LM358 für den PT1000 und Arduino?

    Weiterlesen

    Social Media

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden