WAT-KEY4x4, 키 패드, 매트릭스 키

WAT-KEY 4×4 키 매트릭스

ATMEGA128 등의 MCU 에 연결하여 10pin  플랫 케이블에 연결하여  사용할 수 있는 키 매트릭스 모듈입니다.

 

 

 

핀 기능은 다음과 같습니다.

핀번호 기능
1 KEY_SET0
2 KEY_SET1
3 KEY_SET2
4 KEY_SET3
5 KEY_VAL0
6 KEY_VAL1
7 KEY_VAL2
8 KEY_VAL3
9 VCC
10 GND

 

키패드 회로

4×4 배열의 스위치를 제어하는 방법입니다.
여러 가지 방법이 있지만 그 중 간단하게 구성한 회로입니다.

 

 

 

하나의 스위치 값 읽기

먼저 회로를 살펴 보면 SET 이 4개, VALUE 가 4개 있습니다.
SET 으로 ‘1’, ‘0’ 신호를 주고 VALUE 로 ‘0’인지, ‘1’인지 판단 할 수 있습니다.
스위치가 모두 눌러지지 않은 상태라면 VALUE 는 모두 ‘1’이 됩니다.

 

우측하단의 SW16 의 값을 읽으려면 어떻게 해야 할까요?
KEY_SET3을 LOW 로 설정하고 KEY_VAL3을 읽어서 HIGH 이면 키가 눌리지 않았고, LOW이면 키가 눌리지 않았음을 확인 할 수 있습니다.
SW15 를 확인하려면 KEY_SET3을 LOW 로 설정하고 KEY_VAL2 를 읽으면 알 수 있습니다.
SW6 를 확인하려면 KEY_SET1을 LOW 로 설정하고 KEY_VAL1 를 읽으면 알 수 있습니다.

 

한 줄(4개)의 스위치 값 읽기

스위치를 하나하나 체크하면 많은 시간이 걸립니다. 한번에 1줄 모두의 스위치 값을 읽는 방법을 알아보겠습니다.
위의 회로를 그대로 사용하며 ATMEGA128 의 PORTA 에 연결하는 예입니다.
KEY_VAL3, KEY_VAL2, KEY_VAL1, KEY_VAL0 을 각각 PORTA.3, PORTA.2, PORTA.1, PORTA.0에 연결하였습니다.

 

 

 KEY_SET3을 LOW 로 하고 PINA 를 읽으면 SW13, SW14, SW15, SW16 의 상태를 알 수 있습니다.

 

BYTE byteKEY = PINA & 0x0F;// PORTA3 ~ PORTA0 값 읽기

byteKEY 가 0x0F 이면 모든 키가 눌러지지 않은 상태이고 0x00 이면 모든 키가 눌러진 것입니다.

 

 

< byteKEY 값에 따른 스위치 누름 상태 >

byteKEY 값 SW13 SW14 SW15 SW16
0x0F 안 눌림 안 눌림 안 눌림 안 눌림
0x0E 눌림 안 눌림 안 눌림 안 눌림
0x0D 안 눌림 눌림 안 눌림 안 눌림
0x0C 눌림 눌림 안 눌림 안 눌림
0x0B 안 눌림 안 눌림 눌림 안 눌림
0x0A 눌림 안 눌림 눌림 안 눌림
0x09 안 눌림 눌림 눌림 안 눌림
0x08 눌림 눌림 눌림 안 눌림
0x07 안 눌림 안 눌림 안 눌림 눌림
0x06 눌림 안 눌림 안 눌림 눌림
0x05 안 눌림 눌림 안 눌림 눌림
0x04 눌림 눌림 안 눌림 눌림
0x03 안 눌림 안 눌림 눌림 눌림
0x02 눌림 안 눌림 눌림 눌림
0x01 안 눌림 눌림 눌림 눌림
0x00 눌림 눌림 눌림 눌림

 

예제

http://whiteat.com/bPDS_AVR/57204 에서 EX_01_05.zip 예제를 제공합니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다