Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Optimierte Stromversorgungslösungen für Arduino-Projekte

Komponenten und Materialien

Adafruit PowerBoost Charger Shield 1
Wiederaufladbarer LiPo-Akku (3,7–4,2 V) 1
Arduino UNO 1

Über dieses Projekt

Arduino-Projekte brauchen typischerweise kein spezielles Powermanagement: Strom an → Boot → Job → Strom aus → Stopp. Im Gegensatz zum Raspberry Pi kein Risiko für SD-Karten-Korruption.

Doch für manche Anwendungen wünscht man sich überwachtes, gesteuertes Herunterfahren statt hartem Abschalten.

Beispiel: Entferntes Sensorsystem loggt Temperaturdaten. Fällt der Akku unbeaufsichtigt aus, stoppen Logs einfach. War es leerer Akku, Software- oder Hardwarefehler? Nicht sofort erkennbar.

Ebenso bei portablen Systemen: Akkustand und Ladebedarf im Blick zu haben, ist hilfreich.

Dieses Projekt stellt mehrere Ansätze zum Arduino-Powermanagement vor – Schaltungen, Software, Beschreibungen. Vom einfachen Ein/Aus-Taster bis zum Datenloggingsystem mit Akkustatus für unbeaufsichtigte Umgebungsüberwachung.

Sie können Teilsysteme nach Bedarf auswählen. Ich beschreibe sie in steigender Komplexität – unerwünschte Teile im Code einfach auskommentieren.

Basiert auf Ideen der LiPoPi- und Pi-Power-Projekte (ähnliche Funktion für Raspberry Pi).

Überblick

Das System bietet:

Jedes Feature fügt zwei Funktionen hinzu: arduinoPowerSetup() und arduinoPowerMonitor() – ergänzt zu Standard-setup() und loop().

Adafruit PowerBoost Shield

System nutzt wiederaufladbaren LiPo-Akku und Adafruit PowerBoost Charger Shield – lädt Akku und boostet Ausgang auf 5V.

Adafruit bietet drei Versionen: zwei Breakout-Boards und ein Arduino Shield. Hier hauptsächlich Shield, aber Breakouts werden später besprochen.

Shield-Vorbereitung (Adafruit Guide):

Ein-/Ausschalt-Schaltung per Taster

Grundschaltung: Tastendruck schaltet System an, weiterer Tastendruck (drücken & loslassen) schaltet aus – wie beim Smartphone.

Bei gedrücktem Taster auf ausgeschaltetem System: PowerBoost aktiv → versorgt Arduino → Boot → Programmstart.

Bei erneutem Drücken & Loslassen: Arduino deaktiviert PowerBoost → keine Stromversorgung → Arduino fährt runter.

Details: Adafruit Power On/Off. Schaltplan:

Optimierte Stromversorgungslösungen für Arduino-Projekte

Hinweis: Diese Schaltung ist optional für den Rest des Projekts. Der mitgelieferte Schalter am PowerBoost funktioniert auch – Unterschied: Basis-Schalter schaltet hart ab, ohne Log-Nachricht.

Akku-Spannung überwachen

Arduino hat 6 ADCs an Analogpins 0–5 → Spannungsmessung einfach. PowerBoost Shield ermöglicht Verbindung der Akkuspannung (Vbat) an einen ADC durch Brücken der Lötpads (siehe Shield-Seite). Hier: Analogpin 0.

LiPo-Spannung: ~4,25 V (voll) bis ~3,7 V (leer). ADC wandelt 0–5 V in 0–1023 um, ausgelesen per analogRead().

Code-Snippet für Spannung und relativer Ladestand (min/max Akkuspannung):

float maxVoltage = 4.25;
float minVoltage = 3.75;
arduinoPowerVoltage = float(analogRead(arduinoPowerVoltagePin)) / 1024.0 * 5.0;
float fractionalVoltage = (arduinoPowerVoltage - minVoltage) / (maxVoltage - minVoltage);

LiPo-Entladung nicht linear, aber nah genug für Schätzung der Restlaufzeit via fractionalVoltage.

Kommunikation an Nutzer: Alphanumerisches Display möglich, nächster Abschnitt loggt auf SD-Karte. Aber oft Overkill.

Einfacher: RGB-LED, Farbe = Akkustand:

  • Grün → > 50 %
  • Gelb → 20–50 %
  • Rot → < 20 % → Laden!

Umsetzung: RGB-LED (Common Anode) + 2× 1kΩ Widerstände zum Schaltplan hinzufügen, Code in arduinoPowerMonitor() ergänzen.

