Ilekroć idziemy głosować w wyborach, widzimy elektroniczne maszyny do głosowania. W tym projekcie zamierzamy zaprojektować i opracować prostą maszynę do głosowania z wykorzystaniem mikrokontrolera ATmega32A. Chociaż możemy użyć kontrolera, aby uzyskać więcej niż 32-osobową maszynę do głosowania, aby wszystko było proste, stworzymy system do głosowania dla czterech osób. Będziemy mieć cztery przyciski dla czterech osób i za każdym razem, gdy zostanie naciśnięty przycisk, głosowanie idzie na odpowiednią osobę, a liczba głosów na każdą osobę jest wyświetlana na wyświetlaczu LCD.
Wymagane składniki
Sprzęt komputerowy:
ATMEGA32
Zasilanie (5 V)
PROGRAMATOR AVR-ISP
JHD_162ALCD (LCD 16x2)
Kondensator 100nF (pięć sztuk), kondensator 100uF (podłączony przez zasilacz)
guzik (pięć sztuk), Rezystor 10 kΩ (pięć sztuk).
Oprogramowanie:
Atmel Studio 6.1
progisp lub flash magic.
Schemat obwodu i objaśnienie robocze
Jak pokazano na powyższym obwodzie elektronicznego automatu do głosowania, PORTA mikrokontrolera ATMEGA32 jest podłączona do portu danych wyświetlacza LCD 16x2. W tym miejscu należy pamiętać o wyłączeniu komunikacji JTAG w PORTC ATMEGA poprzez zmianę bajtów bezpiecznika, jeśli chcemy używać PORTC jako normalnego portu komunikacyjnego. W LCD 16x2 jest 16 pinów, jeśli jest podświetlenie, jeśli nie ma podświetlenia, będzie 14 pinów. Można zasilać lub pozostawić piny podświetlenia. Teraz w 14 szpilki są kołki 8 danych (7-14 lub D0-D7), 2 szpilki zasilacza (1 i 2 lub VSS i VDD i GND i +5 V), 3 rd pin regulacji kontrastu (VEE umożliwia sprawdzenie grubości znaki powinny pokazano), 3 piny sterujące (RS i RW i E).
W obwodzie można zauważyć, że wziąłem tylko dwa piny sterujące, ponieważ daje to elastyczność lepszego zrozumienia. Bit kontrastu i odczyt / zapis nie są często używane, więc można je zwierać do masy. Dzięki temu wyświetlacz LCD ma najwyższy kontrast i tryb odczytu. Musimy tylko sterować pinami ENABLE i RS, aby odpowiednio wysyłać znaki i dane.
Poniżej przedstawiono połączenia wykonane dla LCD:
PIN1 lub VSS - masa
PIN2 lub VDD lub VCC - moc + 5 V.
PIN3 lub VEE - szlifowany (daje maksymalny kontrast najlepszy dla początkującego)
PIN4 lub RS (wybór rejestru) - PD6 uC
PIN5 lub RW (Read / Write) - masa (przełącza wyświetlacz LCD w tryb odczytu, ułatwiając komunikację użytkownikowi)
PIN6 lub E (Włącz) - PD5 uC
PIN7 lub D0 - PA0 z uC
PIN8 lub D1 - PA1 uC
PIN9 lub D2 - PA2 o uC
PIN10 lub D3 - PA3 o uC
PIN11 lub D4 - PA4 o uC
PIN12 lub D5 - PA5 o uC
PIN13 lub D6 - PA6 uC
PIN14 lub D7 - PA7 uC
W obwodzie, jak widać, użyliśmy komunikacji 8-bitowej (D0-D7), jednak nie jest to obowiązkowe. Możemy użyć komunikacji 4-bitowej (D4-D7), ale przy 4-bitowej komunikacji program staje się nieco skomplikowany, więc wybrałem komunikację 8-bitową.
Czyli z samej obserwacji powyższej tabeli podłączamy 10 pinów LCD do kontrolera, w którym 8 pinów to pinów danych i 2 pinów do sterowania. Znajduje się tutaj pięć przycisków, cztery do zwiększania liczby głosów kandydatów, a piąty do resetowania głosów kandydatów do zera.
Obecne tutaj kondensatory służą do niwelowania efektu odbijania przycisków. Jeśli zostaną usunięte, kontroler może policzyć więcej niż jeden przy każdym naciśnięciu przycisku. Rezystory podłączone do kołków służą do ograniczania prądu, gdy przycisk jest wciśnięty, aby pociągnąć kołek do ziemi.
Za każdym razem, gdy przycisk jest wciśnięty, odpowiedni pin kontrolera zostaje ściągnięty do ziemi, a tym samym kontroler rozpoznaje, że dany przycisk jest wciśnięty i odpowiednią akcję, którą należy podjąć, może to być zwiększanie głosów kandydatów lub resetowanie głosów w zależności od naciśniętego przycisku.
Kiedy przycisk reprezentujący odpowiednią osobę jest wciśnięty, kontroler wybiera go i zwiększa numer odpowiedniej osoby w swojej pamięci, po zwiększeniu pokazuje wynik odpowiedniej osoby na wyświetlaczu LCD 16x2.
Działanie tej elektronicznej maszyny do głosowania opartej na mikrokontrolerze jest wyjaśnione krok po kroku w kodzie C poniżej,