Smart parking with Arduino
Project Description: Smart Parking Management System
This project implements a smart parking system capable of monitoring parking spots, controlling entry and exit gates using servo motors, and providing visual feedback using LEDs and an LCD. The system leverages the 74HC165 shift register to efficiently monitor the status of 4 parking spots while using minimal Arduino pins.
Key Features
Real-Time Parking Monitoring:
- Monitors up to 4 parking spots using sensors connected to a 74HC165 shift register.
- Displays the status of parking spots on a 16x2 LCD:
X: Spot is occupied.Y: Spot is free.
Entry and Exit Control:
- Entry IR Sensor: Detects incoming cars and opens the entry gate if a spot is free.
- Exit IR Sensor: Detects outgoing cars and opens the exit gate.
LED Feedback:
- Green LED: Lights up when the gate opens for an incoming car.
- Red LED: Lights up if the parking lot is full and the entry gate cannot open.
Servo Motor Control:
- Entry Gate Servo: Opens and closes the entry gate.
- Exit Gate Servo: Opens and closes the exit gate.
Efficient Resource Usage:
- Uses a 74HC165 shift register to minimize the number of pins required to monitor parking spots.
Schematic
System Workflow
Parking Spot Monitoring:
- Sensors connected to the shift register detect whether a spot is occupied.
- The status of all spots is displayed on the 16x2 LCD.
Entry Detection:
- When a car is detected at the entry IR sensor:
- If there’s at least one free spot:
- The green LED turns on.
- The entry gate servo opens for 500 ms, allowing the car to enter.
- If all spots are full:
- The red LED turns on for 500 ms, and the gate remains closed.
- If there’s at least one free spot:
- When a car is detected at the entry IR sensor:
Exit Detection:
- When a car is detected at the exit IR sensor, the exit gate servo opens for 500 ms to allow the car to exit.
Real-Time Display:
- The LCD continuously displays the status of all parking spots.
Hardware connections
Software Explanation
Initialization:
- Initializes the LCD, servos, and shift register.
- Configures the IR sensors and LEDs as inputs/outputs.
Parking Spot Monitoring:
- Reads the statuses of parking spots from the 74HC165 shift register.
- Updates the
spots[]array and calculates the number of free spots.
Entry Control:
- If the entry IR sensor detects a car:
- The entry gate opens if there are free spots.
- If all spots are full, the red LED turns on to signal a full parking lot.
- If the entry IR sensor detects a car:
Exit Control:
- If the exit IR sensor detects a car, the exit gate opens to allow the car to leave.
LCD Update:
- Continuously displays the statuses of all parking spots on the LCD.
Shift Register Reading:
- Reads data from the 74HC165 using clock pulses to determine the occupancy of parking spots.
Full Code
Applications
- Smart Parking Lots:
- Ideal for managing entry and exit gates in a parking facility.
- IoT Integration:
- Can be expanded to send real-time parking data to an online platform.
- Scalable Parking Solutions:
- Easily expandable to handle more parking spots using additional 74HC165 shift registers.
You may also like
EmbedLab Team
Embedded systems engineer and educator. Writes weekly tutorials at EmbedLab to help beginners ship real hardware.
Related projects
Smart home project
Project Description This project is a smart environmental monitoring and parking system that integrates multiple sensors and components to perform the following tasks: Environmental Monitoring

Top 5 IoT Projects with Arduino UNO & ESP32 — Blynk, Wi-Fi & Smart Home Tutorials (2026)
The top 5 IoT projects every Arduino UNO and ESP32 maker should build in 2026 — Blynk IoT control, Wi-Fi blink, ESP-WROOM-32 dev board guide, ESP32 Proteus 8 simulation and an Arduino smart home parking system. Each pick links to the full tutorial with free Arduino IDE code, library and wiring.

Blynk IoT with Arduino UNO & ESP32 — Free Arduino IDE, Library & App Tutorial
Complete Blynk IoT tutorial for Arduino UNO and ESP32 Arduino: install the Arduino IDE, add the Blynk Arduino library, wire LEDs, LCD and sensors, and control everything from the Blynk app over Wi-Fi — a free, beginner-friendly Arduino IoT project.

Arduino UNO Blink IoT Guide — ESP32 Arduino, Blynk App & Arduino IDE Code
Complete Arduino UNO Blink IoT guide using ESP32 Arduino and the Blynk app: free Arduino IDE code, Arduino library and LED wiring — the easiest Arduino IoT project for beginners to download and try online.
Remote control of 2 LED with Arduino.
How to Control LEDs Using Blynk and Arduino Uno: A Complete Guide Controlling LEDs remotely using Blynk and an Arduino Uno is a simple yet powerful project for IoT (Internet of Things) enthusia



