Electronic Voting Machine (EVM) Using Arduino Nano
by rajkumarjha933 in Circuits > Microcontrollers
55 Views, 1 Favorites, 0 Comments
Electronic Voting Machine (EVM) Using Arduino Nano

Introduction
This documentation describes the design and implementation of an Electronic Voting Machine (EVM) using an Arduino Nano. The EVM is a simple, secure, and effective way to conduct elections, ensuring accurate and tamper-proof results. The project was successfully implemented in a student election.
Supplies

Components Used
- Arduino Nano
- 7 Push Buttons (for casting votes and control functions)
- Buzzer (for confirmation sounds)
- I2C LCD Display (for displaying messages and results)
- Breadboard (for prototyping connections)
- Hard Wiring (for stable connections)
- 1 LED (for indicating voting activity or completion
Circuit Diagram

Pin Descriptions:
- Button Pins:
- button1 (Pin 2) → Votes for candidate A.
- button2 (Pin 3) → Votes for candidate B.
- button3 (Pin 4) → Votes for candidate C.
- button4 (Pin 5) → Votes for candidate D.
- button5 (Pin 6) → Votes for candidate E.
- button6 (Pin 7) → Votes for candidate F.
- button7 (Pin 8) → Resets all votes (Reset button).
- LED Pins:
- greenLED (Pin 9) → Indicates a successful vote confirmation.
- redLED (Pin 10) → Reserved for future use (e.g., error indication).
- I2C LCD Pins:
- I2C Interface:
- The LiquidCrystal_I2C library uses the default SDA (A4) and SCL (A5) pins for communication with the LCD module.
- The I2C address is set to 0x27, and the LCD size is 16x2.
Pin Modes:
- Inputs:
- All buttons (button1 to button7) are configured as INPUT_PULLUP, meaning they use internal pull-up resistors to stay HIGH when not pressed and go LOW when pressed.
- Outputs:
- LEDs (greenLED and redLED) are configured as outputs to control their ON/OFF state.
Functional Summary:
- Voting Buttons (Pins 2–7): Each button corresponds to a unique candidate. Pressing a button increments the vote count for that candidate and triggers the green LED to confirm the vote.
- Reset Button (Pin 8): Resets all vote counters to zero.
- Green LED (Pin 9): Flashes to indicate that a vote has been successfully recorded.
- Red LED (Pin 10): Placeholder for potential error or feedback signals.
- LCD: Displays the welcome message, current vote counts, and other necessary information. It uses the I2C communication protocol.
Software Implementation
The program is written in Arduino IDE. Below is a breakdown of the functionalities:
- Initialization: Set up the pins for the buttons, buzzer, LCD, and LED. Initialize the I2C communication for the LCD.
- Voting Process:
- Display candidate names on the LCD.
- Detect button presses and increment the vote count for the corresponding candidate.
- Trigger the buzzer for confirmation.
- Briefly light up the LED when a vote is cast.
- Results Display:
- After voting ends, display the total votes for each candidate on the LCD.
Downloads
Implementation in Student Election






The EVM was set up in the voting area with each button assigned to a candidate. Students voted by pressing the corresponding button. The buzzer confirmed each vote, and the LED indicated activity. After voting concluded, the results were displayed on the LCD and recorded.