PIR Motion Sensor with Chainable LED¶
This sensor allows you to sense motion, usually any human movement in its range.
Simply connect it to the Grove and upload the sketch below while connecting the RGB LED ,when the sensor senses movement in its detecting range, the sensor will output HIGH signal on its SIG pin which will set the LED on.
Specification¶
Parameter | Value/Range |
---|---|
Operating Voltage | 3Vā5V |
Operating Current(VCC = 3V) | 100uA |
Operating Current(VCC = 5V) | 150uA |
Measuring Range | 0.1 ā 6m |
Default detecting distance | 3m |
Holding Time | 1 ā 25s |
Working Wave Length | 7 ā 14um |
Detecting Angle | 120 degrees |
Wiring¶
Sketch¶
We use this library for RGB Chainable LED, while we simply use the digital read without any additional libraries for sensing the movement of the PIR motion sensor.
// Include the library of the RGB LED
#include <ChainableLED.h>
// Number of RGB LED in the chain
#define NUM_LEDS 1
// Use digital pin 2 to receive the signal from the module
#define PIR_MOTION_SENSOR 2
// Connect CI -> D4 pin and DI -> D5 pin.
// Instantiate an object of class ChainableLED taking parameters CI,DI and Number of LED in the chain.
ChainableLED leds(4, 5, NUM_LEDS);
void setup(){
SerialUSB.begin(9600);
SerialUSB.println("Starting...");
pinMode(PIR_MOTION_SENSOR, INPUT);
leds.init();
}
void turnOnLED(){
// Flash RED for 0.1 sec
leds.setColorRGB((byte)0, 255, 0, 0); // RED Color
delay(100);
}
void turnOffLED(){
// Turn the LED OFF
leds.setColorRGB((byte)0, 0, 0, 0); // BLUE Color
delay(100);
}
// Detecting motion around.
boolean isPeopleDetected(){
int sensorValue = digitalRead(PIR_MOTION_SENSOR);
if(sensorValue == HIGH) {
return true;
} else {
return false;
}
}
void loop() {
// Flash LED if motion is detected else the LED is turned off
if(isPeopleDetected())
turnOnLED();
else
turnOffLED();
}