Tworzenie maszyny do głosowania za pomocą Arduino Uno
Pierwszym krokiem do utworzenia dowolnego urządzenia jest utworzenie schematu obwodu i krótka lista komponentów, które będą wymagane do stworzenia tego konkretnego urządzenia. Podaliśmy więc schemat obwodu, a następnie listę komponentów:
Montaż sprzętu do tworzenia maszyny do głosowania za pomocą Arduino Uno
Teraz utworzyliśmy obwód dla maszyny do głosowania, aby zobaczyć, jak ten obwód będzie wyglądał na rzeczywistym sprzęcie, który najpierw utworzyliśmy montaż sprzętu zgodnie z podanym powyżej obwodem:
W tej inteligentnej maszynie do głosowania użyliśmy 4 przycisków naciśnięcia trzech z nich do głosowania, a jeden jest do obliczania wyniku. Możesz jednak zwiększyć lub zmniejszyć liczbę przycisków w zależności od potrzeb. Połączenia przycisków są reprezentowane przez brązowe przewody, które łączą przyciski z pinami Arduino 10,9,8,7.
Pinsy danych LCD są podłączone za pomocą fioletowych przewodów, które używali PINS 5 do 2 Arduino Uno. Podczas gdy piny RS i E (włączające) są podłączone do Arduino UNO za pomocą jego pinów 12 i 11, a połączenie jest reprezentowane przez szare przewody. Ponadto, aby dostosować jasność LCD, użyliśmy wyjścia potencjometru, podłączając go z pinem V0 LCD za pomocą zielonego drutu.
Kod Arduino do tworzenia maszyny do głosowania za pomocą Arduino Uno
Kod napisany do tworzenia maszyny do głosowania nie jest tak trudny. Po prostu zrobiliśmy 3 liczniki, które zwiększą ich wartości po naciśnięciu odpowiednich przycisków. Następnie używając warunku IF dla każdego licznika, porównaliśmy jego wartości z resztą liczników, i w ten sposób znaleźliśmy zwycięzcę. Odpowiedni program Arduino do tworzenia maszyny do głosowania podano poniżej:
#uwzględnij bibliotekę/* dla LCD*/
Płyncrystal LCD (12, 11, 5, 4, 3, 2); /* Szpilki Arduino dla LCD*/
// szpilki Arduino dla przycisków */
#definicja P1 10
#definicja P2 9
#definicja P3 8
#definicja P4 7
/ * zmienne do ratowania głosów każdej opcji */
int v1 = 0;
int v2 = 0;
int v3 = 0;
void setup ()
/ * Tryby pinów dla przycisków */
pinmode (p1, wejście);
pinmode (p2, wejście);
pinmode (p3, wejście);
pinmode (p4, wejście);
/ * wyświetl linię wprowadzającą */
LCD.Rozpocznij (16, 2);
LCD.druk („Arduino”);
LCD.setCursor (0, 1);
LCD.Drukuj („maszyna do głosowania”);
opóźnienie (4000);
/* przypisanie stanów do przycisków*/
DigitalWrite (P1, High);
DigitalWrite (P2, High);
DigitalWrite (P3, High);
DigitalWrite (P4, High);
/ * Wyświetlanie trzech zmiennych głosów */
LCD.jasne();
LCD.setCursor (1, 0);
LCD.druk („p1”);
LCD.setCursor (5, 0);
LCD.druk („p2”);
LCD.setCursor (9, 0);
LCD.druk („p3”);
void Loop ()
LCD.setCursor (1, 0);
LCD.druk („p1”);
LCD.setCursor (1, 1);
LCD.druk (v1);
LCD.setCursor (5, 0);
LCD.druk („p2”);
LCD.setCursor (5, 1);
LCD.druk (v2);
LCD.setCursor (9, 0);
LCD.druk („p3”);
LCD.setCursor (9, 1);
LCD.druk (v3);
LCD.setCursor (13, 0);
/* Jeśli p1 jest naciskany, wówczas przyrost jednego w jego wartości*/
if (DigitalRead (p1) == 0) v1 ++;
/* Jeśli p2 jest naciskany, wówczas przyrost jednego w jego wartości*/
while (DigitalRead (p1) == 0);
if (DigitalRead (p2) == 0) v2 ++;
/* Jeśli p3 jest naciskany, wówczas przyrost jednego w swojej wartości*/
while (DigitalRead (p2) == 0);
if (DigitalRead (p3) == 0) v3 ++;
/ * Jeśli p2 jest naciśnięty, wyświetl wynik */
while (DigitalRead (p3) == 0);
if (DigitalRead (p4) == 0)
int v = v1 + v2 + v3;
if (v)
/ * Jeśli głosy P1 są więcej niż inne, to zwycięzca */
if ((v1> v2 && v1> v3))
LCD.jasne();
LCD.druk („P1 jest zwycięzcą”);
opóźnienie (3000);
LCD.jasne();
/ * Jeśli głosy P2 są więcej niż inne, to zwycięzca */
else if ((v2> v1 && v2> v3))
LCD.jasne();
LCD.druk („P2 jest zwycięzcą”);
opóźnienie (3000);
LCD.jasne();
/ * Jeśli głosy P3 są więcej niż inne, to zwycięzca */
else if ((v3> v1 && v3> v2))
LCD.jasne();
LCD.druk („P3 jest zwycięzcą”);
opóźnienie (3000);
LCD.jasne();
/ * w przeciwnym razie istnieje albo remis między kandydatami, albo nie udzielił żadnego głosowania w żadnym */
w przeciwnym razie
LCD.jasne();
LCD.wydruku („powiązanie lub”);
LCD.setCursor (0, 1);
LCD.druk („bez wyniku”);
opóźnienie (3000);
LCD.jasne();
w przeciwnym razie
LCD.jasne();
LCD.Drukuj („Brak głosowania…”);
opóźnienie (3000);
LCD.jasne();
/* dając zero wszystkim kandydatom, aby ponownie rozpocząć głosowanie*/
v1 = 0;
v2 = 0;
v3 = 0;
v = 0;
LCD.jasne();
Demonstracja sprzętu inteligentnego maszyny do głosowania
Po pomyślnym utworzeniu zespołu sprzętu i opracowaniu kodu Arduino zaimplementowaliśmy zespół sprzętu na płycie chleba i można go zobaczyć na poniższym obrazku:
Teraz głosowaliśmy za każdego kandydata za pomocą przycisków naciśnięcia, jak pokazano na poniższym obrazku:
Teraz zobaczmy, jaki jest wynik, naciskając przycisk:
Pierwszy kandydat jest zwycięzcą, ponieważ ma więcej głosów.
W przypadku, gdy wszyscy kandydaci mają równe głosy, to między nimi powiązanie, jak pokazano na kolejnych zdjęciach:
Wniosek
Aby uczynić system głosowania przezroczysty i uzyskanie natychmiastowych rezultatów, istnieje potrzeba elektronicznej maszyny do głosowania. Stworzyliśmy prototyp elektronicznej maszyny do głosowania za pomocą Arduino Uno, który pokazuje, w jaki sposób możemy go używać do celów głosowania. Aby dać jasny obraz tego, jak będzie działać elektroniczna maszyna do głosowania, zapewniliśmy montaż sprzętu wraz z kodem Arduino.