This project presents an Arduino-based reverse parking assistance system for older vehicles that lack modern parking sensors. It uses the Controller Area Network (CAN) protocol to enable real-time communication between two modules: a Sensor Node and a Display Node.
The system provides both visual (OLED) and auditory (buzzer) alerts based on obstacle proximity using HC-SR04 ultrasonic sensors.
- Sensor Node:
- 3 × HC-SR04 ultrasonic sensors
- Arduino UNO
- MCP2515 CAN controller
- Display Node:
- Arduino UNO
- MCP2515 CAN controller
- OLED 0.96" display
- Buzzer
Communication is done over a twisted-pair CAN Bus at 125 kbps.
- HC-SR04 sensors → Digital I/O pins
- MCP2515 (SPI):
- MOSI → D11
- MISO → D12
- SCK → D13
- CS → D10
- CAN H/L lines → twisted pair with 120Ω termination
- OLED (I2C):
- SDA → A4
- SCL → A5
- Buzzer → Digital output pin
- MCP2515 connected as above
Ensure both nodes share a common GND and 5V supply.
- Clone the repository:
git clone git@github.com:Amazing-Stardom/arduino-reverse-car-can-system.git-
Open Arduino IDE and install:
mcp_canlibraryAdafruit_SSD1306andAdafruit_GFXlibraries
-
Upload the correct sketch:
sender_node.inoto the Sensor Nodedisplay_node.inoto the Display Node
-
Power both Arduinos. The system will automatically start sending and displaying proximity data.
Display Output Example:
Breadboard Prototype:
Buzzer beeps faster as the object gets closer. OLED shows increasing vertical bars for proximity.
arduino-reverse-car-can-system/
├── Arduino_Code/
│ ├── display_node/display_node.ino
│ └── sender_node/sender_node.ino
├── img/
│ ├── figure-1.png → Block Diagram
│ ├── figure-2.jpeg to figure-6.png → Results and Setup
├── reverse-guide-system-for-automobiles-using-can-protocol.docx
└── README.md
The complete research documentation is available in:
- Code: MIT License
- Diagrams & Documentation: CC-BY 4.0
This project will be archived on Zenodo for citation. 📌 DOI link: To be added after upload