Optimierte Stromversorgungslösungen für Arduino-Projekte

Hinweis: In der Praxis nutze ich 3,3 V für LEDs.

Hinweis: Messspannung kann stark „osczillieren“ (Gründe unklar). Nahe Farbwechselgrenzen flackert LED hin/her – nervig. Abhilfe: 0,1 µF Kondensator zwischen Analogpin A0 und GND.

Optimierte Stromversorgungslösungen für Arduino-Projekte

Breadboard-Layout zeigt nicht Akku/Arduino. Sketch arduino_2_voltage_led implementiert Ein/Aus + LED-Spannungsanzeige. Code setzt Grün/Rot auf LOW für AN, HIGH für AUS.

Debug: Serial-Aufrufe im Code einkommentieren → Serial Monitor in IDE → echte und relative Akkuspannung sehen. Erster Messwert oft fehlerhaft.

Akku-Spannung auf SD-Karte loggen

LED-Anzeige gut für portable Systeme, wo Details egal sind – nur „wann laden?“.

Bei autarken Sensorsystemen (z. B. Garten) möchte man Akkuspannung mit Sensordaten loggen → Stromverbrauch über Zeit nachvollziehen.

Hier: Adafruit Data Logging Shield → CSV-Datei auf SD-Karte mit Timestamps. Adafruit Guide zu SD- und RTC-Library vorher verstehen.

Schaltung unverändert – LED als Sofortfeedback behalten (optional).

Wichtig: Abschaltmeldung loggen → erkennen, ob gewollt oder Fehler. Spannungsmonitoring: Bei Unterschreitung Mindestspannung sauber herunterfahren, Meldung davor loggen.

Sketch: arduino_3_voltage_logging. Enthält Hilfsroutinen für formatierte Timestamps, Hack: rote LED blinkt bei fehlender SD-Karte (passiert mir ständig).

Gesamter Stapel: Arduino UNO + Data Logging Shield + PowerBoost Shield + Breadboard:

Optimierte Stromversorgungslösungen für Arduino-Projekte

Spannungsdaten

Akku-Spannung über ~20 Stunden – allmählicher Abfall. Nicht perfekt linear, aber für Restkapazitätsschätzung ausreichend.

Optimierte Stromversorgungslösungen für Arduino-Projekte

0,1 µF Kondensator an A0 gegen GND hilft stark: Violette Kurve (mit Kondensator) vs. Blau (ohne) – deutlich geglättet.

Optimierte Stromversorgungslösungen für Arduino-Projekte

Umweltdaten auf SD-Karte loggen

Nächste Erweiterung: Autarker Umweltsensor für Garten – Temperatur, Bodenfeuchte, etc.

Arduino in abgedichteter Box, unbeaufsichtigt für längere Zeit. Neben Akkuende: Feuchtigkeit im Gehäuse prüfen, Extreme Temperaturen vermeiden (Systemschaden).

Günstig & einfach: DHT22 Sensor (Temperatur + Luftfeuchte). Adafruit Tutorial.

In Beispielcode: Digitalpin 5 statt Pin 2 (Pin 2 für Power-Off-Button-Interrupt belegt).

Code: arduino_4_voltage_temp_humidity_logging. Nach Breadboard-Test auf Adafruit Proto Shield verlötet. DHT22 recht groß, aber billig. Alternativen: Breakouts von Adafruit, SparkFun.

Stromsparen in Arduino-Projekten

Nächste Stufe: Stromverbrauch senken, Akkulaufzeit verlängern.

Ausgangspunkt: Exzellentes Adafruit Tutorial „Low Power Datalogging“ von Tony DiCola.

Code

GitHub Repositories

Herstellungsprozess

  1. Leistungsverlust in Widerständen messen: Praktisches Experiment mit Jouleschem Gesetz
  2. Spannungsquellen: AC und DC erklärt
  3. Bulldozer-Technologie: Design, Fertigung und zukünftige Innovationen
  4. Batterien: Von Voltas Säule zu modernen Lithium-Zellen
  5. Bluetooth-gesteuerter Arduino-Spybot bauen – Überwachungsroboter mit IP-Kamera
  6. FlickMote: Gestensteuerung per Ultraschall & IR für Smart Home (Arduino 101)
  7. DIY Arduino TV-B-Gone: Universelle TV-Aus-Fernbedienung
  8. Einen eigenen LED-Master-Clock mit Alarm bauen – aus 12 Metern Entfernung ablesbar
  9. Windkraft: Umwandlung von Luftbewegung in sauberen Strom
  10. Auswirkungen von Subventionskürzungen auf Chinas Leistungsbatterieindustrie