Really fighting the inconsistency of IRA amongst different brands

Sorry for the error in the title, it should say IR. I have tried multiple Motion PIR sensors and the inconsistency is mind boggling. I just simply need 360 degree motion detection/human presence. At first, I put 4 Motion PIR in “a circle”. Sometimes it works perfectly, sometimes I have to wave my hand a million times in front of it to gain detection.

I’ve also tried the Panasonic EKMC1603112. When outputting to a serial terminal for testing, it throws thousands of “1” and its impossible to get it to rest.

So what am I missing about these sensors? Some say they have to warmup, but if so, how? I’m considering throwing more money in and just getting an Ultrasound or Radar at this point!

What is the field of view in degrees of the PIRs you have tried? If the field of view is 60 degrees you might need 6 to fully cover 360 and you may need to adjust sensitivity on each so they all match.
Post your code.

Thank you for your reply. The EKMC1603112 model has 102 degree horizontal and 92 vertical. My code is below. I've also attached a photo of my setup. As you can see, the sensor is sitting on my desk. In the final product, it will be similarly positioned. That is to say, it will be mounted on the side of an object in the center of a room, and not on the ceiling. This is just the left side.

This is from the data sheet:

int closeSensor = 31;               // choose the input pin (for PIR sensor)

int closeSensorState = LOW;             // we start, assuming no motion detected
int val = 0;                    // variable for reading the pin status
void setup() {
   pinMode(closeSensor, INPUT);     // declare sensor as input
  // pinMode(farSensor, INPUT);     // declare sensor as input
void loop(){
  val = digitalRead(closeSensor);  // read input value


 void checkCloseSensor(){

  val = digitalRead(closeSensor);  // read input value
  if (val == HIGH) {            // check if the input is HIGH
    if (closeSensorState == LOW) {
      // we have just turned on
      // We only want to print on the output change, not state
      closeSensorState = HIGH;
  } else {
    if (closeSensorState == HIGH){
      // we have just turned of
      Serial.println("No Movement");
      // We only want to print on the output change, not state
      closeSensorState = LOW;

Post a link to that datasheet.

Firstly they have optic "lens" system that is a set of prismatic sections that breaks up the image into pieces. This is because the sensors can only register change in heat radiation, not absolute heat. By breaking up the image on the sensor smooth movement of a heat source turns in to fluctuations in heat hitting the active area.

But this is all very lumpy, repeatability and accuracy cannot be achieved. If you want that you need a thermal camera, and a computer-vision system to make sense of the image.

Things that affect/confuse a PIR sensor are:

temperature difference across the scene - if this is small, its less sensitive.

size of heat source - too small and it has less effect, too large and it has less effect. You want the feature size to match the prismatic lens for strongest signal

Speed of motion. Again too fast or too slow and the sensor will be insensitive.

Not PIR but it is omnidirectional and senses motion well: RCWL-0516

Note that it may also sense motion in the room next door, or the floor above/below. It's not limited by walls.