How to interfacing PIR sensor and how it work with PIC microcontroller
In this tutorial we will learn how to works PIR sensor module and how it interface with PIC16F877A microcontroller. PIR sensors are commonly used in security alarms and automatic lighting applications.
Code Explain:
You can watch the following video or read the written tutorial below.
The working principle of the PIR sensor:
A passive infrared sensor (PIR sensor) is an electronic sensor that detect infrared (IR) light radiating from human or animal body.
The module actually consists of a pyroelectric senor which generate energy when exposed to heat. That means when a human or animal body will get in the range it will detect a movement because human or animal body emits heat energy in a from of infrared radiations. PIR sensor are commonly called simply "PIR", or sometimes "PID", for "passive infrared detector". The term passive refers to the fact that PIR devices do not radiate energy for detection purposes. They work entirely by detecting infrared radiation (radiant heat) emitted by or reflected from objects.
The module also consists a specially designed cover maned Fresnel lens, which focuses the infrared signals onto the pyroelectric sensor.
The HC-SR501 sensor module :
The module has three pins Vcc, GND and Out pins. The Vcc and GND pins also powering the module and an output pin which gives the HIGH logic level if an objects is detected. Also it has two potentiometers. Ones for adjusting of the sensitivity and the other for the adjusting the time the output signal stay high when object is detected. This time can be adjusted from 0.3 seconds up to 5 minutes.
circuit schematic:
The circuit schematic is very quick simple. The PIR sensor module is connected to RD0 pin and the Lcd display is connected to PORTB of Microcontroller. Here we have used 3.3k ohm resistor for adjusting Lcd display contrast.
Micro C code:
# define PIR PORTD.RD0 // PIR module is connected RD0 pin
// LCD Module connections
sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D4 at RB2_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D7 at RB5_bit;
sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D7_Direction at TRISB5_bit;
// END lcd module connections
void main() {
Lcd_Init(); // Initialize the Lcd module
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
Lcd_Out(1,1, " PIR SENSOR "); // Lcd print text
Lcd_Out(2,1, " INTERFACING "); // Lcd print text
delay_ms(1000); // 1 second delay
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1, " Developed By ");
Lcd_Out(2,1, "MINA TECHNOLGY");
delay_ms(2000); // 2 second delay
while(1){
if(PIR==1){
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Out(1,1," Motion Detect ");
while(PIR); // wait for signal goes LOW
}
else {
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1, "Motion not detect");
while(!PIR); // wait for signal goes HIGH
}
}
}
Code Explain:
This is our simple Example code. We have wrote the code in MikroC Pro for PIC. In this project we have included Lcd Library. In the define section we have defined the PIR sensor module connections. The PIR sensor module has connected to RD0 pin. And we have defined Lcd module connections.
In the main section of the program we have defined the Lcd module. We have wrote some code for Lcd module operations.
In the main loop sections we have created a if statement for infrared radiation detect. when a human or animal body will get in the range of the sensor and it will send HIGH signal and then the statement will be true. If the condition is true then The Lcd display will show "Motion detect". Otherwise the Lcd display will show "Motion not detect".
Click the download button for source code:
This is very easy to interface pir module with microcontroller
ReplyDeleteThis comment has been removed by the author.
Delete