Raspberry Pi Pico: Experimente mit ADC

ADC bedeutet Analog-Digital-Converter bzw. Analog-Digital-Wandler. GPIOs, die über einen ADC verfügen, können analoge Signale in digitale Daten umzuwandeln. Im Prinzip wird hier eine Spannung am ADC-Eingang gemessen, die zwischen 0 und 3,3 Volt liegen darf (Raspberry Pi Pico).

Um die Möglichkeiten der ADCs vom Raspberry Pi Pico auszuprobieren, zu testen und festzustellen wie diese verwendet werden können, empfiehlt es sich ein paar einfache Experimente durchzuführen.

Schaltung

Um einen Spannungsabfall zu erzeugen, verwenden wir ein Potentiometer. Mit dem Potentiometer können wir den Widerstandswert stufenlos einstellen. Statt des Potentiometers können auch unterschiedliche Widerstände verwendet werden. Wenn man nicht so viele unterschiedliche Widerstände hat, kann man diese beliebig in Reihe oder auch parallelschalten.

Aufbau und Bauteile

Raspberry Pi Pico: Experimente mit ADC

  • Potentiometer, 10K (103)

Hinweis: In diesem Aufbau wird ein Potentiometer verwendet, um den Widerstandswert und damit den Spannungsabfall stufenlos einzustellen. Wenn man kein Potentiometer hat, dann kann man stattdessen auch unterschiedliche Widerstände verwenden. Denkbar wäre, dass man sich mit diesem Aufbau ein Ohmmeter baut.

Programmcode für MicroPython

Der Programmcode fragt alle 2 Sekunden den ADC0 ab und ermittelt die abfallende Spannung in Form einer Ganzzahl und gibt sie auf der Kommandozeile/Shell aus. Was genau die Ganzzahl repräsentiert ist abhängig von dem Bauteil an dem gemessen wird. Das kann eine Temperatur sein oder die Helligkeit, oder irgendetwas anderes. Es ist die Aufgabe des Programmierers diesen Wert richtig zu interpretieren.

# Bibliotheken laden
from machine import ADC
from utime import sleep

# Initialisierung des ADC0 (GPIO26)
adc0 = ADC(0)

# Initialisierung des ADC1 (GPIO27)
adc1 = ADC(1)

# Wiederholung
while True:
    # ADC0 als Dezimalzahl lesen
    read0 = adc0.read_u16()
    read1 = adc1.read_u16()
    # Ausgabe in der Kommandozeile/Shell
    print('ADC0:', read0)
    print('ADC1:', read1)
    print()
    # Warten
    sleep(2)

Experiment 1: Beschalteter ADC-Eingang (ADC0)

Drehe den Regler vom Potentiometer hin und her und beobachte den Wert von ADC0. Du wirst feststellen, dass die dezimalen Werte vergleichsweise hoch sein werden. Das hängt vom verwendeten Festwiderstand ab.

  • Welcher Wert wird ermittelt, wenn sich das Potentiometer in Mittelstellung befindet.
  • Welcher Wert wird ermittelt, wenn sich das Potentiometer in einer Endstellung befindet und in welche Richtung hast Du es gedreht?
  • Welcher Wert wird ermittelt, wenn sich das Potentiometer in der entgegengesetzten Endstellung befindet und in welche Richtung hast Du es gedreht?

Experiment 2: Unbeschalteter ADC-Eingang (ADC1)

Wie verhält sich eigentlich ein unbeschalteter ADC-Eingang?

Drehe den Regler vom Potentiometer hin und her und beobachte den Wert von ADC1. Obwohl das Potentiometer gar nicht mit dem ADC1 beschaltet ist und mechanisch auch keine Verbindung zu diesem ADC besteht, verändert sich der Wert vom ADC1 trotzdem. Nur wenig, aber trotzdem steht die Änderung wohl in Zusammenhang mit dem Potentiometer.

Man kann diesen Wert noch weiter beeinflussen, wenn man mit dem Finger in die Nähe des Pins fasst, mit dem der ADC verbunden ist. Der Wert lässt sich noch mehr beeinflussen, wenn man ein Verbindungskabel mit dem Pin verbindet und mit den Fingern das offene Kabelende berührt. Der Wert ändert sich dabei so signifikant, dass sich ein Berührungsschalter damit bauen lässt.

Programmcode für MicroPython mit picozero

„picozero“ ist eine Einsteiger-freundliche MicroPython-Bibliothek, um elektronische Bauteile, wie LEDs, Taster und Sensoren einfacher zu programmieren und zu steuern.

Das Potentiometer muss zwischen 3,3 Volt und GND angeschlossen werden. Der mittlere Anschluss (Schleifer) muss mit dem ADC0, verbunden werden.

from picozero import Pot
from utime import sleep
pot = Pot(0)
while True:
    print('Wert: ' + str(pot.value) + ' / Spannung: ' + str(pot.voltage) + ' Volt')
    sleep(1)

Beispiele und Anwendungen mit ADC

In der Regel wird man digitale Sensoren bevorzugen. Aber auch hier wird ein analoger Wert gemessen, der von der Sensor-Schaltung in einen digitalen Wert umgewandelt wird. Ein zusätzlicher Controller überträgt die Daten.

Es folgen ein paar Anwendungen, bei denen ein ADC-Eingang vom Raspberry Pi Pico verwendet und der analoge Wert in einen digitalen Wert umgewandelt wird. Hierbei wird in der Regel eine Umrechnung durchgeführt oder der ermittelte Wert interpretiert.

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