Pico 2 W Projekte



Bewegungsmelder mit PIR-Sensor:

PIR-Sensor steht für Passive Infrared Sensor. Er reagiert auf Veränderungen der auftreffenden Infrarot-Wärmestrahlung und kann deshalb sehr gut als Bewegungsmelder oder zur Raumüberwachung genutzt werden.

Sie können z.B. von hier 5 einfache PIR-Sensoren mit digitalem Ausgang beziehen. Beim Anschluss an den Pico 2 ist eine Besonderheit zu beachten. Bei der Nutzung der GPIO's mit digitalem Eingang muss man je nach Beschaltung Maßnahmen gegen einen Hardware-Fehler im RP2350 (GPIO-Bug E9) vorsehen. Beim Umschalten zwischen logisch 0 und 1 durchläuft der Signalpegel einen undefinierten Bereich, der weder 0 noch 1 ist. Die offizielle Empfehlung ist, einen externen Widerstand von maximal 8,2 kOhm oder kleiner als Pulldown-Widerstand zu verwenden. Die Abbildung zeigt die grundsätzliche Beschaltung mit Pulldown bzw. Pullup Widerständen.


Ich habe in meinem Test einen externen 10 kOhm Widerstand zwischen dem Sensorausgang und der Masse geschaltet, wie die untere Abbildung zeigt. Im Quellcode ist für den Eingang GP22 dann noch ein Pullup definiert.


Im unteren Kasten können Sie den Quellcode sehen:

  
  
1  import time
2  import board
3  import digitalio
4
5  # Setup digital inputs for PIR sensor and LED:
6  pir = digitalio.DigitalInOut(board.GP22)
7  pir.direction = digitalio.Direction.INPUT
8  pir.pull = digitalio.Pull.UP
9  led = digitalio.DigitalInOut(board.LED)
10 led.direction = digitalio.Direction.OUTPUT
11 led.value = False
12
13 wait = time.monotonic()
14
15 while True:
16     pir_value = pir.value
17     if pir_value:
18         led.value = True
19         wait = time.monotonic()
20     if int(time.monotonic() - wait) >= 5:
21         led.value = False

Zur Nutzung des PIR-Sensors wird keine extra Bibliothek benötigt. In den Zeilen 5 bis 8 wird nur der PIR-Sensor initialisiert und in den Zeilen 9 bis 11 die Onboard-LED. Wird das Programm gestartet, wird die Onboard-LED ausgeschaltet. Wenn eine Bewegung vom PIR-Sensor registriert wird, erhält pir.value den Wert True und die LED geht an. Sobald keine Bewegung mehr registriert wird, geht der Wert pir.value wieder auf False. Danach bleibt die LED noch für 5 Sekunden an und schaltet dann ab.



Viel Spass und Erfolg beim Ausprobieren.