Automatic Car Parking System: A Mini Project Report Submitted by
Automatic Car Parking System: A Mini Project Report Submitted by
Automatic Car Parking System: A Mini Project Report Submitted by
SYSTEM
A MINI PROJECT REPORT
Submitted by
ASHOK 11E108
PREM KISHORE M. 11E143
RAJAPRASATH 11E147
RAMZAN SADIQ M.M. 11E151
ACKNOWLEDGEMENT:
Before we get into the thick of things, we present out
wholehearted compliments, with higher regards and warm thanks to one
and all, who were the bone behind the sinew of this project. We all give
glory and honour to Almighty God whose belongings and help made this
endeavour a success.
We have great pleasure to convey our gratitude to
Dr. RUDRAMOORTHY, Principal, PSG college of Technology for
permitting to do the mini project.
We express our heartiest gratitude and respectful regards to
Dr. P. NAVANEETHAN, the Head of the Department of EEE, PSG
college of Technology, for his support and encouragement while doing
the mini project.
We express our profound sense of gratitude to our internal
guide Dr. R. NEELAVENI, Associate Professor of EEE department
for her valuable guidance, constructive criticism and consistent
enthusiastic interest during the course of investigation and writing of
manuscript that led this work to its successful completion.
We regard our sincere thanks to the technical staff who
helped us during the project and made our project successful.
Last but not the least, we did like to express our special
thanks to our Parents and friends for their support and constant
encouragement during the project work.
CONTENTS
ABSTRACT
INTRODUCTION
BLOCK DIAGRAM
COMPONENTS REQUIRED
CIRCUIT DIAGRAM
HARDWARE DESCRIPTION
SOFTWARE
FUTURE SCOPE
REFERENCES
ABSTRACT
The Project Automatic Car Parking System using AT89C51
Microcontroller is an interesting project which uses Intel 8051
microcontroller as its brain. The project is designed for car parking.
The aim of this project is to atomize the facility of car parking.
LCD is provided to display the information about the total number of
cars that can be parked and the place free for parking. Two IR TX-RX
pairs are used in this project to identify the entry or exit of the cars
into/out of park. These two IR TX-RX pairs are arranged either side of
the gate. The TX and RX are arranged face to face across the road so
that the RX should get IR signal continuously.
Whenever the mains are switched on, the LCD displays the
message, parking space for 10 vehicles. The number 10 indicates the
maximum capacity of park in this project. Whenever a car comes in
front of the gate, the IR signal gets disturbed and the microcontroller
will open the gate by rotating the stepper motor. The gate will be closed
only after the car leaves the second IR pair since the microcontroller
should know whether the car left the gate or not. Now the
microcontroller decrements the value of the count and displays it on
LCD. In the similar way, the microcontroller increments the count
whenever the car leaves the park. And this count will be displayed in the
LCD display.
INTRODUCTION
Population of Indias six major metropolises increased by
about 1.9 times during 1981 to 2001, the number of motor vehicles went
up by over 7.75 times during the same period. Presently demand for cars
going up at the rate of 15% per annum. Presently approximately 15 lakhs
cars are being sold every year. Cars being parked on roads cause traffic
congestion and pollution. Parking is one of the major concerns in terms
of space occupation in these places. It can be broadly classified into two
categories: On street and off- street. On street parking results in traffic
congestion and therefore off street parking facility should be given more
importance. But, we dont have enough space to construct parking
facilities.
The only solution to this problem is multi-storey parking
system. This can be effectively implemented using Automatic car
parking system.
Car parking lots in buildings are usually managed manually on
the space available advanced system are now giving way to automated
car parking systems, which are cost-effective and also reduce waiting
time for cars.
Using a programmed microcontroller, with photo interruption as
sensor input can be used to output a command to rotate a motor through
motor driver IC in clockwise and anti-clockwise to operate the entry
boom. Motor driver IC L293d is used for the motor while a 16 X2
alphanumerical line LCD display gives the status.
BLOCK DIAGRAM
IR Sensors
Regulated
Power Supply
8051
Microcontroll
er
Motor
Driver
LCD
Driver
COMPONENTS REQUIRED
AT89C51 MICROCONTROLLER
LM293D MOTOR DRIVER IC
16X2 ALPHANUMERICAL LCD
IR LED (2)
TSOP 1738 IR RECEIVER (2)
555 TIMER (4)
DC MOTOR
CAPACITORS 33pF (2)
RESISTORS 10K OHM (8)
CIRCUIT DIAGRAM
Pin
No:
1
2
Name Function
VSS
3
4
5
6
7
8
9
10
11
12
13
14
15
16
VEE
RS
R/W
E
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
LED+
LED-
Contrast adjustment
Register selection
Read or write
Enable
Data
Data
Data
Data
Data
Data
Data
Data
Back light LED+
Back light LEDVEE pin is meant for adjusting the contrast of the LCD
display and the contrast can be adjusted by varying the voltage at this
pin. This is done by connecting one end of a POT to the Vcc (5V), other
end to the Ground and connecting the centre terminal (wiper) of the POT
to the VEE pin.
The JHD162A has two built in registers namely data
register and command register. Data register is for placing the data to be
displayed, and the command register is to place the commands. The
162 LCD module has a set of commands each meant for doing a
particular job with the display. High logic at the RS pin will select the
data register and Low logic at the RS pin will select the command
register. If we make the RS pin high and the put a data in the 8 bit data
line (DB0 to DB7), the LCD module will recognize it as a data to be
displayed. If we make RS pin low and put a data on the data line, the
module will recognize it as a command.
R/W pin is meant for selecting between read and write
modes. High level at this pin enables read mode and low level at this pin
enables write mode.
P1= 0xFF;
e=1;
RW=0;
Lcd8_Init();
Lcd8_Set_Cursor(1,1);
Lcd8_Write_String("SWIFT Automatic");
Lcd8_Set_Cursor(2,2);
Lcd8_Write_String("Parking System");
Lcd_Delay(3000);
Lcd8_Clear();
Lcd8_Set_Cursor(1,1);
Lcd8_Write_String("No.of free slots");
Lcd8_Set_Cursor(2,7);
Lcd8_Write_Char('1');
Lcd8_Set_Cursor(2,8);
Lcd8_Write_Char('0');
while(1)
{
while(i1==1)
{
c=0;
o1=1;
o2=0;
MSdelay();
while(i2==1)
{
o1=0;
o2=0;
MSdelay();
if(i1==0)
{
o1=0;
o2=1;
MSdelay();
if(c==0)
{
if(count<=10) count++;
c=1;
display(count);
}
}
}
}
while(i2==1)
{
c=0;
e=1;
o1=1;
o2=0;
MSdelay();
while(i1==1)
{
o1=0;
o2=0;
MSdelay();
if(i2==0)
{
o1=0;
o2=1;
MSdelay();
if(c==0)
{
if(count>0) count--;
c=1;
display(count);
}
}
}
}
if(i1==i2)
{
o1=o2=0;
}
if(count == 10)
e=0;
else
e=1;
}
}
void MSdelay()
{
TMOD=0x01;
TH0=0xFA;
TL0=0x66;
TR0=1;
while(TF0==0);
TR0=0;
TF0=0;
}
void display(unsigned char c)
{
Lcd8_Clear();
//Lcd8_Ready();
Lcd8_Set_Cursor(1,1);
Lcd8_Write_String("No.of free slots");
Lcd8_Set_Cursor(2,7);
switch(c)
{
case 0: Lcd8_Write_Char('1');
Lcd8_Cmd(0x14);
Lcd8_Write_Char('0');
break;
case 1: Lcd8_Write_Char('9');break;
case 2: Lcd8_Write_Char('8');break;
case 3: Lcd8_Write_Char('7');break;
case 4: Lcd8_Write_Char('6');break;
case 5: Lcd8_Write_Char('5');break;
case 6: Lcd8_Write_Char('4');break;
case 7: Lcd8_Write_Char('3');break;
case 8: Lcd8_Write_Char('2');break;
case 9: Lcd8_Write_Char('1');break;
case 10: Lcd8_Clear();
Lcd8_Set_Cursor(1,4);
Lcd8_Write_String("NO SPACE");
Lcd8_Set_Cursor(2,5);
Lcd8_Write_String("AVAILABLE!");
break;
}
Lcd_Delay(300);
}
void Lcd8_Ready()
{
D7 = 1;
RS = 0;
RW = 1;
while(D7==1)
{
EN=0;
MSdelay();
EN=1;
}
return;
}
Lcd.h HEADER FILE:
if(a & 2)
D1 = 1;
else
D1 = 0;
if(a & 4)
D2 = 1;
else
D2 = 0;
if(a & 8)
D3 = 1;
else
D3 = 0;
if(a & 16)
D4 = 1;
else
D4 = 0;
if(a & 32)
D5 = 1;
else
D5 = 0;
if(a & 64)
D6 = 1;
else
D6 = 0;
if(a &
128)
D7 = 1;
else
D7 = 0;
}
void Lcd8_Cmd(char a)
{
RS = 0;
EN = 1; // => RS = 0
Lcd8_Port(a);
//Data transfer
Lcd_Delay(5);
EN = 0;
Lcd_Delay(5);
EN = 1;
// => E = 0
}
Lcd8_Clear()
{
Lcd8_Cmd(1);
}
void Lcd8_Set_Cursor(char a, char b)
{
if(a == 1)
Lcd8_Cmd(0x80 + b);
else if(a == 2)
Lcd8_Cmd(0xC0 + b);
}
void Lcd8_Init()
{
Lcd8_Port(0x00);
RS = 0;
Lcd_Delay(200);
///////////// Reset process from datasheet /////////
Lcd8_Cmd(0x30);
Lcd_Delay(50);
Lcd8_Cmd(0x30);
Lcd_Delay(110);
Lcd8_Cmd(0x30);
/////////////////////////////////////////////////////
Lcd8_Cmd(0x38); //function set
Lcd8_Cmd(0x0C); //display on,cursor off,blink off
Lcd8_Cmd(0x01); //clear display
Lcd8_Cmd(0x06); //entry mode, set increment
}
void Lcd8_Write_Char(char a)
{
RS = 1;
EN = 1; // => RS = 1
Lcd8_Port(a);
//Data transfer
//EN = 1;
// => E = 1
Lcd_Delay(5);
EN = 0;
Lcd_Delay(5);
EN = 1;
// => E = 04
}
void Lcd8_Write_String(char *a)
{
int i;
for(i=0;a[i]!='\0';i++)
Lcd8_Write_Char(a[i]);
}
FUTURE SCOPE:
Implementation of this project helps the car drivers to know
which floor is free to park his car and the no. of empty slots in that floor.
And when this idea is expanded, it can also sense the position of free slot
in the parking lot. By implementing this system large amount of space,
time and money can be saved. Space is effectively utilized at
BIBLIOGRAPHY
1.