Fare una macchina per votare usando Arduino Uno
Il primo passo per la creazione di qualsiasi dispositivo è quello di creare il suo diagramma di circuito e la lista dei componenti che saranno necessari per realizzare quel dispositivo specifico. Quindi, abbiamo dato lo schema dei circuiti seguiti dall'elenco dei componenti:
Assemblaggio hardware per la produzione di voti con Arduino Uno
Ora abbiamo creato il circuito per la macchina per votare per vedere come sarà questo circuito sull'hardware reale che abbiamo creato per la prima volta un gruppo hardware secondo il circuito indicato:
In questa macchina per votare intelligente abbiamo usato i 4 pulsanti che tre di essi vengono utilizzati per il voto e uno è per calcolare il risultato. Tuttavia, è possibile aumentare o ridurre il numero di pulsanti a seconda della necessità. I collegamenti dei pulsanti sono rappresentati dai fili marroni che collegano i pulsanti con i pin Arduino 10,9,8,7.
I pin di dati LCD sono collegati utilizzando i fili viola che utilizzavano i pin da 5 a 2 dell'Arduino Uno. Mentre i pin Rs e E (abilita) sono collegati ad Arduino Uno usando i suoi pin 12 e 11 e la connessione è rappresentata dai fili grigi. Inoltre, per regolare la luminosità del LCD abbiamo usato l'uscita del potenziometro collegandolo con il pin V0 di LCD usando il filo verde.
Codice Arduino per realizzare la macchina per votare usando Arduino Uno
Il codice scritto per rendere la macchina per votare non è così difficile. Abbiamo semplicemente realizzato 3 contatori che aumenteranno i loro valori dopo aver premuto i rispettivi pulsanti. Successivamente usando la condizione IF per ogni contatore che abbiamo confrontato i suoi valori con il resto dei contatori, ed è così che abbiamo trovato il vincitore. Di seguito è riportato il rispettivo programma Arduino per effettuare la macchina per votare:
#include/* libreria per lcd*/
LiquidCrystal LCD (12, 11, 5, 4, 3, 2); /* Pin arduino per lcd*/
// pin Arduino per pulsanti */
#define p1 10
#define p2 9
#define p3 8
#define P4 7
/ * variabili per salvare i voti di ciascuna opzione */
int v1 = 0;
int v2 = 0;
int v3 = 0;
void setup ()
/ * Modalità pin per i pulsanti */
pinMode (P1, input);
pinMode (P2, ingresso);
pinMode (P3, input);
pinMode (P4, input);
/ * Visualizza la linea introduttiva */
LCD.Inizia (16, 2);
LCD.print ("Arduino");
LCD.setCursor (0, 1);
LCD.print ("Machine di voto");
ritardo (4000);
/* Assegnazione degli stati ai pulsanti*/
DigitalWrite (P1, alto);
DigitalWrite (P2, alto);
DigitalWrite (P3, alto);
DigitalWrite (P4, alto);
/ * Visualizzazione delle tre variabili di voto */
LCD.chiaro();
LCD.setCursor (1, 0);
LCD.print ("p1");
LCD.setCursor (5, 0);
LCD.print ("p2");
LCD.setCursor (9, 0);
LCD.print ("p3");
void loop ()
LCD.setCursor (1, 0);
LCD.print ("p1");
LCD.setcursor (1, 1);
LCD.stampa (v1);
LCD.setCursor (5, 0);
LCD.print ("p2");
LCD.setcursor (5, 1);
LCD.stampa (v2);
LCD.setCursor (9, 0);
LCD.print ("p3");
LCD.setcursor (9, 1);
LCD.stampa (v3);
LCD.setCursor (13, 0);
/* Se P1 viene premuto, l'incremento di uno nel suo valore*/
if (DigitalRead (P1) == 0) V1 ++;
/* Se P2 viene premuto, l'incremento di uno nel suo valore*/
while (DigitalRead (P1) == 0);
if (DigitalRead (P2) == 0) V2 ++;
/* Se P3 viene premuto, l'incremento di uno nel suo valore*/
while (DigitalRead (P2) == 0);
if (DigitalRead (P3) == 0) V3 ++;
/ * Se P2 viene premuto, visualizzare il risultato */
while (DigitalRead (P3) == 0);
if (DigitalRead (p4) == 0)
int v = v1 + v2 + v3;
if (v)
/ * Se i voti di P1 sono più degli altri, allora è il vincitore */
if ((v1> v2 && v1> v3))
LCD.chiaro();
LCD.print ("p1 è vincitore");
ritardo (3000);
LCD.chiaro();
/ * Se i voti di P2 sono più degli altri, allora è il vincitore */
else if ((v2> v1 && v2> v3))
LCD.chiaro();
LCD.print ("p2 è vincitore");
ritardo (3000);
LCD.chiaro();
/ * Se i voti di P3 sono più degli altri, allora è il vincitore */
else if ((v3> v1 && v3> v2))
LCD.chiaro();
LCD.print ("p3 è vincitore");
ritardo (3000);
LCD.chiaro();
/ * altrimenti c'è un legame tra i candidati o nessun voto è stato dato a nessun */
altro
LCD.chiaro();
LCD.stampare ("legame o");
LCD.setCursor (0, 1);
LCD.print ("nessun risultato");
ritardo (3000);
LCD.chiaro();
altro
LCD.chiaro();
LCD.stampa ("nessun voto ...");
ritardo (3000);
LCD.chiaro();
/* Dare zero a tutti i candidati per ricominciare il voto*/
v1 = 0;
v2 = 0;
v3 = 0;
v = 0;
LCD.chiaro();
Dimostrazione hardware della macchina per voti intelligenti
Dopo aver creato correttamente il gruppo hardware e compilato il codice Arduino, abbiamo implementato il gruppo hardware sulla breadboard e può essere visto nell'immagine qui sotto:
Ora abbiamo votato per ogni candidato usando i pulsanti come dimostrato nell'immagine qui sotto:
Ora vediamo qual è il risultato premendo il pulsante:
Il primo candidato è il vincitore in quanto ha più voti.
Nel caso in cui tutti i candidati abbiano pari voti, ci sarà un legame tra loro come mostrato nelle immagini successive:
Conclusione
Per rendere trasparente il sistema di voto e ottenere risultati istantanei, è necessario una macchina per il voto elettronico. Abbiamo creato un prototipo di una macchina di voto elettronica usando Arduino Uno che dimostra come possiamo usarlo per scopi di voto. Per dare un quadro chiaro di come funzionerà la macchina per il voto elettronico che abbiamo fornito il gruppo hardware insieme al codice Arduino.