Stromverbrauch von Arduino Boards messen

Um zu bestimmen, für welchen Einsatzzweck sich sich ein Arduino Board eignet, ist es wichtig den Stromverbrauch bereits im Vorfeld grob zu kennen. In diesem Artikel zeigen wir, wie wir dabei vorgehen.

Achtung: Das hier beschriebene Vorgehen ist nur eine grobe Bestimmung der Stromaufnahme und sollte nur als Richtwert betrachtet werden. Bei autarken Systemen wie zum Beispiel Wetterstationen mit Solar-Betrieb sollte das System inklusive aller Sensoren noch einmal gesondert berechnet bzw. gemessen werden. Zu dem Stromverbrauch einzelner Sensoren, ist auch oft etwas in den Datenblättern zu finden.

Versuchsaufbau

Das folgende Programm kommt zum Einsatz. Dabei kommt für das aktivieren der Stromsparfunktionen die LowPower Bibliothek von RocketScream zum Einsatz. Der Quellcode ist auch in unserem "Ardiono/power-test" Repository zu finden.

#include <LowPower.h>

/*
  Power Test
*/

void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  // Builtin LED on and wait 4 seconds
  digitalWrite(LED_BUILTIN, HIGH);
  delay(4000);

  // Builtin LED off and wait 4 seconds
  digitalWrite(LED_BUILTIN, LOW);
  delay(4000);

  // Blink 2 times and wait 4 seconds in powerDown mode
  for(uint8_t i=0; i < 2; i++) {
    digitalWrite(LED_BUILTIN, HIGH);
    delay(500);
    digitalWrite(LED_BUILTIN, LOW);
    delay(500);
  }
  LowPower.powerDown(SLEEP_4S, ADC_OFF, BOD_OFF);
}

Der Messvorgang gliedert sich in 3 Phasen, die im weiteren näher beschrieben werden.

Viele Arduino Boards besitzen eine externe LED die direkt angesteuert und für die Signalisierung von Zuständen verwendet werden kann. In Phase 1 kommen keine Stromsparfunktionen zum Einsatz und die LED wird aktiviert. Somit wird bei den meisten Systemen ohne externe Kommunikation und Komponenten in diese Phase der meiste Strom benötigt.

Anschließend wird die LED deaktiviert, jedoch kommen immer noch keine Stromsparfunktionen zum Einsatz. Bei dieser Messung handelt es sich um Phase 2. Durch die Differenz der Stromaufnahme aus Phase 1 und Phase 2 können weitere Annahmen zum Beispiel zur Stromaufnahme einer weiteren Power-LED, welche bei vielen Systemen vorhanden ist, getroffen werden.

In der dritten und letzten Phase ist die LED aus und es werden alle möglichen Stromsparfunktionen aktiviert. Somit sollte in diese Phase der niedrigste Strom benötigt werden. Den Modus in dem sich der Mikrocontroller dann befindet werden wir auf Grund des Funktionsaufrufes der LowPower Bibliothek als PowerDown Modus bezeichnen.

Hinweis: Neben dem PowerDown Modus, bei dem alle Komponenten des Mikrocontrollers deaktiviert werden, gibt es auch die Möglichkeit nur Teile der internen Komponenten zu deaktivieren. Dies ist jedoch stark von dem eigentlichen Projekt abhängig und wird daher nicht einzeln betrachtet.

Hinweis 2: Die auf vielen Arduino Boards aktuell verbauten Mikrocontroller unterstützen noch weitere Stromsparfunktionen, jedoch ist dazu bei fast allen aktuellen Boards ein Eingriff in die Hardware notwendig. Daher wird dies an dieser Stelle nicht mit betrachtet.

Links

Verwandte Artikel