Raspberry Pi Pico W: Messung des Stromverbrauchs

Wie viel Strom verbraucht ein Raspberry Pi Pico W eigentlich? Je nach Quelle bekommt man Werte zwischen 20 und 30 mA. Wir wollen wissen, ob das richtig ist.

Den Stromverbrauch zu wissen ist dann wichtig, wenn man einen Raspberry Pi Pico W an einem Akku oder einer Batterie betreiben möchte. Dann sollte der Stromverbrauch so gering wie möglich sein, damit die Spannungsquelle möglichst lange hält.

  • Messgerät: USB- und DC-Power-Monitor von Portapow
  • Messaufbau: Messung in der USB-Verbindung zwischen Host-Computer und Raspberry Pi Pico W

Messungen

  1. Ohne Programmcodeausführung
  2. Laufendes Programm mit blinkender Onboard-LED
  3. Nachdem eine WLAN-Verbindung aufgebaut wurde
  4. Laufendes Programm mit aktiver WLAN-Verbindung
  5. Laufendes Programm mit beendeter WLAN-Verbindung
  6. WLAN deaktiviert

Messung 1: Ohne Programmcodeausführung

Die erste Messung führen wir ohne Programmausführung durch. Dadurch können wir feststellen, ob der Messaufbau grundsätzlich korrekt ist.
Die folgenden Messwerte stellen sich ein nachdem der Raspberry Pi Pico mit dem MicroUSB-Kabel verbunden wurde. Das ist der sogenannte Ruhezustand.

  • Spannung: 5,051 V
  • Strom: 0,019 A (19 mA)

Achtung, der kurzzeitig auftretende Einschaltstrom liegt deutlich höher. Er war aber mit dem vorhandenen Messgerät nicht exakt zu ermitteln.

Messung 2: Laufendes Programm mit blinkender Onboard-LED

Bei der zweiten Messung geht es darum ein einfaches Programm mit einer blinkenden Onboard-LED auszuführen und dabei den Stromverbrauch zu ermitteln.

  • Spannung: 5,048 V
  • Strom: 0,031 A (LED aus), 0,034 A (LED an)

Bei der Ausführung eines Programms steigt der Strom auf etwas über 0,03 A. Zusätzliche angeschlossene Bauteile vergrößern den Strom. Beispielhaft die Onboard-LED, wenn sie leuchtet.

# Bibliotheken laden
from machine import Pin
from utime import sleep

# Initialisierung der Onboard-LED
led_onboard = Pin("LED", Pin.OUT)

# Wiederholung (Endlos-Schleife)
while True:
    # LED-Zustand wechseln (EIN/AUS)
    led_onboard.toggle()
    # 1 Sekunde warten
    sleep(1)

Hinweis: Die Onboard-LED auf dem Pico W ist mit dem WLAN-Chip und nicht mit dem RP2040 verbunden. Das bedeutet, nutzt man diese Onboard-LED, dann wird automatisch auch dieser Chip aktiviert, der dann auch Strom verbraucht.

Messung 3: Nachdem eine WLAN-Verbindung aufgebaut wurde

Bei dieser Messung geht es darum, herauszufinden, wie viel eine WLAN-Verbindung zusätzlich an Strombedarf aufweist.
Bei der Ausführung des Programms wird die WLAN-Verbindung hergestellt. Nachdem die Verbindung hergestellt wurde, wird der Programmcode automatisch beendet (die WLAN-Verbindung bleibt bestehen) und danach die Messung durchgeführt.

  • Spannung: 5,057 V
  • Strom: 0,041 A

Beim Herstellern der WLAN-Verbindung steigt der Strom auf etwas über 0,01 A an. Exakt ließ sich das nicht ermitteln.
Im Ruhezustand mit WLAN-Verbindung beträgt der Strom 0,039 A. Gelegentlich steigt der Stromverbrauch auf etwas über 0,05 A an (vermutlich sind das WLAN-interne Übertragungen).

# Bibliotheken laden
import machine
import network
import rp2
import utime as time

