Kailan man tayo bumoto para sa mga halalan dumarating kami upang makita ang mga elektronikong machine sa pagboto. Sa proyektong ito ay magdidisenyo at bubuo kami ng isang simpleng machine sa pagboto sa pamamagitan ng paggamit ng ATmega32A microcontroller. Bagaman maaari naming gamitin ang tagapamahala upang makakuha ng higit sa 32 katao na makina ng pagboto, upang mapanatili ang simpleng bagay na gagawa kami ng isang sistema ng pagboto para sa isang laki ng apat na tao. Magkakaroon kami ng apat na mga pindutan para sa apat na tao at tuwing pinindot ang isang pindutan, isang bumoto para sa kaukulang tao at ang bilang ng mga boto na ipinapakita sa bawat tao sa LCD.
Kinakailangan ang Mga Bahagi
Hardware:
ATMEGA32
Suplay ng kuryente (5v)
PROGRAMMER ng AVR-ISP
JHD_162ALCD (16x2 LCD)
100nF capacitor (limang piraso), 100uF capacitor (konektado sa buong power supply)
pindutan (limang piraso), 10KΩ risistor (limang piraso).
Software:
Atmel studio 6.1
progisp o flash magic.
Circuit Diagram at Paggawa ng Paliwanag
Tulad ng ipinakita sa itaas ng electronic voting machine circuit, ang PORTA ng ATMEGA32 microcontroller ay konektado sa port ng data na 16x2 LCD. Narito dapat tandaan na huwag paganahin ang komunikasyon ng JTAG sa PORTC ng ATMEGA sa pamamagitan ng pagbabago ng mga byte ng fuse, kung nais na gamitin ang PORTC bilang isang normal na port ng komunikasyon. Sa 16x2 LCD, mayroong 16 na pin sa lahat kung mayroong back light, kung walang back light magkakaroon ng 14 na pin. Maaari ng isang tumakbo o iwanan ang mga light light pin. Ngayon sa 14 na pin mayroong 8 data pin (7-14 o D0-D7), 2 power supply pin (1 & 2 o VSS & VDD o gnd & + 5v), 3 rd pin para sa control ng kaibahan (kinokontrol ng VEE kung gaano dapat makapal ang mga character ipinakita), 3 control pin (RS & RW & E).
Sa circuit, maaari mong obserbahan na kumuha lamang ako ng dalawang mga control pin dahil nagbibigay ito ng kakayahang umangkop ng mas mahusay na pag-unawa. Ang kaibahan ng kaunti at BASAHIN / Sumulat ay hindi madalas na ginagamit upang maaari silang maiksi sa lupa. Inilalagay nito ang LCD sa pinakamataas na kaibahan at mode na basahin. Kailangan lang naming makontrol ang Mga PIN na INABAYAHAN at RS upang magpadala ng mga character at data nang naaayon.
Ang mga koneksyon na tapos para sa LCD ay ibinibigay sa ibaba:
PIN1 o VSS - ground
PIN2 o VDD o VCC - + 5v na lakas
PIN3 o VEE - ground (nagbibigay ng pinakamataas na maximum na kaibahan para sa isang nagsisimula)
PIN4 o RS (Pagpili ng Rehistro) - PD6 ng uC
PIN5 o RW (Basahin / Isulat) - ground (inilalagay ang LCD sa read mode na pinapagaan ang komunikasyon para sa gumagamit)
PIN6 o E (Paganahin) - PD5 ng uC
PIN7 o D0 - PA0 ng uC
PIN8 o D1 - PA1 ng uC
PIN9 o D2 - PA2 ng uC
PIN10 o D3 - PA3 ng uC
PIN11 o D4 - PA4 ng uC
PIN12 o D5 - PA5 ng uC
PIN13 o D6 - PA6 ng uC
PIN14 o D7-- PA7 ng uC
Sa circuit maaari mong makita na gumamit kami ng 8bit na komunikasyon (D0-D7) subalit hindi ito isang sapilitan. Maaari naming gamitin ang 4bit na komunikasyon (D4-D7) ngunit sa 4 bit na programa ng komunikasyon ay naging medyo kumplikado kaya't nagpunta lamang ako sa 8 bit na komunikasyon.
Kaya't mula sa pagmamasid lamang sa talahanayan sa itaas ay kumokonekta kami ng 10 mga pin ng LCD sa controller kung saan ang 8 mga pin ay mga pin ng data at 2 mga pin para sa kontrol. Mayroong limang mga pindutan na naroroon dito, apat para sa pagdaragdag ng mga boto ng mga kandidato at ikalima ay para sa pag-reset ng mga boto ng kandidato sa zero.
Ang mga capacitor na naroroon dito ay para sa pagpapawalang bisa ng bouncing effect ng mga pindutan. Kung sila ay tinanggal ang controller ay maaaring bilangin ang higit sa isa sa bawat oras na ang pindutan ay pinindot. Ang mga resistor na konektado para sa mga pin ay para sa paglilimita sa kasalukuyang, kapag pinindot ang pindutan upang hilahin ang pin sa lupa.
Kailan man pinindot ang isang pindutan, Ang kaukulang pin ng magsusupil ay mahihila pababa sa lupa at sa gayon kinikilala ng tagapamahala na ang ilang mga pindutan ay pinindot at kaukulang aksyon na gagawin, maaaring ito ay nagdaragdag ng mga boto ng kandidato o pag-reset ng mga boto depende sa pindutan na pinindot.
Kapag ang pindutan na kumakatawan sa isang kaukulang tao ay pinindot, pipiliin ito ng Controller at palakihin ang kaukulang numero ng tao sa loob ng memorya nito pagkatapos ng pagtaas na ipinapakita nito ang katumbas na marka ng mga tao sa display na 16x2 LCD.
Ang pagtatrabaho ng microcontroller na nakabatay sa electronic voting machine ay ipinaliwanag sa hakbang-hakbang ng C code pababa sa ibaba,