Dsd Report
Dsd Report
By
April 2025
1
CONTENTS
Declaration.....................................................................................................................................................1
Abstract.........................................................................................................................................................2
Acknowledgements.......................................................................................................................................3
List of Figures...............................................................................................................................................4
1. Introduction................................................................................................................................................4
2. Literature Survey........................................................................................................................................6
3. Methodology ................................................................................................................................................8
4. Implementation............................................................................................................................................. 10
2
4.2. Component Wiring and Placement.......................................................................................................10
9. Bibliography................................................................................................................................................20
3
DECLARATION
We hereby declare that the report titled Digital Voting System submitted by us to the School of
Electronics Engineering, Vellore Institute of Technology, Chennai in partial fulfilment of the
requirements for the award of Digital Assignment of Digital System Design in Electronics and
Communication Engineering is a bona-fide record of the work carried out by us under the supervision
of Prof. Girja Shankar Sahu. We further declare that the work reported in this report, has not been
submitted and will not be submitted, either in part or in full, for the award of any other degree or
diploma of this institute or of any other institute or University.
Sign:
Name:
Reg. No.:
Sign:
Name:
Reg. No.:
Sign:
Name:
Reg. No.:
DATE- 16/04/2025
4
ABSTRACT
5
ACKNOWLEDGEMENT
We would like to express our heartfelt gratitude to our project guide, Mr. Girja Shankar,
Assistant Professor, School of Electronics Engineering, VIT Chennai, for his continuous
support, insightful suggestions, and patient guidance throughout the development of our
project. His encouragement and expertise have been instrumental in shaping the outcome of
our work.
We extend our sincere thanks to Dr. Ravi Sankar A, Dean, Dr. Reena Monica, Associate
Dean (Academics), and Dr. John Sahaya Rani Alex, Associate Dean (Research), School of
Electronics Engineering, VIT Chennai, for providing with the necessary infrastructure and
academic environment that enabled us to carry out this project smoothly.
We are also thankful to Dr. Mohanaprasad K, Head of the Department, for his
encouragement and support at every stage of the project.
Our sincere thanks to all the faculty members of School of Electronics Engineering for their
valuable teaching and consistent encouragement throughout our academic journey. Finally,
we would like to acknowledge the unwavering support of our parents, family, and friends,
who have stood by us throughout this journey and motivated us to pursue excellence at every
step.
6
CHAPTER 1
1. INTRODUCTION
Key motivations:
To reduce errors associated with manual vote counting.
To demonstrate real-time digital voting using a microcontroller.
To promote hands-on learning of embedded systems and digital design.
To implement a system with vote verification and simple user interaction.
7
The design can be expanded with additional features such as RFID verification, wireless
modules, or database integration for larger and more secure setups.
8
9
CHAPTER 2
2. LITERATURE SURVEY
The evolution of electronic voting systems has been fueled by the need for secure, efficient,
and error-free polling methods. Various technologies and architectures have been proposed
and implemented over the years, ranging from simple button-based systems to biometric and
internet-enabled solutions. This chapter presents a survey of existing methods and
technologies relevant to the design of a digital voting system using Arduino.
Key observations:
Early microcontroller-based voting systems used manual switches and 7-segment
displays.
Recent academic projects have adopted Arduino and Raspberry Pi for greater
flexibility and ease of programming.
LCD displays have largely replaced older LED systems due to their readability and
I2C compatibility.
Advantages:
Easy to implement and test.
Low cost and low power requirements.
Reliable under controlled environments.
Limitations:
Vulnerable to multiple votes by the same person unless further authentication is
integrated.
Limited scalability.
10
2.3 Display and Feedback Technologies
Providing real-time feedback to users is crucial for system transparency. LCD displays
(especially I2C-based 16x2 LCDs) are widely used for this purpose.
Literature trends:
Use of LCDs over 7-segment displays for enhanced readability.
I2C protocol reduces pin usage on the microcontroller.
Some systems integrate audio feedback or LED indicators for confirmation of vote
submission.
Despite these limitations, such systems serve as a vital foundation for understanding how
electronic voting infrastructure can be designed, tested, and improved.
11
CHAPTER 3
3. METHODOLOGY
This chapter outlines the systematic approach adopted in designing and developing the
Arduino-based digital voting system. The methodology focuses on the integration of
hardware components with software logic to achieve accurate vote counting, result display,
and reset functionalities using a simple user interface.
12
3.3 Software Components
The software is written in Embedded C using the Arduino IDE. The logic handles input from
buttons, controls output to the LCD, and manages time-sensitive tasks like detecting a
double-click for the reset operation.
Core software functionalities:
Vote tracking using global counters.
Double-click detection using millis() function and timing logic.
Reset function that clears all vote data.
Real-time display updates after every input.
13
CHAPTER 4
4. IMPLEMENTATION
The implementation phase involves translating the proposed methodology into a functional
prototype using appropriate hardware connections and embedded code. This chapter explains
the physical setup, component integration, and software deployment needed to achieve the
desired functionality of the voting system.
14
Result and Reset Phase:
A single press of the result button displays the winner (or indicates a tie).
A double press within a short time span (400 ms) resets all votes and reinitializes the
display.
This implementation bridges the design concept and working prototype, establishing a
foundation for testing and deployment. The next chapter will walk through the construction
and detailed working of this system.
15
CHAPTER 5
16
5.3 Flow Chart
17
5.4 Circuit Diagram
The circuit consists of:
Arduino UNO R3
5 Push Buttons
I2C LCD (16x2)
18
5.5 Truth Table
19
CHAPTER-6
6. CODE BASE
The digital voting system is driven by an embedded Arduino code that handles input
detection, vote counting, LCD output, result logic, and reset functionality. This chapter
provides an organized breakdown of the core code segments used to operate the system.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
void setup() {
lcd.init();
lcd.backlight();
pinMode(BUTTON_A, INPUT_PULLUP);
pinMode(BUTTON_B, INPUT_PULLUP);
pinMode(BUTTON_C, INPUT_PULLUP);
pinMode(BUTTON_D, INPUT_PULLUP);
pinMode(BUTTON_RESULT, INPUT_PULLUP);
lcd.print("Voting System");
lcd.setCursor(0, 1);
lcd.print("Min 5 Votes Needed");
delay(2000);
20
updateDisplay();
}
void loop() {
checkButton(BUTTON_A, votesA);
checkButton(BUTTON_B, votesB);
checkButton(BUTTON_C, votesC);
checkButton(BUTTON_D, votesD);
handleResultButton();
}
void handleResultButton() {
static bool buttonWasPressed = false;
if (digitalRead(BUTTON_RESULT) == LOW) {
if (!buttonWasPressed) {
buttonWasPressed = true;
unsigned long now = millis();
resetVotes();
waitingForSecondClick = false;
} else {
waitingForSecondClick = true;
lastClickTime = now;
}
}
} else {
if (buttonWasPressed) {
buttonWasPressed = false;
}
21
waitingForSecondClick = false;
if (totalVotes >= 5) {
calculateResult();
} else {
lcd.clear();
lcd.print("Need ");
lcd.print(5 - totalVotes);
lcd.print(" more votes");
delay(2000);
updateDisplay();
}
}
}
}
void updateDisplay() {
lcd.clear();
lcd.print("A:");
lcd.print(votesA);
lcd.print(" B:");
lcd.print(votesB);
lcd.setCursor(0, 1);
lcd.print("C:");
lcd.print(votesC);
lcd.print(" D:");
lcd.print(votesD);
}
void calculateResult() {
lcd.clear();
if (winners.length() > 2) {
lcd.print("Tie Between:");
lcd.setCursor(0, 1);
lcd.print(winners);
} else {
lcd.print("Winner: ");
22
lcd.print(winners);
lcd.setCursor(0, 1);
lcd.print("Votes: ");
lcd.print(maxVotes);
}
delay(5000);
updateDisplay();
}
void resetVotes() {
votesA = votesB = votesC = votesD = totalVotes = 0;
lcd.clear();
lcd.print("Votes Reset");
delay(2000);
updateDisplay();
}
This structured and modular code ensures the system is both scalable and maintainable. In the
following chapter, we will evaluate the system’s performance and discuss observations during
testing.
23
CHAPTER-7
After constructing the prototype and uploading the Arduino code, the voting system was
rigorously tested under various scenarios to validate its functionality. The tests covered vote
registration, LCD output, result display accuracy, and the reset mechanism using a double-
click.
This chapter confirms that the voting system performs reliably under all expected scenarios.
It is user-friendly, responsive, and effective for demonstrating digital voting concepts.
24
7.2 Output Screenshots
25
CHAPTER 8
Future Scope
To enhance the functionality and real-world applicability of the system, several
improvements can be considered in future versions:
Voter Authentication: Integration of RFID or biometric verification modules to
ensure only authorized users can vote.
Connectivity: Use of Wi-Fi or Bluetooth modules to enable real-time result
transmission to a central server or dashboard.
Data Logging: Incorporating SD card or cloud-based storage for maintaining voting
records securely.
AI for Fraud Detection: Use of basic AI models to detect and flag suspicious voting
patterns.
Servo-Driven Booth Gate: Automating access control to the voting terminal using a
servo motor upon successful vote casting.
Touchscreen Interface: Replacing push buttons with a touch display for enhanced
user interaction and compact design.
These upgrades would not only modernize the system but also make it suitable for
deployment in institutional elections, polling simulations, and educational environments for
demonstrating secure voting mechanisms.
26
CHAPTER-9
9. BIBLIOGRAPHY
1. M. Banzi and M. Shiloh, Getting Started with Arduino, 3rd ed., Maker Media, 2014.
2. S. Monk, Programming Arduino: Getting Started with Sketches, 2nd ed., McGraw-Hill
Education, 2016.
3. R. Rajesh and S. Srinivasan, “Microcontroller-based Electronic Voting Machine,”
International Journal of Engineering Research and Applications, vol. 4, no. 6, pp. 39–
43, Jun. 2014.
4. P. Bhavsar, K. Patel, and R. Prajapati, “Secure and Transparent Electronic Voting
Machine Using Arduino,” International Journal of Computer Applications, vol. 162,
no. 5, pp. 1–4, Mar. 2017.
5. T. S. Lim, S. C. Sim, and M. M. Mansor, “RFID Based Attendance System,” 2009
IEEE Symposium on Industrial Electronics and Applications, Kuala Lumpur, 2009, pp.
778–782.
6. A. Kumar and S. Gupta, “An Efficient IoT-Based Smart Voting System,” International
Journal of Scientific & Engineering Research, vol. 10, no. 5, pp. 1005–1009, May
2019.
27