# WLAN-Konfiguration
wlanSSID = 'WLANNAME'
wlanPW = 'WLANPASSWORD'
rp2.country('DE')

# Status-LED
led_onboard = machine.Pin('LED', machine.Pin.OUT, value=0)

# WLAN-Verbindung herstellen
wlan = network.WLAN(network.STA_IF)
if not wlan.isconnected():
    print('WLAN-Verbindung herstellen')
    wlan.active(True)
    wlan.connect(wlanSSID, wlanPW)
    for i in range(10):
        if wlan.status() < 0 or wlan.status() >= 3:
            break
        led_onboard.toggle()
        print('.')
        time.sleep(1)

# WLAN-Verbindung prüfen
if wlan.isconnected():
    print('WLAN-Verbindung hergestellt / WLAN-Status:', wlan.status())
    led_onboard.on()
    ipconfig = wlan.ifconfig()
    print('IPv4-Adresse:', ipconfig[0])
else:
    led_onboard.off()
    print('WLAN-Status:', wlan.status())
    raise RuntimeError('Keine WLAN-Verbindung')

# WLAN-Verbindung beenden
wlan.disconnect()
print('WLAN-Verbindung beendet')

Messung 4: Laufendes Programm mit aktiver WLAN-Verbindung

Mit „aktiver WLAN-Verbindung“ ist gemeint, dass die Verbindung zum WLAN hergestellt ist und gerade für eine Übertragung genutzt wird. Im Programmcode lösen wir das durch das Initiieren eines HTTP-Requests. Die Messung erfolgt nach dem Drücken des Tasters, der den Request auslöst.

  • Spannung: 5,056 V
  • Strom: schwankt zwischen 0,041 und 0,063 A

Nicht ganz unerwartet, ist der Stromverbrauch während der aktiven Verbindung nicht konstant, sondern steigt schnell an, fällt ab und steigt erneut an. Der maximale Strom hat bei 0,063 A gelegen. Es kann sein, dass er auch noch darüber liegt.

# Bibliotheken laden
import machine
import network
import rp2
import utime as time
import urequests as requests

# WLAN-Konfiguration
wlanSSID = 'WLANNAME'
wlanPW = 'WLANPASSWORD'
rp2.country('DE')

# Status-LED für die WLAN-Verbindung
led_onboard = machine.Pin('LED', machine.Pin.OUT, value=0)

# WLAN-Verbindung herstellen
wlan = network.WLAN(network.STA_IF)
if not wlan.isconnected():
    print('WLAN-Verbindung herstellen')
    wlan.active(True)
    wlan.connect(wlanSSID, wlanPW)
    for i in range(10):
        if wlan.status() < 0 or wlan.status() >= 3:
            break
        led_onboard.toggle()
        print('.')
        time.sleep(1)

# WLAN-Verbindung prüfen
if wlan.isconnected():
    print('WLAN-Verbindung hergestellt / WLAN-Status:', wlan.status())
    led_onboard.on()
    ipconfig = wlan.ifconfig()
    print('IPv4-Adresse:', ipconfig[0])
else:
    led_onboard.off()
    print('WLAN-Status:', wlan.status())
    raise RuntimeError('Keine WLAN-Verbindung')

# Button initialisieren
btn = machine.Pin(15, machine.Pin.IN, machine.Pin.PULL_UP)
print()
print('Bitte Taster drücken')

# Funktion zur Taster-Auswertung
while True:
    time.sleep_ms(100)
    if not btn.value():
        print()
        print('Taster wurde gedrückt')
        print('HTTP-Request wird gesendet')
        # HTTP-Request senden
        request = requests.get('https://www.elektronik-kompendium.de/')
        # HTTP-Response-Status-Code ausgeben
        print('Status-Code:', request.status_code)
        # Verbindung schließen
        request.close()
        print()
        print('Bitte Taster drücken')

Messung 5: Laufendes Programm mit beendeter WLAN-Verbindung

