키패드
키패드는 여러 개의 스위치들이 반복적으로 나열된 것으로 전자식 잠금장치, 통신장치 등에 많이 사용됩니다.
그림 출처: circuitdigest.com
키패드 단자의 개수는 행(row)과 열(column)의 합이 됩니다.
예를들어, 4×4 키패드 단자의 개수는 4+4=8이 됩니다.
아두이노와 키패드의 단자는 1:1로 연결합니다.
라이브러리 설치 및 키패드 테스트
아두이노 기본 명령어로 키패드를 직접 다룰 수도 있지만 제어를 편리하게 하려면 라이브러리를 사용합니다. (이미 설치된 경우 건너뜁니다.)
- 아두이노 메뉴: 스케치 > 라이브러리 포함하기 > 라이브러리 관리…
라이브러리 매니저 창에서 ‘keypad’로 검색합니다. ‘keypad’가 보이면 [설치]를 눌러서 설치합니다.
이미 설치가 되어 있는 경우에는 다시 설치할 필요는 없습니다.
아래와 같이 소스 코드를 작성합니다.
#include <Keypad.h> const byte ROWS = 4; // 행(rows) 개수 const byte COLS = 4; // 열(columns) 개수 char keys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte rowPins[ROWS] = {6, 7, 8, 9}; // R1, R2, R3, R4 단자가 연결된 아두이노 핀 번호 byte colPins[COLS] = {5, 4, 3, 2}; // C1, C2, C3, C4 단자가 연결된 아두이노 핀 번호 Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); void setup() { Serial.begin(9600); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); } }
아두이노에 업로드 한 다음 시리얼 모니터를 켭니다. 키패드를 누르면 해당 키패드의 내용(문자열)이 출력됩니다.
키패드를 누를 때마다 특정 메시지가 출력되도록 하고 싶으면 소스 코드를 아래와 같이 수정합니다.
#include <Keypad.h> const byte ROWS = 4; // 행(rows) 개수 const byte COLS = 4; // 열(columns) 개수 char keys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte rowPins[ROWS] = {6, 7, 8, 9}; // R1, R2, R3, R4 단자가 연결된 아두이노 핀 번호 byte colPins[COLS] = {5, 4, 3, 2}; // C1, C2, C3, C4 단자가 연결된 아두이노 핀 번호 Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); void setup() { Serial.begin(9600); } void loop() { char key = keypad.getKey(); if (key) { switch(key) { case 'A': Serial.println("Hello?"); break; case 'B': Serial.println("I love you."); break; default: Serial.println(key); break; } } }
목차
- 아두이노 고급키트 무작정 따라하기
- 아두이노 8×8 LED Matrix
- 아두이노 Remote Control Test
- 아두이노 Stepper Speed Control
- 아두이노 RFID Reading Test
- 아두이노 LCD Test
- 아두이노 DHT11 온습도 센서 테스트
- 아두이노 3-Color LED Test
- 아두이노 4×4 Keypad Test
- 아두이노 DS1302 Realtime Clock Test
- 아두이노 시계
- 아두이노 초음파 센서 HC-SR04
- 아두이노 초음파 거리측정기
- 아두이노 LCD Test (I2C 모듈 사용)
- 아두이노 초음파 거리측정기 (I2C LCD 사용)
- 아두이노 LM35 온도계 (with Processing)
- 아두이노 미로게임 (MPU-6050 + 프로세싱)