An Arduino Uno-based Electronic Voting Machine (EVM) designed to provide a secure, cost-effective, and efficient voting solution.
The system uses push buttons for candidate selection, a 16x2 LCD display for live vote count, and LED indicators for visual confirmation. This project demonstrates how microcontroller-based systems can modernize traditional voting methods.
This project implements a mini Electronic Voting Machine prototype using Arduino Uno.
The system eliminates paper ballots and manual counting errors by automating the vote recording and result declaration process. It is suitable for:
- School and college elections
- Community voting
- Organizational polls
- Educational demonstrations
Electronic Voting Machines (EVMs) simplify elections by replacing traditional ballot systems with electronic input and automatic counting.
This Arduino-based prototype ensures:
- Transparency
- Faster result processing
- Reduced human error
- Simple and user-friendly interface
It serves as a foundational model for understanding how real-world digital voting systems operate.
| Component | Quantity | Description |
|---|---|---|
| Arduino Uno | 1 | Main microcontroller (control unit) |
| Push Buttons | 4–5 | Candidate selection & result button |
| 16x2 LCD Display | 1 | Displays vote count & results |
| LED (Green) | 1 | Vote confirmation indicator |
| LED (Red) | 1 | Result declaration indicator |
| Resistors (220Ω / 10kΩ) | As required | Current limiting & pull-down resistors |
| Jumper Wires | As required | Circuit connections |
| Breadboard | 1 | Prototyping board |
| Power Supply (5V) | 1 | Arduino power source |
- Buttons → Arduino Pins D2–D5
- Green LED → Arduino Pin D12
- Red LED → Arduino Pin D13
- LCD → Arduino Pins 6–11
- Power → 5V & GND from Arduino
---
## ⚙️ Working Principle
- When powered ON, Arduino initializes the LCD, LEDs, and button inputs.
- LCD displays "Voting Machine" and candidate names.
- All vote counters reset to zero.
-
Each candidate has a dedicated push button.
-
When a voter presses a button:
- Arduino reads input using
digitalRead() - Corresponding vote counter increments
- Green LED blinks to confirm vote
- LCD updates vote count
- Arduino reads input using
- Code includes debouncing logic.
- Arduino waits until button is released before accepting another vote.
- Prevents multiple votes from a single press.
When the result button is pressed:
-
Red LED lights up
-
Arduino compares vote counts
-
LCD displays:
- “Candidate A Wins”
- OR “Tie Up”
- OR “No Voting” (if no votes cast)
After result display:
- Vote counters reset to zero
- LCD clears
- LEDs turn off
- System prepares for next session
- LED confirmation ensures vote registration visibility
- One vote per press ensured by software logic
- Votes stored temporarily in Arduino memory
- Reset occurs only after result declaration
- Before voting: LCD shows candidate list
- After voting: LCD shows winner or tie result
- LEDs indicate vote confirmation and result phase
(Add your result images here in GitHub)
- School & college elections
- Small-scale community voting
- Corporate board voting
- Embedded systems learning
- Prototyping advanced EVM systems
- Cost-effective and portable
- Simple and easy-to-use interface
- Faster result processing
- Reduces human counting errors
- Eco-friendly (paperless system)
- Modular design for expansion
- Suitable only for small-scale elections
- Basic security (no authentication system)
- Depends on continuous power supply
- No permanent storage of votes
- No biometric or RFID verification
- Arduino Uno as control unit
- Push-button candidate selection
- 16x2 LCD for live vote display
- LED indicators for confirmation
- Automatic result declaration
- Reset for new voting session
- Integration with RFID / Fingerprint module for voter authentication
- Add EEPROM or SD card for permanent vote storage
- Wireless monitoring using WiFi/Bluetooth
- Encrypted vote storage
- Tamper-proof casing
- Support for larger number of candidates
The Arduino-based Electronic Voting Machine successfully demonstrates a secure, transparent, and automated voting mechanism for small-scale elections.
By combining microcontroller programming, hardware interfacing, and digital vote counting, this project eliminates manual counting errors and speeds up the result declaration process.
Although basic in security features, it provides a strong foundation for developing more advanced and scalable electronic voting systems.
This working model highlights how embedded systems can modernize traditional voting processes efficiently and affordably.