. Car Parking System Using Arduino
Car Parking System Using Arduino
Car Parking System Using Arduino

Car Parking System Using Arduino

In this article, we will explore creating a car parking system using an Arduino microcontroller board, an I2C 20×4 LCD, an MG955 servo motor, and an IR sensor. The parking system will help automate the car parking process by providing real-time information and guiding the driver through the parking space.

We will discuss the components used, their functionalities, and how they work together to create an efficient parking system.

Components Needed

20x4 LCD Display

MG995 Servo Motor

9V Power Supply

Circuit Diagram
  • Connect the VCC and GND pins of the IR sensors to the 5V and GND pins of the Arduino board, respectively.
  • Connect the signal pins of the IR sensors (ir_enter, ir_back, ir_car1 to ir_car4) to any available digital input pins on the Arduino ( pins 2, 4, 5, 6, 7, 8).
  • Connect the signal wire of the servo motor to a digital output pin on the Arduino (pin 3).
  • Connect the SDA and SCL pins of the LCD module to the corresponding SDA and SCL pins on the Arduino (A4 and A5 for most Arduino boards).
  • Connect the VCC and GND pins of the LCD module to the 5V and GND pins of the Arduino board, respectively.

Once the circuit connections are made, you can upload the provided code to the Arduino board using the Arduino IDE. The code initializes the sensors, servo motor, and LCD in the setup() function. The loop() function continuously reads the sensor inputs, updates the LCD, and controls the servo motor based on the sensor readings.

Source Code

just flow the image and Install the liquid crystal i2c library

//https://justdoelectronics.com //https://www.youtube.com/@JustDoElectronics LiquidCrystal_I2C lcd ( 0x27 , 20 , 4 ) ; Servo myservo ; #define ir_enter 2 #define ir_back 4 #define ir_car1 5 #define ir_car2 6 #define ir_car3 7 #define ir_car4 8 int S1 = 0 , S2 = 0 , S3 = 0 , S4 = 0 ; int flag1 = 0 , flag2 = 0 ; int slot = 4 ; void setup ( ) < Serial . begin ( 9600 ) ; pinMode ( ir_car1 , INPUT ) ; pinMode ( ir_car2 , INPUT ) ; pinMode ( ir_car3 , INPUT ) ; pinMode ( ir_car4 , INPUT ) ; pinMode ( ir_enter , INPUT ) ; pinMode ( ir_back , INPUT ) ; myservo . attach ( 3 ) ; myservo . write ( 90 ) ; lcd . backlight ( ) ; lcd . setCursor ( 0 , 1 ) ; lcd . print ( " Hi Welcome To " ) ; lcd . setCursor ( 0 , 2 ) ; lcd . print ( " JustDoElectronics" ) ; delay ( 5000 ) ; lcd . clear ( ) ; lcd . setCursor ( 0 , 0 ) ; lcd . print ( " Today's Project " ) ; lcd . setCursor ( 0 , 1 ) ; lcd . print ( " Car Parking " ) ; lcd . setCursor ( 0 , 2 ) ; lcd . print ( " System " ) ; delay ( 5000 ) ; lcd . clear ( ) ; Read_Sensor ( ) ; int total = S1 + S2 + S3 + S4 ; slot = slot - total ; Read_Sensor ( ) ; lcd . setCursor ( 0 , 0 ) ; lcd . print ( " Available Slot: " ) ; lcd . print ( slot ) ; lcd . print ( " " ) ; lcd . setCursor ( 0 , 1 ) ; lcd . print ( "S1:Full " ) ; lcd . print ( "S1:Empty" ) ; lcd . setCursor ( 11 , 1 ) ; lcd . print ( "S2:Full " ) ; lcd . print ( "S2:Empty" ) ; lcd . setCursor ( 0 , 2 ) ; lcd . print ( "S3:Full " ) ; lcd . print ( "S3:Empty" ) ; lcd . setCursor ( 11 , 2 ) ; lcd . print ( "S4:Full " ) ; lcd . print ( "S4:Empty" ) ; if ( digitalRead ( ir_enter ) == 0 && flag1 == 0 ) < if ( slot > 0 ) < if ( flag2 == 0 ) < myservo . write ( 180 ) ; slot = slot - 1 ; lcd . setCursor ( 0 , 0 ) ; lcd . print ( " Sorry Parking Full " ) ; delay ( 1500 ) ; if ( digitalRead ( ir_back ) == 0 && flag2 == 0 ) < if ( flag1 == 0 ) < myservo . write ( 180 ) ; slot = slot + 1 ; if ( flag1 == 1 && flag2 == 1 ) < delay ( 1000 ) ; myservo . write ( 90 ) ; flag1 = 0 , flag2 = 0 ; void Read_Sensor ( ) < S1 = 0 , S2 = 0 , S3 = 0 , S4 = 0 ; if ( digitalRead ( ir_car1 ) == 0 ) < if ( digitalRead ( ir_car2 ) == 0 ) < if ( digitalRead ( ir_car3 ) == 0 ) < if ( digitalRead ( ir_car4 ) == 0 ) < Video Conclusion
  • With further enhancements, this system can be expanded to handle multiple parking spaces, integrate with mobile applications, or incorporate advanced features like automatic payment systems.

More Arduino Tutorial

1 36,125 1 minute read Prateek

Hi, Prateek Here I’m interested in Electronics That's why I Make Soo Many Projects, I’m currently Pursuing M Tech.. if you Relay Like To My Blog Plz Comment Below. Thanks To All Electronics Lover. ❤️

DTMF Home Automation Using Arduino And GSM Vehicle Location Tracker Using Arduino One Comment Rathva Gokulbhai Mohanbhai says: Leave a Reply Check Also ESP32 Tutorial PCB Design Recent Posts Last Modified Posts Popular Posts Categories
  • Arduino Projects 74
  • Esp8266 Projects 22
  • Esp32 Projects 17
  • Sensors 17
  • Articles 8
  • Raspberry Pi Projects 4
  • ESP32 Cam Projects 3
  • Raspberry Pi Pico W Projects 2
Related Articles Quectel EC200U 4G GSM Module GPS Tracker using Arduino | Sim800l Automatic grass cutting machine using arduino Solar Tracking System Using Arduino Categories
  • Arduino Projects 74
  • Esp8266 Projects 22
  • Esp32 Projects 17
  • Sensors 17
  • Articles 8
  • Raspberry Pi Projects 4
  • ESP32 Cam Projects 3
  • Raspberry Pi Pico W Projects 2

Welcome to Just Electronics, a community of electronics engineers who are passionate about their work and Research New Projects.

Subscribe to our channel © Copyright 2026, All Rights Reserved | JustDoElectronics
  • Home
  • Articles
  • Arduino Projects
  • Esp8266 Projects
  • Esp32 Projects
    • ESP32 Cam Projects