Often we see visitor counters at stadium, mall, offices, class rooms etc. How they count the people and turn ON or OFF the light when nobody is inside? Today we are here with automatic room light controller project with bidirectional visitor counter by using Arduino Uno. It is very interesting project for hobbyists and students for fun as well as learning.
Requirement :
1. Arduino UNO
2. 16X2 LCD
3. IR Sensor Module x 2
4. LED
5. 220 ohm Resistance
6. 12 volt/1 A DC power supply
ARDUINO CODE:
#include<LiquidCrystal.h> // INCLUDE LCD LIBRARY
#define ir1 A0// DEFINE PIN FOR SENSOR INPUT
#define ir2 A1
int Led=12;
LiquidCrystal lcd(7,6,5,4,3,2);// PINS FOR LCD
void setup() {
pinMode(Led,OUTPUT);
pinMode(A0,INPUT);
pinMode(A1,INPUT);
lcd.begin(16,2); // BEGINNING THE LCD
lcd.clear();
lcd.print("VISITOR COUNTER");
lcd.setCursor(0,2);
lcd.print(" BY ");
delay(1000);
lcd.clear();
lcd.print("INFOTRUST");
lcd.setCursor(8,2);
lcd.print("ENGINEER");// SUBSCRIBE THE CHANNEL
delay(1000);
}
int count = 0;// VARIABLE TO COUNT THE NUMBER OF VISITOR
void loop()
{
if(digitalRead(ir1)==1)// CHECKING INPUT
{
while(digitalRead(ir1)==1)// WAITING FOR INPUT TO END
{};
count= count+1; // INCREMENT VISIT COUNT BY 1
lcd.clear();
lcd.print("No. Of Visitors:");
lcd.setCursor(0,2);
lcd.print(count);// DISPLAYING THE NUMBER OF VISITS.
delay(50);
}
else
{
lcd.clear();// CASE WHEN NO INPUT IS RECEIVED.
lcd.print("No. Of Visitors:");
lcd.setCursor(0,2);
lcd.print(count);
delay(50);
}
if (digitalRead(ir2)==1)
{
while(digitalRead(ir2)==1)
{};
count=count-1;// DECREMENT VISIT COUNT BY 1
lcd.clear();
lcd.print("No. Of Visitors:");
lcd.setCursor(0,2);
lcd.print(count);// DISPLAYING THE NUMBER OF VISITS.
delay(50);
}
else
{
lcd.clear();// CASE WHEN NO INPUT IS RECEIVED.
lcd.print("No. Of Visitors:");
lcd.setCursor(0,2);
lcd.print(count);
delay(50);
}
if (count > 0)
digitalWrite(Led,HIGH);
else
{
digitalWrite(Led,LOW);
}
}