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 | 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
- Eine Idee ist, den Programmcode so umzubauen, dass er die Annäherung erkennt, die Onboard-LED einschaltet und nach einer bestimmten Zeit automatisch ausschaltet.
- Die Abschaltzeit soll mit einem Potentiometer einstellbar sein.
Weitere verwandte Themen:
- Raspberry Pi Pico: Objekterkennung mit Infrarot-Reflektionssensor FC-51
- Raspberry Pi Pico: Berührungsloser Schalter mit IR-Sensor FC-51 und Servo-Motor SG90
- Raspberry Pi Pico: Objekterkennung mit TCRT5000
- Raspberry Pi Pico: Abstandsmessung mit TCRT5000
Teilen:
Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython
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: 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)