Wenn man die vorherigen Messungen betrachtet, dann braucht eine passive WLAN-Verbindung rund 0,01 A mehr Strom nachdem diese Verbindung aufgebaut wurde. Die Frage ist, ist das grundsätzlich so? Wie viel Strom kann man sparen, wenn man die WLAN-Verbindung wieder beendet, wenn man sie nicht mehr braucht?

Wir starten ein Programm, dass eine WLAN-Verbindung aufbaut und danach wieder abbaut. Wir lesen die Messwerte ab und vergleichen sie mit Messung 3.

  • Spannung: 5,058 V
  • Strom: 0,038 A

Vergleicht man den gemessenen Strom mit der Messung 3 dann braucht eine passive WLAN-Verbindung nur etwa 0,003 A (3 mA) mehr Strom. Das Beenden der WLAN-Verbindung bringt also nicht viel Stromersparnis.

# Bibliotheken laden
import machine
import network
import rp2
import utime as time

# WLAN-Konfiguration
wlanSSID = 'WLANNAME'
wlanPW = 'WLANPASSWORD'
rp2.country('DE')

# Status-LED
led_onboard = machine.Pin('LED', machine.Pin.OUT, value=0)

# WLAN-Verbindung herstellen
wlan = network.WLAN(network.STA_IF)
if not wlan.isconnected():
    print('WLAN-Verbindung herstellen')
    wlan.active(True)
    wlan.connect(wlanSSID, wlanPW)
    for i in range(10):
        if wlan.status() < 0 or wlan.status() >= 3:
            break
        led_onboard.toggle()
        print('.')
        time.sleep(1)

# WLAN-Verbindung prüfen
if wlan.isconnected():
    print('WLAN-Verbindung hergestellt / WLAN-Status:', wlan.status())
    led_onboard.on()
    ipconfig = wlan.ifconfig()
    print('IPv4-Adresse:', ipconfig[0])
else:
    led_onboard.off()
    print('WLAN-Status:', wlan.status())
    raise RuntimeError('Keine WLAN-Verbindung')

# LED ausschalten
led_onboard.off()
print('Ende')

Messung 6: WLAN deaktivieren

Die Frage ist, ob man den Raspberry Pi Pico W so betreiben kann, dass er nicht mehr Strom verbraucht, als ein normaler Pico (ohne WLAN). Das wollen wir mit dieser Messung klären.
Dazu wird im folgenden Programmcode das WLAN aktiviert, ein WLAN-Scan durchgeführt und anschließend das WLAN deaktiviert.

  • Spannung: 5,071 V
  • Strom: 0,019 A
# Bibliotheken laden
import network

# WLAN-Interface aktivieren
wlan = network.WLAN(network.STA_IF)
wlan.active(True)

# WLANs ausgeben
print(wlan.scan())

# WLAN deaktivieren
wlan.active(False)
wlan.deinit()

Raspberry Pi Pico: Stromverbrauch und Messungen

Weitere verwandte Themen:

Teilen:

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das "Elektronik-Set Pico Edition" ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Online-Workshop Mehr Informationen Elektronik-Set jetzt bestellen

Programmieren mit dem Raspberry Pi Pico
Online-Workshop

Programmieren mit dem Raspberry Pi Pico

Online-Workshop mit einer Einführung ins Physical Computing mit Leuchtdioden, Taster und Temperatursensor.

  • Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython ohne Vorkenntnisse
  • Optimaler Einstieg, um eigene Ideen zu verwirklichen und Steuerungen zu programmieren
  • Inklusive Elektronik-Set mit einem Raspberry Pi Pico, Zubehör und elektronischen Bauteilen

Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)

Zum PicoTalk Mehr Informationen Am Online-Workshop teilnehmen

Elektronik-Set Pico Edition
Elektronik-Set Pico Edition

Hardware-nahes Programmieren mit dem Raspberry Pi Pico

Das "Elektronik-Set Pico Edition" ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Online-Workshop Mehr Informationen Elektronik-Set jetzt bestellen