VISITOR COUNTER
Figure 1: MICRO CONTROLLER CIRCUITRY
Figure 2: SENSING CIRCUITRY AT ENTRY AND EXIT POINT OF GATES
Abstract:
Visitor
counter is a reliable circuit that takes over the task of counting number of
persons in the room. When somebody enters into the room then the counters
incremented by one. The total number of persons inside the room is displayed on
the seven segment display module. The microcontroller does the above job it
receives the signal from the sensors, and this signals operated under the
control of software which is stored in ROM.
Application:
·
It
can be used to count the number of persons entering a hall in the up mode at
entrance gate. In the down mode it can count the number of persons leaving the
hall by decrementing the count at exit gate.
·
It
can also be used at gates of parking areas and other public places.
Components required:
S.NO.
|
COMPONENTS
|
SPECIFICATION
|
QUANTITY
|
1.
|
2
|
||
2.
|
(RX-TX
PAIR)
|
2
|
|
3.
|
TRANSISTOR
|
BC
547
|
4
|
4.
|
Op
Amp
|
LM358
|
2
|
5.
|
CAPACITOR
|
10UF
33UF
|
1
2
|
6.
|
CRYSTAL
|
11.0592
|
1
|
7.
|
RESISTOR
|
330OHM
10K
1K
|
7
6
4
|
8.
|
VOLTAGE
REGULATOR
|
7805
|
1
|
9.
|
VAR
RESISTOR
|
4.7K
10K
|
2
1
|
10.
|
COMMON
ANODE
|
4
|
|
11.
|
AT89S52
|
1
|
Working:
In this circuit, two infrared
(IR) sensor modules are used each for up and down counting, respectively.
Whenever an interruption is observed by the first IR sensor, it increments the counter value. Similarly, when
the second sensor detects an obstacle, the count is decremented. The count
value is calculated depending upon the sensors input and is displayed on a set
of four seven segment displays.
The data
pins of each 7-segment display are connected to port P2 of the
microcontroller AT89S52.
The first
four pins of port P1 (P1^0-P1^3) are connected to control pins to
enable a particular 7-segment.
P3^5 & P3^6 are
configured as input pins at which the sensors are connected.
The sensor inputs are defined as up and down selector modes
for the counter in the code. Each time the first sensor is blocked, it gives a
high signal at P3^5 and the count value gets
incremented. The value gets decremented when P3^6, connected to
second sensor, gives high input. At each step, the value of the counter is sent
to be displayed on the segments.
Program to make a visitor counter
using IR sensor and 8051 microcontroller
#include
<reg51.h>
#define
msec 1
unsigned
int num=0;
sbit
dig_ctrl_4=P1^3; //control pins of seven
segments
sbit
dig_ctrl_3=P1^2;
sbit
dig_ctrl_2=P1^1;
sbit
dig_ctrl_1=P1^0;
unsigned
int digi_val[10]={0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0x00,0x10};
unsigned
int dig_1,dig_2,dig_3,dig_4,test=0;
unsigned
char dig_disp=0;
sbit
up=P3^5; //pin to make counter count up
sbit
down=P3^6; //pin to make counter count
down
void
init() // initialize of output pins and
Timer0
{
up=down=1;
dig_ctrl_4
= 0;
dig_ctrl_3
= 0;
dig_ctrl_2
= 0;
dig_ctrl_1
= 0;
TMOD=0x01;
TL0=0xf6;
TH0=0xFf;
IE=0x82;
TR0=1;
}
void
delay() //time delay
{
TMOD=0x01;
TL0=0x36;
TH0=0xF6;
TR0=1;
while(TF0==0);
TR0=0;
TF0=0;
}
void
display() interrupt 1 // Function to
display the digits on seven segment
{
TL0=0x36;
TH0=0xf6;
P2=0xFF;
dig_ctrl_1
= dig_ctrl_3 = dig_ctrl_2 = dig_ctrl_4 = 0;
dig_disp++;
dig_disp=dig_disp%4;
switch(dig_disp)
{
case 0:
P2= digi_val[dig_1];
dig_ctrl_1 = 1;
break;
case 1:
P2= digi_val[dig_2];
dig_ctrl_2 = 1;
break;
case 2:
P2= digi_val[dig_3];
dig_ctrl_3 = 1;
break;
case 3:
P2= digi_val[dig_4];
dig_ctrl_4 = 1;
break;
}
}
void
main()
{
init();
while(1)
{ unsigned int i;
for(i=0;i<100;i++)
{
delay();
}
if(up==0&&down==1) //check if up pin is pressed
{
test++;
num=test;
dig_4=num%10;
num=num/10;
dig_3=num%10;
num=num/10;
dig_2=num%10;
dig_1=num/10;
if(test==9999)
test=0;
}
if(up==1&&down==0) //check if down pin is pressed
{
test--;
num=test;
dig_4=num%10;
num=num/10;
dig_3=num%10;
num=num/10;
dig_2=num%10;
dig_1=num/10;
if(test==0)
test=9999;
}
}
}
No comments:
Post a Comment