To the use of AVR microcontroller.
Polling by electronic voting machines (EVMs) has become a norm during elections. Unlike paper ballot systems, EVMs are safe and reliable as these rule out the possibility of invalid voting. These are more economical and efficient too. Their compact size saves transportation costs.
Here we describe the design of an electronic voting machine based on ATmega16A microcontroller. To cast a vote, users need to press the key against the name of the candidate of their choice. The vote is automatically saved in the microcontroller, and simultaneously the LCD shows the message “Thank You.”
Download PCB and component layout PDFs:
Connect LCD1 to the PCB as shown in the figure. Now, mount all the switches (S1 through S5) and LED1 through LED5 on the front panel of this cabinet.
The software is written in ‘C’ language and compiled using Keil software. You can use any suitable software for programming the ATmega16A microcontroller. ProgISP programmer was used for programming at EFY Lab.
Assembly and testing
After assembling the circuit on the PCB, check it for proper connections. Now, burn the program (voting code.hex) into the microcontroller using the programmer. Insert the microcontroller into the IC base and connect 9V battery. LCD1 will show “press any key” message.
This circuit has provision to cast votes for three candidates as it uses switches corresponding to three candidates only (S1 for AAP, S2 for KKK and S3 for BJP). Switch S4 is pressed to calculate the results.
When you press any of switches S1 through S3, the corresponding pin of the microcontroller gets pulled up to Vcc and it operates as per the programmed logic. The LCD1 will show a “Thank you” message. The respective LED (LED1-LED3) must glow to indicate that voting is successful.
Press switch S4 to get results like the winner and its share of the votes. In case two or more parties get equal votes, press switch S4 again to get further details.
The Parts List