本篇文章我们主要介绍如何使用Arduino开发板制作一款简单的智能电子投票机。该项目的基本思想是制作一种电子投票机,这将有助于消除人工投票系统和之前电子投票系统的欺诈行为。
该系统具有n个按键,其中n是政党数量。在这里,投票人将被允许继续从按钮面板中选择他们的首选候选人。然后将最终投票结果显示在LCD上,以使选民满意。最后,可以通过按结果按钮自动计算结果。
所需的组件
● Arduino UNO开发板
● 1602 LCD显示屏
● 4个按键
● 10K电位器
● 连接线
● 面包板
功能框图
在本文中,我们为参加选举的四个不同候选人使用了四个按钮。我们可以根据要求增加候选人的数量。当任何投票者按下四个按钮中的任何一个时,被投票值将每次增加一。在整个投票过程之后,可以按下结果按钮以显示结果。
威廉希尔官方网站
原理图
如上图所示组装威廉希尔官方网站
。将5个按钮分别连接到Arduino的数字引脚7、6、5、4、3。同样,将LCD的引脚4、6、11、12、13、14连接到Arduino的数字引脚13、12、11、10、9、8。
项目的工作过程
在该项目中,Arduino是该系统的心脏和大脑。 Arduino控制着完整的投票过程,例如读取按钮、增加投票值、生成结果以及将投票和结果发送到LCD显示屏。
在这里,我们添加了五个按钮,分别代表团队A、团队B、团队C、团队D,最后一个按钮用于计算并显示结果。
下面是该项目的一些图片,这些图片清楚地说明了该项目的工作情况。
实现代码
#include
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
#define S1 7
#define S2 6
#define S3 5
#define S4 4
#define S5 3
int vote1=0;
int vote2=0;
int vote3=0;
int vote4=0;
void setup()
{
pinMode(S1, INPUT);
pinMode(S2,INPUT);
pinMode(S3,INPUT);
pinMode(S4,INPUT);
pinMode(S5,INPUT);
lcd.begin(16, 2);
lcd.print(" Electronic ");
lcd.setCursor(0,1);
lcd.print(" Voting Machine ");
delay(4000);
digitalWrite(S1, HIGH);
digitalWrite(S2, HIGH);
digitalWrite(S3, HIGH);
digitalWrite(S4, HIGH);
digitalWrite(S5, HIGH);
lcd.clear();
lcd.setCursor(1,0);
lcd.print("A");
lcd.setCursor(5,0);
lcd.print("B");
lcd.setCursor(9,0);
lcd.print("C");
lcd.setCursor(13,0);
lcd.print("D");
}
void loop()
{
lcd.setCursor(1,0);
lcd.print("A");
lcd.setCursor(1,1);
lcd.print(vote1);
lcd.setCursor(5,0);
lcd.print("B");
lcd.setCursor(5,1);
lcd.print(vote2);
lcd.setCursor(9,0);
lcd.print("C");
lcd.setCursor(9,1);
lcd.print(vote3);
lcd.setCursor(13,0);
lcd.print("D");
lcd.setCursor(13,1);
lcd.print(vote4);
if(digitalRead(S1)==0)
vote1++;
while(digitalRead(S1)==0);
if(digitalRead(S2)==0)
vote2++;
while(digitalRead(S2)==0);
if(digitalRead(S3)==0)
vote3++;
while(digitalRead(S3)==0);
if(digitalRead(S4)==0)
vote4++;
while(digitalRead(S4)==0);
if(digitalRead(S5)==0)
{
int vote=vote1+vote2+vote3+vote4;
if(vote)
{
if((vote1 > vote2 && vote1 > vote3 && vote1 > vote4))
{
lcd.clear();
lcd.print("A is Winner");
delay(3000);
lcd.clear();
}
else if((vote2 > vote1 && vote2 > vote3 && vote2 > vote4))
{
lcd.clear();
lcd.print("B is Winner");
delay(3000);
lcd.clear();
}
else if((vote3 > vote1 && vote3 > vote2 && vote3 > vote4))
{
lcd.clear();
lcd.print("C is Winner");
delay(3000);
lcd.clear();
}
else if(vote4 > vote1 && vote4 > vote2 && vote4 > vote3)
{
lcd.setCursor(0,0);
lcd.clear();
lcd.print("D is Winner");
delay(3000);
lcd.clear();
}
else if(vote4 > vote1 && vote4 > vote2 && vote4 > vote3)
{
lcd.setCursor(0,0);
lcd.clear();
lcd.print("D is Winner");
delay(3000);
lcd.clear();
}
else
{
lcd.clear();
lcd.print(" Tie Up Or ");
lcd.setCursor(0,1);
lcd.print(" No Result ");
delay(3000);
lcd.clear();
}
}
else
{
lcd.clear();
lcd.print("No Voting....");
delay(3000);
lcd.clear();
}
vote1=0;vote2=0;vote3=0;vote4=0,vote=0;
lcd.clear();
}
}
编辑:hfy