Hacer una máquina de votación usando Arduino Uno
El primer paso para crear cualquier dispositivo es crear su diagrama de circuito y preseleccionar los componentes que se requerirán para hacer ese dispositivo específico. Entonces, hemos dado el esquema de los circuitos seguidos de la lista de componentes:
Asamblea de hardware para hacer una máquina de votación con Arduino Uno
Ahora hemos creado el circuito para la máquina de votación para ver cómo se verá este circuito en el hardware real, primero hemos creado un ensamblaje de hardware de acuerdo con el circuito dado anteriormente:
En esta máquina de votación inteligente, hemos utilizado los 4 botones Push, tres de ellos se usan para votar y uno es para calcular el resultado. Sin embargo, puede aumentar o disminuir el número de botones de presión dependiendo de su necesidad. Las conexiones de los botones están representadas por los cables marrones que conectan los botones con Pins Arduino 10,9,8,7.
Los pines de datos LCD están conectados utilizando los cables morados que usaron los pines 5 a 2 del Arduino Uno. Mientras que los pines RS y E (habilitados) están conectados a Arduino Uno usando sus 12 y 11 pines y la conexión está representada por los cables grises. Además, para ajustar el brillo de la pantalla LCD, hemos utilizado la salida del potenciómetro conectándolo con el pin V0 de LCD usando el cable verde.
Código Arduino para hacer la máquina de votación con Arduino Uno
El código escrito para hacer la máquina de votación no es tan difícil. Simplemente hicimos 3 contadores que aumentarán sus valores al presionar sus respectivos botones. A continuación, utilizando la condición IF para cada contador, hemos comparado sus valores con el resto de los contadores, y así es como hemos encontrado al ganador. El programa de Arduino respectivo para hacer la máquina de votación se da a continuación:
#incluir/* biblioteca para LCD*/
LiquidCrystal LCD (12, 11, 5, 4, 3, 2); /* Arduino Pins para LCD*/
// Arduino Pins para botones */
#Define P1 10
#Define P2 9
#Define P3 8
#Define P4 7
/ * variables para guardar los votos de cada opción */
int v1 = 0;
int v2 = 0;
int v3 = 0;
setup () void
/ * modos de pin para los botones */
PinMode (P1, entrada);
PinMode (P2, entrada);
PinMode (P3, entrada);
PinMode (P4, entrada);
/ * Muestra la línea introductoria */
lcd.comenzar (16, 2);
lcd.imprimir ("Arduino");
lcd.setCursor (0, 1);
lcd.imprimir ("máquina de votación");
retraso (4000);
/* Asignación de estados a los botones*/
DigitalWrite (P1, High);
DigitalWrite (P2, High);
DigitalWrite (P3, High);
DigitalWrite (P4, High);
/ * Mostrar las tres variables de voto */
lcd.claro();
lcd.setCursor (1, 0);
lcd.imprimir ("P1");
lcd.setCursor (5, 0);
lcd.imprimir ("P2");
lcd.setCursor (9, 0);
lcd.imprimir ("P3");
bucle void ()
lcd.setCursor (1, 0);
lcd.imprimir ("P1");
lcd.setCursor (1, 1);
lcd.imprimir (v1);
lcd.setCursor (5, 0);
lcd.imprimir ("P2");
lcd.setCursor (5, 1);
lcd.imprimir (v2);
lcd.setCursor (9, 0);
lcd.imprimir ("P3");
lcd.setCursor (9, 1);
lcd.imprimir (v3);
lcd.setCursor (13, 0);
/* Si se presiona P1, luego incrementa uno en su valor*/
if (digitalRead (p1) == 0) v1 ++;
/* Si se presiona P2, luego incrementa uno en su valor*/
while (digitalRead (p1) == 0);
if (digitalRead (p2) == 0) v2 ++;
/* Si se presiona P3, luego incrementa uno en su valor*/
while (digitalRead (p2) == 0);
if (digitalRead (p3) == 0) v3 ++;
/ * Si se presiona P2, luego muestre el resultado */
while (digitalRead (p3) == 0);
if (digitalRead (p4) == 0)
int v = v1 + v2 + v3;
if (v)
/ * Si los votos de P1 son más que los demás, entonces es el ganador */
if ((v1> v2 && v1> v3))
lcd.claro();
lcd.imprimir ("P1 es ganador");
retraso (3000);
lcd.claro();
/ * Si los votos de P2 son más que los demás, entonces es el ganador */
else if ((v2> v1 && v2> v3))
lcd.claro();
lcd.imprimir ("P2 es ganador");
retraso (3000);
lcd.claro();
/ * Si los votos de P3 son más que los demás, entonces es el ganador */
else if ((v3> v1 && v3> v2))
lcd.claro();
lcd.imprimir ("P3 es ganador");
retraso (3000);
lcd.claro();
/ * De lo contrario, hay un empate entre los candidatos o no se ha dado ningún voto a ninguna */
demás
lcd.claro();
lcd.imprimir ("atar o");
lcd.setCursor (0, 1);
lcd.imprimir ("sin resultado");
retraso (3000);
lcd.claro();
demás
lcd.claro();
lcd.imprimir ("No votar ...");
retraso (3000);
lcd.claro();
/* Dar cero a todos los candidatos para comenzar la votación nuevamente*/
v1 = 0;
v2 = 0;
v3 = 0;
V = 0;
lcd.claro();
Demostración de hardware de la máquina de votación inteligente
Después de crear con éxito el ensamblaje de hardware y compilar el código Arduino, hemos implementado el ensamblaje de hardware en la placa de pan, y se puede ver en la imagen a continuación:
Ahora hemos votado por cada candidato usando los botones PUSH como se demuestra en la imagen a continuación:
Ahora veamos cuál es el resultado presionando el botón Push:
El primer candidato es el ganador, ya que tiene más votos.
En caso de que todos los candidatos tengan votos iguales, entonces habrá un vínculo entre ellos como se muestra en las imágenes posteriores:
Conclusión
Para hacer que el sistema de votación sea transparente y obtener resultados instantáneos, es necesario que una máquina de votación electrónica. Hemos creado un prototipo de una máquina de votación electrónica utilizando Arduino Uno que demuestra cómo podemos usarlo con fines de votación. Para dar una idea clara de cómo funcionará la máquina de votación electrónica, hemos proporcionado el ensamblaje de hardware junto con el código Arduino.