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

evm.jpg

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

photo-collage.png.png

Components Used

  1. Arduino Nano
  2. 7 Push Buttons (for casting votes and control functions)
  3. Buzzer (for confirmation sounds)
  4. I2C LCD Display (for displaying messages and results)
  5. Breadboard (for prototyping connections)
  6. Hard Wiring (for stable connections)
  7. 1 LED (for indicating voting activity or completion


Circuit Diagram

EVM_CIRCUIT_DIGRAM.png

Pin Descriptions:

  1. Button Pins:
  2. button1 (Pin 2) → Votes for candidate A.
  3. button2 (Pin 3) → Votes for candidate B.
  4. button3 (Pin 4) → Votes for candidate C.
  5. button4 (Pin 5) → Votes for candidate D.
  6. button5 (Pin 6) → Votes for candidate E.
  7. button6 (Pin 7) → Votes for candidate F.
  8. button7 (Pin 8) → Resets all votes (Reset button).
  9. LED Pins:
  10. greenLED (Pin 9) → Indicates a successful vote confirmation.
  11. redLED (Pin 10) → Reserved for future use (e.g., error indication).
  12. I2C LCD Pins:
  13. I2C Interface:
  14. The LiquidCrystal_I2C library uses the default SDA (A4) and SCL (A5) pins for communication with the LCD module.
  15. The I2C address is set to 0x27, and the LCD size is 16x2.

Pin Modes:

  1. Inputs:
  2. 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.
  3. Outputs:
  4. LEDs (greenLED and redLED) are configured as outputs to control their ON/OFF state.

Functional Summary:

  1. 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.
  2. Reset Button (Pin 8): Resets all vote counters to zero.
  3. Green LED (Pin 9): Flashes to indicate that a vote has been successfully recorded.
  4. Red LED (Pin 10): Placeholder for potential error or feedback signals.
  5. 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:

  1. Initialization: Set up the pins for the buttons, buzzer, LCD, and LED. Initialize the I2C communication for the LCD.
  2. Voting Process:
  3. Display candidate names on the LCD.
  4. Detect button presses and increment the vote count for the corresponding candidate.
  5. Trigger the buzzer for confirmation.
  6. Briefly light up the LED when a vote is cast.
  7. Results Display:
  8. After voting ends, display the total votes for each candidate on the LCD.


Downloads

Implementation in Student Election

IMG20250122122518.jpg
IMG20250122075054_01.jpg
IMG20250201131440_01.jpg
IMG20250130163647.jpg
evm.jpg
Award winning project Electronic Voting Machine!!!!!! #sciencecompetition #creativescience

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.