Raspberry Pi Pico: Berührungsloser Schalter mit Infrarot-Reflektionssensor FC-51

Berührungslose oder kontaktlose Schalter sind sehr beliebt. Wir finden sie an Wasserhähnen, Klospülungen, Seifenspendern und Lampen. Was in fertigen und kommerziellen Produkten integriert ist, kann man mit Hilfe eines Infrarot-Reflektionssensors selber bauen. In Kombination mit einem Raspberry Pi Pico lässt sich ein Annäherungsschalter bzw. berührungsloser Schalter bauen.

Es geht darum etwas einzuschalten und auf dem selben Weg wieder auszuschalten. Ein Infrarot-Reflektionssensor soll dabei einen Taster ersetzen.

Anwendungen:

  • Licht
  • Motor
  • Relais

Aufbau und Bauteile

Raspberry Pi Pico: Berührungsloser Schalter mit Infrarot-Reflektionssensor FC-51

Raspberry Pi Pico FC-51
Pin 36 3V3 OUT VCC
Pin 33 GND GND
Pin 29 GPIO 22 DOUT

Hinweis: Um den folgenden Programmcode sinnvoll nutzen zu können, muss der IR-Sensor kalibriert werden. Hierfür muss das Potentiometer auf dem Sensor-Modul verwendet werden.

Schnell und einfach alle Bauteile zusammen bestellen

Programmcode

In diesem Programmcode ist eine Funktion definiert, mit der das Schalten eines GPIO-Ausgangs möglich ist. Was an diesem GPIO-Ausgang dranhängt und geschaltet wird, spielt keine Rolle. Voraussetzung ist, dass es zwei Zustände hat und damit der binären Logik folgt. Beispielsweise die Zuständen EIN und AUS. In diesem Beispiel wird die Onboard-LED eingeschaltet und ausgeschaltet.

Der eigentliche Hauptteil des Programmcodes befindet sich in der Endlos-Schleife. Hier wird der IR-Sensor kontinuierlich abgefragt. Wenn eine Annäherung erkannt wird, dann wird die Schalt-Funktion aufgerufen.
Um zu verhindern, dass die selbe Annäherung als weiterer Schaltvorgang erkannt wird (Prellen), wird in einer weiteren Endlos-Schleife, solange pausiert, bis der Sensor keine Annäherung mehr erkennt.

# Bibliotheken laden
from machine import Pin
from time import sleep

# Initialisierung: Onboard-LED
led_onboard = Pin(25, Pin.OUT, value=0)

# Initialisierung: GPIO22 als Eingang
sensor_d = Pin(22, Pin.IN, Pin.PULL_UP)

# Funktion: Schalten der Onboard-LED (Beispiel)
def switching():
    #led_onboard.toggle()
    led_onboard.value(not led_onboard.value())

# Wiederholung (Endlos-Schleife)
print('Annäherung prüfen')
while True:
    # Sensor-Zustand lesen und prüfen
    value_d = sensor_d.value()
    if value_d == 0:
        print('Annäherung erkannt')
        switching()
        # Entprell-Funktion
        while True:
            sleep(0.5)
            value_d = sensor_d.value()
            # Weiter erst dann, wenn Sensor freigegeben ist
            if value_d == 1: break
        print('Annäherung prüfen')
    # Warten, um versehentliches Auslösen zu verhindern
    sleep(0.2)

Erweiterungen

  1. Eine Idee ist, den Programmcode so umzubauen, dass er die Annäherung erkennt, die Onboard-LED einschaltet und nach einer bestimmten Zeit automatisch ausschaltet.
  2. Die Abschaltzeit soll mit einem Potentiometer einstellbar sein.

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