PIR sensor always reading high | multiple tests

hi all

i'm following this adafruit tutorial with the same sensor:

the problem is the LED stays active the whole time, even when I cover it with a black box.

I've also tried using the sensor with LED directly on the arduino, it always stays lit, outputting 'high' in the serial monitor.

This is the second PIR sensor I am testing with the same result.

what am I doing wrong?

I assume you have the PIR sensor with two orange trimpots (you should have posted a link to the sensor).
Turn the 'time' pot fully anticlockwise, and leave it there.
Fully clockwise could 'lock' the sensor for up to 7 minutes, and it will re-trigger with the slightest movement.
Any 'delay' should be done in software.
Leave the 'sensitivity' pot in the middle (it does NOT adjust sensitivity).
The 220ohm resistor is ok, but not really needed. There is already a 1k2 or 1k5 series resistor on the board.

Thanks for the reply, I adjusted the two pots and removed the resistor but it didn't make a difference.

I'm following the instructions here, which dont require software:

"Once you have the breadboard wired up, insert batteries and wait 30-60 seconds for the PIR to 'stabilize'. During that time the LED may blink a little. Wait until the LED is off and then move around in front of it, waving a hand, etc, to see the LED light up!"

The LED stays lit and never turns off, even with a black box over.

Here is the sensor I am using:


Did you wait 10minutes (walk out of the room).
Is there nothing else in the room (hot radiator, pets).
These sensors are very sensitive.

P.S. the 'time' pot on the Adafruit site is adjusted right, but the 'sensitivity' pot is not.
It should be in the middle.
Sensitivity is the time it takes to fire, thus reducing false alarms.
Not 'distance sensitivity'.

I tried waiting on it but no luck.

I left it in the bathroom (complete darkness) for 20 minutes and the LED was still glowing.

Suggestions on how to troubleshoot?

I assume you read about the retrigger jumper settings on the Adafruit site.
Out of ideas if that does not help.

Note the sensor detects heat, not light, so a dark room does not prevent the sensor from triggering. Point the sensor toward a wall that does not have windows or doors. And covering it with box might also help. Direct sunlight or very bright lights can create false triggers.

RF from an ESP8266 or a Raspberry Pi can also create false triggers. Make sure the sensor is at least a couple of feet away from any WiFi or Bluetooth device.

The following is from the Adafruit product page.

PIR sensors and the Raspberry Pi 3 sometimes don't get along - if you're having false trigger reports, make sure the PIR Sensor is far away from the Pi 3

Thanks gdsports -- will attempt the wall approach

@Wawa Leo:
Shouldn't the battery test work before adjusting retrigger settings?

Update for future readers: I bought a replacement sensor and the issue has been resolved.

Resurrecting this post to talk about how I solved the false positive triggers from (probably) RF interference with HC-SR501 PIR sensors and a NodeMCU 1.0 board without having to add more components.

On the NodeMCU 1.0 board, I connected the OUTPUT from the HC-SR501 to input D0 and set it the pin to INPUT_PULLDOWN_16 in my sketch. The builtin pulldown resistor was enough to stop the false triggers.

I attached a screenshot of my Home Assistant status log for the sensor. It was staying active, and adjusting the sensitivity only caused it go inactive for a minute before retriggering. I was considering rewiring it with an external resistor but then tried using the internal pulldown in D0, and at that point it began working correctly.

The drawback of this fix with a NodeMCU 1.0 board is that when the sensor is idle, it will turn on the on-board blue LED. Not a big deal for me, but something to keep in mind. Boards like the ESP32 that have onboard software controlled pulldown resistors on the other GPIO pins would work.

Could you please post the final code? Thanks in advance