PIR Sensor count movements


i'm an absolut newbie to microcontrollers and today I run into a problem with my PIR sensor.

Target is to activate a consumer if motion is detected. Obviously thats what a PIR is for and it works fine. Second target is to list the events in the serial monitor and here I run into a problem.

Every time a motion is detected I got three entrys in the serial monitor window (see attached jpg)

Here is the used code

int piezoPin = 4;
int pirPin = 2;
int movStatus = 0;
int movCount = 0;

void setup()
  pinMode(piezoPin, OUTPUT);
  pinMode(pirPin, INPUT); 

void loop()
  movStatus = digitalRead(pirPin); 
  if (movStatus == HIGH) 
    movCount= movCount+1;
    digitalWrite(piezoPin, HIGH);
    digitalWrite(piezoPin, LOW);

    digitalWrite(piezoPin, LOW);

So how can I manage it to get only one entry for every event?


The sketch is detecting when the PIR output is HIGH, twice a second (the 500ms delay).
You should detect when it becomes HIGH.

Look at the StateChangeDetection example in the IDE.

Worked like a charme. Thanks for the info.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.