Kad god idemo glasati za izbore, vidimo elektroničke uređaje za glasanje. U ovom ćemo projektu dizajnirati i razviti jednostavan glasački uređaj pomoću mikrokontrolera ATmega32A. Iako pomoću kontrolera možemo dobiti više od 32 glasačke automate, kako bismo sve pojednostavili, napravit ćemo sustav glasovanja za veličinu od četiri osobe. Imat ćemo četiri gumba za četiri osobe i kad god se pritisne tipka, glas ide za odgovarajuću osobu i broj glasova koji svaka osoba dobije na LCD-u.
Komponente potrebne
Hardver:
ATMEGA32
Napajanje (5v)
AVR-ISP PROGRAMATER
JHD_162ALCD (LCD 16x2)
Kondenzator 100nF (pet komada), kondenzator 100uF (spojen preko napajanja)
gumb (pet komada), Otpornik 10KΩ (pet komada).
Softver:
Atmel studio 6.1
progisp ili flash magija.
Kružni dijagram i radno objašnjenje

Kao što je prikazano u gornjem krugu elektroničkog glasa, PORTA mikrokontrolera ATMEGA32 spojena je na podatkovni priključak LCD-a 16x2. Ovdje treba imati na umu onemogućavanje JTAG komunikacije u PORTC-u ATMEGA-e promjenom bajtova osigurača, ako se želi koristiti PORTC-om kao normalnim komunikacijskim priključkom. Na LCD zaslonu 16x2 postoji 16 pinova ako postoji pozadinsko svjetlo, a ako nema pozadinskog svjetla, bit će 14 pinova. Može se napajati ili ostaviti igle stražnjeg svjetla. Sada u 14 pinova postoji 8 podatkovnih pinova (7-14 ili D0-D7), 2 pina za napajanje (1 & 2 ili VSS & VDD ili gnd & + 5v), treći pinski za kontrolu kontrasta (VEE - kontrolira koliko debeli znakovi trebaju biti prikazano), 3 upravljačka zatiča (RS & RW & E).
U krugu možete primijetiti da sam uzeo samo dvije kontrolne igle, jer to daje fleksibilnost boljeg razumijevanja. Kontrastni bit i READ / WRITE se ne koriste često, tako da se mogu kratko spojiti na masu. Ovo LCD postavlja u najveći kontrast i način čitanja. Samo trebamo kontrolirati ENABLE i RS igle da bi u skladu s tim slali znakove i podatke.
Priključci koji se rade za LCD prikazani su u nastavku:
PIN1 ili VSS - uzemljenje
PIN2 ili VDD ili VCC - + 5v snage
PIN3 ili VEE - uzemljenje (daje maksimalni kontrast najbolje za početnike)
PIN4 ili RS (odabir registra) - PD6 od uC
PIN5 ili RW (čitanje / pisanje) - uzemljenje (stavlja LCD u način čitanja olakšava komunikaciju za korisnika)
PIN6 ili E (Omogući) - PD5 od uC
PIN7 ili D0 - PA0 od uC
PIN8 ili D1 - PA1 od uC
PIN9 ili D2 - PA2 od uC
PIN10 ili D3 - PA3 od uC
PIN11 ili D4 - PA4 od uC
PIN12 ili D5 - PA5 od uC
PIN13 ili D6 - PA6 od uC
PIN14 ili D7 - PA7 od uC
U krugu možete vidjeti da smo koristili 8-bitnu komunikaciju (D0-D7), međutim to nije obvezno. Možemo koristiti 4-bitnu komunikaciju (D4-D7), ali s 4-bitnim komunikacijskim programom postaje pomalo složen pa sam upravo otišao s 8-bitnom komunikacijom.
Dakle, iz pukog promatranja gornje tablice spajamo 10 pinova LCD-a na kontroler u kojem su 8 pinova podatkovne i 2 pina za kontrolu. Ovdje je prisutno pet gumba, četiri za povećanje glasova kandidata, a peto za resetiranje glasova kandidata na nulu.
Ovdje prisutni kondenzatori služe za poništavanje efekta odbijanja gumba. Ako se uklone, kontroler može brojati više od svakog puta kad se pritisne tipka. Otpornici spojeni na pinove služe za ograničavanje struje, kad se pritisne tipka za spuštanje klina na zemlju.
Kad god se pritisne tipka, odgovarajući pin regulatora se spušta na zemlju i tako kontrolor prepoznaje da se pritisne određena tipka i poduzima odgovarajuća radnja, to može biti povećanje glasova kandidata ili resetiranje glasova ovisno o pritisnutom gumbu.
Kad se pritisne tipka koja predstavlja odgovarajuću osobu, kontroler je odabire i uvećava broj odgovarajuće osobe u svojoj memoriji, nakon povećanja prikazuje rezultat odgovarajućih osoba na LCD zaslonu 16x2.
Rad ovog elektroničkog uređaja za glasanje temeljenog na mikrokontroleru objašnjava se korak po korak C koda dolje,
