PIR Sensor HC-SR501 ... versteh da was nicht

Hallo,

ich hab einen PIR (Bewegungs-)Sensor HC-SR501.

Ich les den Signal-Pin mit analogRead() aus und bekomm je nach Bewegung oder nicht 0 oder 750 zurück (warum auch immer).

Jetzt gibt es da zwei Potis auf dem Ding, eines für die Schaltdauer - das funktioniert, das zweite für die Sensitivität.
Aber ganz egal was ich da einstelle - sobald ich davorsitze und ganz leicht mit dem Kopf wackle geht es an. Soll das so sein ? Oder wie kann ich prüfen ob das korrekt funktioniert ?

lG
Gawan

Gawan:
ich hab einen PIR (Bewegungs-)Sensor HC-SR501.

Ich les den Signal-Pin mit analogRead() aus und bekomm je nach Bewegung oder nicht 0 oder 750 zurück (warum auch immer).

Jetzt gibt es da zwei Potis auf dem Ding, eines für die Schaltdauer - das funktioniert, das zweite für die Sensitivität.
Aber ganz egal was ich da einstelle - sobald ich davorsitze und ganz leicht mit dem Kopf wackle geht es an. Soll das so sein ? Oder wie kann ich prüfen ob das korrekt funktioniert ?

Das Teil hat einen digitalen Ausgang.

Hallo,

Du setzt dich hinter und nicht vor den Sensor. Dann reagiert er, wenn du die Hand davor hältst. So kannst du gut die Schaltdauer einstellen. Hast du eine kurze Zeit eingestellt, kannst du dich gut vom Sensor entfernen und schauen, wie er aus der Ferne reagiert und die Sensitivität justieren.

Beschreibt die Sensitivität den Erkennungsabstand ?

Ich dachte da gehts um das Ausmaß der Bewegung (d.h. Anzahl sich verändernder Bildpunkte je Zeiteinheit)

Der kennt nur Bewegung ja oder nein.
Die Sensitivitätist für die Reichweite.

Es geht um Größe der Veränderung im Blickfeld des Sensors. Eine Fingerbewegung direkt vor dem Sensor erscheint für den Sensor als größere Bewegung als ein Zappelphilipp in 5m Abstand.

Wie bereits geschrieben, die AnalogFunktion kannst du hier ausser acht lassen. Haben auch ein paar von den Modulen im Einsatz. Sx hab ich auf Mittelposition (gibt die Weite an, worauf er reagieren soll). Tx steht auf Min. Die Zeiteinstellung über einen solchen Poti ist nicht sondernlich feinjustierbar. Ich nutzte das ganze nur zum Triggern. Ich aktualisiere eine unsigned long Variable, solange der Eingang HIGH ist. Wenn dieser nun von HIGH auf LOW wechselt, lasse ich die Zeit bei mir noch um x-ms weiterlaufen (if(millis() - lastMillis < interval))

0 oder 750 zurück (warum auch immer).

Begründung:
Wenn 750 den 3,3V des Sensors entsprechen, dann sind 1023 ca 4,6V.
Das ist als Betriebsspannung voll normal, für einen an USB angeschlossenen Arduino.

Und ja, der Sensor hat laut Datenblatt einen 3,3V Ausgang.