0
votes

I have Arduino-UNO. My code is given below. Whenever I run the program, the PIR sensor triggers false highs. But, when the sensor and the jump wires are kept fixed at a point without moving, it reads perfectly.

int led = 13;
int pin = 2;

int value = 0;
int pirState = LOW;

void setup() {
 pinMode(led, OUTPUT);
 pinMode(pin, INPUT);
 Serial.begin(9600);
}

void loop() {

  value = digitalRead(pin);

  if (value == HIGH) {
    digitalWrite(led, HIGH);

  if (pirState == LOW) {
    Serial.println("Motion Detected!");
    pirState = HIGH;
    }
  }else{
    digitalWrite(led, LOW);

if(pirState == HIGH){
  Serial.println("Motion Ended!");
  pirState = LOW;
  }
 }
}

Here is my circuit: picture of the circuit

1
Besides the answer given, I would recommend always putting a 100 Ω resistor in series with an LED to further limit the current through the LED, taken from the chip output. I imagine the main risk is breaking the chip or LED through overheating.mmixLinus

1 Answers

0
votes

That sounds like you have a bad connection somewhere in the wiring between the Arduino and the sensor module.

Check the wiring, or use different wires, to make sure the wiring makes proper contact at all connections.