PCB FINAL Reoprt
PCB FINAL Reoprt
TEAM:
Electronic voting machine counter and keypad
interfacing
In this project, our goal is to create a small system that Working principle
tallies the votes in an election and presents the results
The keypad interface allows users to input their
on an LCD display. The aim is to count the number of
choices. The numbers from 1 to 9 represent the
votes automatically and also to display the results
candidates, A stands for the voting officer, B resets the
when needed
machine for simulation, and C provides the results.
The components used are When the corresponding button is pressed, the
appropriate action will take place. Initially, the officer
• Arduino Uno: The main microcontroller board
must activate the voting process, so A should be
that controls the system and processes all
pressed. When a vote is cast for any candidate, the
inputs and outputs
LED lights up and a buzzer sounds to indicate that the
• 4×4 Matrix Keypad: Used for user input, vote has been successfully recorded. To check the vote
allowing voters to select candidates and count, button C can be pressed.
access functions like reset and results
• Function: Allows voters and the voting officer • Role: Audio feedback.
to interact with the system.
• Function: Emits a beep sound to indicate a
o Keys 1–9: Each represents a successful vote, reset, or result display. This
candidate; pressing one casts a vote feedback assures users that their action has
for that candidate. been registered by the system45.
7. Breadboard (optional)
#include <LiquidCrystal_I2C.h>
pinMode(greenLedPin, OUTPUT);
}
const byte numRows = 4;
lcd.setCursor(0, 0);
byte rowPins[numRows] = {9, 8, 7, 6};
lcd.print("Voted for: ");
byte colPins[numCols] = {5, 4, 3, 2};
lcd.print(candidate);
digitalWrite(greenLedPin, HIGH);
Keypad keypad = Keypad(makeKeymap(keymap),
digitalWrite(buzzerPin, HIGH); // Buzzer ON
rowPins, colPins, numRows, numCols);
delay(500); // Buzz duration
lcd.clear();
const int greenLedPin = 11;
digitalWrite(greenLedPin, LOW);
const int buzzerPin = 12;
} else {
lcd.clear();
void setup() {
lcd.print("Wait for Officer");
lcd.init();
delay(1500);
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
} Pin specification and working:
delay(1500);
lcd.clear();
}
Function of Each Pin Picture of 3d view
The row and column pins work together to
create a matrix that
Application
• Educational Institutions: This
Arduino-based voting machine is ideal
Picture of pcb schematic for student council elections, classroom
polls, or any educational setting where a
simple, transparent voting process is
needed
• Small-Scale Elections: Suitable for local
bodies, clubs, societies, or community
groups to conduct quick and fair
elections without the complexity and
cost of traditional ballot systems
• Demonstration and Training: Useful
Picture of 2d view for demonstrating the principles of
electronic voting, automation, and
microcontroller interfacing in
workshops and academic labs
• Cost-Effective Voting Solution: It
provides a low-cost alternative to paper-
based voting, reducing the need for
manpower and minimizing errors in
vote counting
Conclusion:
• The Arduino-based electronic voting machine offers a simple, efficient, and
transparent way to conduct elections on a small scale.
• By automating vote collection and counting, it eliminates common issues found
in manual voting systems, such as counting errors and fraudulent practices The
system is user-friendly, easy to set up, and provides instant results at the press of
a button, as displayed on the LCD.
• While it is best suited for educational and small community applications, the
project demonstrates the potential of microcontroller-based solutions in
improving the reliability and speed of electoral processes.
• For larger-scale or high-security elections, additional features like biometric
authentication or blockchain integration can further enhance security and trust
in the system