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
- Ohne Programmcodeausführung
- Laufendes Programm mit blinkender Onboard-LED
- Nachdem eine WLAN-Verbindung aufgebaut wurde
- Laufendes Programm mit aktiver WLAN-Verbindung
- Laufendes Programm mit beendeter WLAN-Verbindung
- 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 time 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 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 time import 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 time # WLAN-Konfiguration wlanSSID = 'WLANNAME' wlanPW = 'WLANPASSWORD' rp2.country('DE') # WLAN-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()
Mehr Informationen zur Stromversorgung
- Raspberry Pi Pico: Grundlagen der Energieversorgung / Stromversorgung
- Raspberry Pi Pico W: Stromverbrauch und Stromkosten
- Raspberry Pi Pico im Akku- und Batterie-Betrieb
Raspberry Pi Pico: Stromverbrauch und Messungen
Weitere verwandte Themen:
- Raspberry Pi Pico: Stromverbrauch messen
- Raspberry Pi Pico: Grundlagen zum Strom sparen
- Raspberry Pi Pico W und WH
- Raspberry Pi Pico im Stand-alone-Betrieb
- Raspberry Pi Pico: Anschlüsse und Schnittstellen
Teilen:
Elektronik-Set Pico WLAN Edition
Hardware-nahes Programmieren mit dem Mikrocontroller Raspberry Pi Pico W und MicroPython.
- Raspberry Pi Pico W mit gelöteten Stiftleisten
- Spezielles Steckbrett mit GPIO-Beschriftung
- Einführung ins Hardware-nahe Programmieren
- Schwerpunkte: WLAN, MQTT und Internet
- Deutschsprachige Anleitung als PDF-Datei zum Download
In unseren Online-Workshops bieten wir intensiven Erfahrungsaustausch in kleinen Gruppen und Unterstützung bei individuellen Problemen.
Online-Workshop: Programmieren mit dem Raspberry Pi Pico
Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.
Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)