风筝
发表于: 2020-4-14 21:40:03 | 显示全部楼层

本篇文章我们主要介绍如何使用Arduino开发板制作一款简单的智能电子投票机。该项目的基本思想是制作一种电子投票机,这将有助于消除人工投票系统和之前电子投票系统的欺诈行为。


该系统具有n个按键,其中n是政党数量。在这里,投票人将被允许继续从按钮面板中选择他们的首选候选人。然后将最终投票结果显示在LCD上,以使选民满意。最后,可以通过按结果按钮自动计算结果。


所需的组件

●    Arduino UNO开发板

●    1602 LCD显示屏

●    4个按键

●    10K电位器

●    连接线

●    面包板


功能框图

Block-Diagram-Electronic-Voting-Machine-Using-Arduino.gif

在本文中,我们为参加选举的四个不同候选人使用了​​四个按钮。我们可以根据要求增加候选人的数量。当任何投票者按下四个按钮中的任何一个时,被投票值将每次增加一。在整个投票过程之后,可以按下结果按钮以显示结果。


电路原理图

Simple-Electronic-Voting-Machine-Using-Arduino.jpg

如上图所示组装电路。将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,最后一个按钮用于计算并显示结果。


下面是该项目的一些图片,这些图片清楚地说明了该项目的工作情况。

3.jpg

4.jpg


源代码/程序

  1. #include<LiquidCrystal.h>
  2. LiquidCrystal lcd(13, 12, 11, 10, 9, 8);

  3. #define S1 7
  4. #define S2 6
  5. #define S3 5
  6. #define S4 4
  7. #define S5 3
  8. int vote1=0;
  9. int vote2=0;
  10. int vote3=0;
  11. int vote4=0;
  12. void setup()
  13. {
  14. pinMode(S1, INPUT);
  15. pinMode(S2,INPUT);
  16. pinMode(S3,INPUT);
  17. pinMode(S4,INPUT);
  18. pinMode(S5,INPUT);
  19. lcd.begin(16, 2);
  20. lcd.print(" Electronic ");
  21. lcd.setCursor(0,1);
  22. lcd.print(" Voting Machine ");
  23. delay(4000);
  24. digitalWrite(S1, HIGH);
  25. digitalWrite(S2, HIGH);
  26. digitalWrite(S3, HIGH);
  27. digitalWrite(S4, HIGH);
  28. digitalWrite(S5, HIGH);
  29. lcd.clear();
  30. lcd.setCursor(1,0);
  31. lcd.print("A");
  32. lcd.setCursor(5,0);
  33. lcd.print("B");
  34. lcd.setCursor(9,0);
  35. lcd.print("C");
  36. lcd.setCursor(13,0);
  37. lcd.print("D");
  38. }
  39. void loop()
  40. {
  41. lcd.setCursor(1,0);
  42. lcd.print("A");
  43. lcd.setCursor(1,1);
  44. lcd.print(vote1);
  45. lcd.setCursor(5,0);
  46. lcd.print("B");
  47. lcd.setCursor(5,1);
  48. lcd.print(vote2);
  49. lcd.setCursor(9,0);
  50. lcd.print("C");
  51. lcd.setCursor(9,1);
  52. lcd.print(vote3);
  53. lcd.setCursor(13,0);
  54. lcd.print("D");
  55. lcd.setCursor(13,1);
  56. lcd.print(vote4);
  57. if(digitalRead(S1)==0)
  58. vote1++;
  59. while(digitalRead(S1)==0);
  60. if(digitalRead(S2)==0)
  61. vote2++;
  62. while(digitalRead(S2)==0);
  63. if(digitalRead(S3)==0)
  64. vote3++;
  65. while(digitalRead(S3)==0);
  66. if(digitalRead(S4)==0)
  67. vote4++;
  68. while(digitalRead(S4)==0);
  69. if(digitalRead(S5)==0)
  70. {
  71. int vote=vote1+vote2+vote3+vote4;
  72. if(vote)
  73. {
  74. if((vote1 > vote2 && vote1 > vote3 && vote1 > vote4))
  75. {
  76. lcd.clear();
  77. lcd.print("A is Winner");
  78. delay(3000);
  79. lcd.clear();
  80. }
  81. else if((vote2 > vote1 && vote2 > vote3 && vote2 > vote4))
  82. {
  83. lcd.clear();
  84. lcd.print("B is Winner");
  85. delay(3000);
  86. lcd.clear();
  87. }
  88. else if((vote3 > vote1 && vote3 > vote2 && vote3 > vote4))
  89. {
  90. lcd.clear();
  91. lcd.print("C is Winner");
  92. delay(3000);
  93. lcd.clear();
  94. }
  95. else if(vote4 > vote1 && vote4 > vote2 && vote4 > vote3)
  96. {
  97. lcd.setCursor(0,0);
  98. lcd.clear();
  99. lcd.print("D is Winner");
  100. delay(3000);
  101. lcd.clear();
  102. }

  103. else if(vote4 > vote1 && vote4 > vote2 && vote4 > vote3)
  104. {
  105. lcd.setCursor(0,0);
  106. lcd.clear();
  107. lcd.print("D is Winner");
  108. delay(3000);
  109. lcd.clear();
  110. }

  111. else
  112. {
  113. lcd.clear();
  114. lcd.print(" Tie Up Or ");
  115. lcd.setCursor(0,1);
  116. lcd.print(" No Result ");
  117. delay(3000);
  118. lcd.clear();
  119. }

  120. }
  121. else
  122. {
  123. lcd.clear();
  124. lcd.print("No Voting....");
  125. delay(3000);
  126. lcd.clear();
  127. }
  128. vote1=0;vote2=0;vote3=0;vote4=0,vote=0;
  129. lcd.clear();
  130. }

  131. }
复制代码

跳转到指定楼层
回复

使用道具 举报

222
发表于: 2020-6-30 16:04:14 | 显示全部楼层

有电路图没。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

回复

使用道具 举报

222
发表于: 2020-6-30 16:28:27 | 显示全部楼层

跪求。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 700 | 回复: 1480



手机版|

GMT+8, 2024-4-25 19:04 , Processed in 0.064013 second(s), 11 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表