0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Arduino开发板的智能电子投票机

454398 来源:一板网 作者:风筝 2020-10-20 14:47 次阅读

本篇文章我们主要介绍如何使用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
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • lcd
    lcd
    +关注

    关注

    34

    文章

    4278

    浏览量

    164146
  • 开发板
    +关注

    关注

    25

    文章

    4437

    浏览量

    94080
  • Arduino
    +关注

    关注

    184

    文章

    6428

    浏览量

    184852
  • LCD显示屏
    +关注

    关注

    0

    文章

    88

    浏览量

    13050
收藏 人收藏

    评论

    相关推荐

    如何用Arduino开发STM32G070?

    如何用Arduino开发STM32G070,各位大神有相关教程吗。我如何在Arduino开发板管理器中添加STM32G070开发板,如何把
    发表于 04-07 08:22

    Arduino IDE打开开发板管理器搜索Arduino SAM的开发板不能找到怎么解决?

    Arduino IDE打开开发板管理器搜索Arduino SAM的开发板不能找到怎么解决 可能被墙 也没有其他源可以替换 或者手动安装这个开发板
    发表于 11-10 08:29

    arduino开发板12v输入可以吗?

    arduino开发板12v输入可以吗,开发板5v输出端可能哟300mA的电流,请问板子上的1117能承受那么大的功率吗
    发表于 11-08 07:51

    声控遥控汽车需要什么Arduino开发板

    声控遥控汽车需要什么Arduino开发板
    发表于 11-01 06:21

    #fpga开发板 Lattic-mipi开发板

    FPGA开发板
    明德扬科技
    发布于 :2023年10月25日 18:01:23

    arduino哪个开发板可以做图像识别?

    arduino哪个开发板可以做图像识别
    发表于 09-22 06:49

    #51单片 #开发板

    开发板
    发布于 :2023年08月04日 07:03:00

    合宙Air001开发板——支持Arduino开发,国产MCU新热潮

    包装炸裂、价格便宜、支持Arduino开发——点燃国产MCU新热潮的合宙Air001,开发板补货终于到了!!!合宙Air001开发板、芯片、DAPLink,多样超值套餐可选,08月31
    的头像 发表于 08-01 00:12 3251次阅读
    合宙Air001<b class='flag-5'>开发板</b>——支持<b class='flag-5'>Arduino</b><b class='flag-5'>开发</b>,国产MCU新热潮

    【FireBeetle 2 ESP32-S3开发板测评】Arduino IDE快速开发体验

    【FireBeetle 2 ESP32-S3开发板测评】Arduino IDE快速开发体验
    的头像 发表于 07-23 09:03 1646次阅读
    【FireBeetle 2  ESP32-S3<b class='flag-5'>开发板</b>测评】<b class='flag-5'>Arduino</b> IDE快速<b class='flag-5'>开发</b>体验

    【IoT毕设】机智云物联网平台+arduino开发板+呼吸检测系统

    ,需要单独的程序软件才可烧写,而Arduino开发版不需要单独的烧录器,只需要USB线就可以完成下载,轻松上手,易懂易学。 所以Arduino开发板
    发表于 06-26 18:55

    Arduino开发板,制作一个简易的修正弦波逆变器

    Arduino开发板
    YS YYDS
    发布于 :2023年06月25日 00:04:27

    这么漂亮的Arduino开发板你见过吗?

    摘要:找到几块基于Arduino UNO形状的开发板,一起来欣赏下。
    的头像 发表于 06-06 09:52 1129次阅读
    这么漂亮的<b class='flag-5'>Arduino</b><b class='flag-5'>开发板</b>你见过吗?

    求激光雕刻Arduino IDE开发板源码

    想自己DIY激光雕刻一直搞不到Arduino开发板程序开发源码,求大神指点谢谢
    发表于 06-04 18:00

    Arduino开发板使用NRF24L01进行无线通信

    如何使用NRF24L01收发器模块在两个Arduino开发板之间进行无线通信。为了说明无线通信,我们将举两个例子,第一个是 从一个Arduino开发板向另一个发送简单的“Hello
    发表于 05-30 10:22 2次下载
    <b class='flag-5'>Arduino</b><b class='flag-5'>开发板</b>使用NRF24L01进行无线通信