Raspberry Pi Pico: Berührungsschalter mit einem ADC-Eingang

Ein ADC-Eingang am Raspberry Pi Pico dient im Prinzip zur Auswertung bzw. Messung eines analogen Signals bis maximal 3,3 Volt. Dieser gemessene Wert wird in einen digitalen Wert umgewandelt. Oft wird an einem ADC-Eingang, der Spannungsabfall an einem Widerstand oder Sensor gemessen, und daraus den Wert in eine andere Einheit umzurechnen.

Wenn man einen ADC abfragt, der offen, also nicht beschaltet ist, dann empfängt der irgendein Signal von den umliegenden Bauteilen. Wenn man ihn berührt, verändert sich demnach auch das elektrische Umfeld, dass man messen kann. Denkbar wäre, eine Berührung durch einen ADC-Eingang zu erkennen und damit etwas ein- oder auszuschalten.

In diesem Experiment verwenden wir einen ADC-Eingang zur Erkennung einer Berührung und schalten damit die Onboard-LED ein und aus.

Aufbau und Bauteile

Der Aufbau ist vergleichsweise einfach. Das eingezeichnete Verbindungskabel ist nicht zwangsläufig erforderlich. Allerdings muss die zu berührende Obefläche (metallisch), irgendwie mit dem ADC-Eingang verbunden werden. Das kann man mit einem Verbindungskabel, dess Kabelende offen ist, simulieren. Ansonsten würde der Aufbau auch ohne Verbindungskabel funktionieren.

Programmcode

Der Programmcode initialisiert einen GPIO als ADC und fragt dessen Zustand in einer Endlosschleife ab. Dazu muss der dezimale Wert am ADC unter den Wert „700“ fallen. Dann kann man von einer Berührung mit dem Verbindungskabel ausgehen.

Wenn eine Berührung stattgefunden hat, dann leuchtet die Onboard-LED.

# Bibliotheken laden
from machine import ADC, Pin
from time import sleep

# Initialisierung von GPIO25 als Ausgang
led_onboard = Pin(25, Pin.OUT, value=0)

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

# Wiederholung (Endlos-Schleife)
while True:
    value = btn.read_u16()
    print('ADC1:', value)
    if value < 500:
        led_onboard.on()
    else:
        led_onboard.off()
    sleep(0.3)

Experimente

Wie gut die Erkennung der Berührung funktioniert hängt ab, welcher Vergleichswert eingestellt ist. Im Programmcode ist der Wert „700“ eingetragen. Es kann sein, dass der Wert darüber oder noch weiter darunter liegen muss. Deine Aufgabe ist es durch Ausprobieren (100er Schritte) herauszufinden, welcher Wert besser ist.

Beobachtungen und Erkenntnisse

Während ich diesen Artikel geschrieben habe, habe ich den Programmcode parallel laufen lassen. Dabei ist mir aufgefallen, dass die LED manchmal aufgeleuchtet hat, auch ohne dass ich das offene Ende des Verbindungskabels berührt hatte. Das heißt, der Programmcode hat irrtümlich ausgelöst.

Ich habe dann den Vergleichswert von 700 auf 500 abgesenkt. Danach kamen Fehlauslösungen nicht mehr vor. Allerdings hat dann die Berührungserkennung nicht mehr so gut funktioniert. Ich musste dass Kabelende schon mit zwei Fingern „drücken“, damit eine Berührung erkannt wurde. Das geht soweit, dass sich das Gefühl einstellt, dass eine signifikante mechanisch Verbindung vorhanden sein muss. Wie bei einem richtigen Schalter oder Taster zum Betätigen. Dieses Phänomen können wir bei vielen Berühungsschaltern in unserem Umfeld finden. Zum Beispiel bei Fahrstühlen oder anderen öffentlichen Orten.

Was heißt das jetzt genau? Wenn man die Absicht hat, so ein System in der Praxis als Berührungserkennung einzusetzen, dann muss man eine Kalibrierung vorsehen. Man kann diese Kalibrierung auch dynamisch vorsehen, dass der Pico den Grundzustand des ADCs in seiner spezifischen Umgebung ermittelt und erst bei einer signifikanten Abweichung eine Berührung erkennt. Das heißt, damit das gut funktioniert, musst Du noch ein wenig Entwicklungsarbeit leisten.

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