Raspberry Pi Pico: Spannung messen über 3,3 Volt (Voltmeter)

Ein Raspberry Pi Pico kann als Spannungsmesser verwendet werden, in dem man die Spannung mit einem integrierten ADC misst. Dabei muss man berücksichtigen, dass die zu messende Spannung an einem ADC am Raspberry Pi Pico maximal 3,3 Volt betragen darf. Wenn man eine Spannung darüber messen will, dann muss man die Spannung am Eingang des ADCs mit einem Spannungsteiler begrenzen.

Wir verwenden hier einen Spannungsteiler von 100 kOhm und 10 kOhm zwischen der zu messenden Spannung und GND. Am Mittelpunkt des Spannungszeilers wird der ADC verbunden und somit die Spannung am Widerstand mit 10 kOhm gemessen. An diesem Widerstand liegt somit der 11. Teil der Spannung. Der Programmcode berechnet dann daraus die Spannung, die gemessen wird.

Durch den Spannungsteiler kann der Pico sicher Spannungen messen, die höher sind als 3,3 V, ohne beschädigt zu werden. Die beiden Widerstände reduzieren die Eingangsspannung auf ein für den ADC messbares Niveau. Die darf in diesem Fall nicht über 30 Volt liegen.

Aufbau und Bauteile

Aufbau: Raspberry Pi Pico: Spannung messen über 3,3 Volt (Voltmeter)

Schaltung: Raspberry Pi Pico: Spannung messen über 3,3 Volt (Voltmeter)

Auf dem Steckbrett sind zwei Widerstände eingebaut, die zusammen einen Spannungsteiler bilden. In diesem Fall verwenden wir als die zu messende Spannung die Spannung an Pin 40. Das ist VBUS der verbundenen USB-Schnittstelle, die ungefähr 5,1 Volt führt. Der Verbindungs­punkt der beiden Widerstände befindet sich am GPIO 26, an dem sich auch der ADC 0 befindet.

Programmcode

Der Programmcode misst laufend eine analoge Spannung und gibt sie in Volt aus. Dazu wird der ADC 0 vom GPIO 26 ohne Pull-Widerstand initialisiert, der die Spannung als Dezimalzahl liefert. Anschließend wird diese Zahl in eine Spannung umgerechnet.

# Bibliotheken laden
import machine
import time

# Initialisierung des ADC0 (GPIO26)
adc = machine.ADC(machine.Pin(26, machine.Pin.IN, pull=None)) # Pulldown-Widerstand abschalten

# Wiederholung
while True:
    time.sleep(2)
    # ADC als Dezimalzahl lesen
    value = adc.read_u16()
    
    # Dezimalzahl in Spannung umrechnen
    voltage = value * 3.3 / 65536 * 10
    
    # Ausgabe in der Kommandozeile
    print(f"{voltage:.3f} V", end="  \r")

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

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

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

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.

Online-Workshop buchen

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren