선거에 투표 할 때마다 전자 투표 기계를 보게됩니다. 이 프로젝트에서는 ATmega32A 마이크로 컨트롤러를 사용하여 간단한 투표기 를 설계하고 개발할 것 입니다. 컨트롤러를 사용하여 32 명 이상의 투표기를 사용할 수 있지만 모든 것을 단순하게 유지하기 위해 4 명 규모의 투표 시스템을 만들 것입니다. 해당하는 사람에게 투표가 진행되고 각 사람이 LCD에 표시되는 투표 수입니다.
필요한 구성 요소
하드웨어:
ATMEGA32
전원 공급 장치 (5v)
AVR-ISP 프로그래머
JHD_162ALCD (16x2 LCD)
100nF 커패시터 (5 개), 100uF 커패시터 (전원 공급 장치에 연결됨)
버튼 (5 개), 10KΩ 저항 (5 개).
소프트웨어:
Atmel 스튜디오 6.1
progisp 또는 플래시 마술.
회로도 및 작동 설명
위의 전자 투표기 회로 에서 볼 수 있듯이 ATMEGA32 마이크로 컨트롤러의 PORTA는 16x2 LCD의 데이터 포트에 연결됩니다. 여기서 PORTC를 일반 통신 포트로 사용하려면 퓨즈 바이트를 변경하여 ATMEGA의 PORTC에서 JTAG 통신을 비활성화해야합니다. 16x2 LCD에서 백라이트가 있으면 전체적으로 16 개의 핀이 있고, 백라이트가 없으면 14 개의 핀이 있습니다. 백라이트 핀에 전원을 공급하거나 남겨 둘 수 있습니다. 이제 14 핀에는 8 개의 데이터 핀 (7-14 또는 D0-D7), 2 개의 전원 공급 장치 핀 (1 & 2 또는 VSS & VDD 또는 gnd & + 5v), 대비 제어를위한 3 번째 핀 (VEE- 문자의 두께 제어)이 있습니다. 그림), 3 개의 제어 핀 (RS & RW & E).
회로에서 더 나은 이해의 유연성을 제공하기 때문에 두 개의 제어 핀만 사용했음을 알 수 있습니다. 대비 비트와 READ / WRITE는 자주 사용되지 않으므로 접지로 단락 될 수 있습니다. 이렇게하면 LCD가 가장 높은 명암비 및 읽기 모드가됩니다. ENABLE 및 RS 핀을 제어하여 문자와 데이터를 적절하게 전송하면됩니다.
LCD에 대해 수행되는 연결은 다음과 같습니다.
PIN1 또는 VSS-접지
PIN2 또는 VDD 또는 VCC-+ 5v 전원
PIN3 또는 VEE-접지 (초보자에게 최상의 대비를 제공)
PIN4 또는 RS (등록 선택)-uC의 PD6
PIN5 또는 RW (읽기 / 쓰기)-접지 (LCD를 읽기 모드로 설정하여 사용자의 통신을 용이하게 함)
PIN6 또는 E (활성화)-uC의 PD5
PIN7 또는 D0-uC의 PA0
PIN8 또는 D1-uC의 PA1
PIN9 또는 D2-uC의 PA2
PIN10 또는 D3-uC의 PA3
PIN11 또는 D4-uC의 PA4
PIN12 또는 D5-uC의 PA5
PIN13 또는 D6-uC의 PA6
PIN14 또는 D7-- uC의 PA7
회로에서 우리는 8 비트 통신 (D0-D7)을 사용했음을 알 수 있지만 이것은 필수 사항은 아닙니다. 4 비트 통신 (D4-D7)을 사용할 수 있지만 4 비트 통신 프로그램은 약간 복잡 해져서 8 비트 통신으로갔습니다.
따라서 위의 표만 살펴보면 LCD의 10 핀을 컨트롤러에 연결하는 것으로 8 핀은 데이터 핀이고 2 핀은 제어용입니다. 여기에 다섯 개의 버튼이 있습니다. 네 개는 후보자의 투표를 늘리기위한 것이고 다섯 번째는 후보자의 투표를 0으로 재설정하는 것입니다.
여기에있는 커패시터는 버튼의 바운싱 효과를 무효화하기위한 것입니다. 제거되면 버튼을 누를 때마다 컨트롤러가 둘 이상을 계산할 수 있습니다. 핀에 연결된 저항은 버튼을 눌러 핀을 접지로 끌어 당길 때 전류를 제한하기위한 것입니다.
버튼을 누를 때마다 컨트롤러의 해당 핀이지면으로 당겨져 컨트롤러가 특정 버튼을 눌렀다는 것과 해당 조치를 취해야 함을 인식하고 버튼을 눌렀을 때 후보 투표를 늘리거나 투표를 재설정 할 수 있습니다.
해당 인물을 나타내는 버튼을 누르면 컨트롤러가 해당 인물을 선택하고 증분 후 메모리 내 해당 인물 번호를 증분하며 16x2 LCD 디스플레이에 해당 인물 점수를 표시합니다.
이 마이크로 컨트롤러 기반 전자 투표 기계 의 작동은 아래의 C 코드를 단계별로 설명합니다.