개발자 뺚

[Arduino] Keypad.h 라이브러리 함수 본문

Information/Arduino

[Arduino] Keypad.h 라이브러리 함수

2023. 7. 13. 20:00
Keypad keypad = Keypad( makeKeymap(key), cp_row, cp_col, row, col );
# cp : connect_position

# example
const byte ROWS = 4;
const byte COLS = 4;

char key[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

byte cp_row[ROWS] = {6, 7, 8, 9};
byte cp_col[COLS] = {5, 4, 3, 2};

Keypad keypad = Keypad( makeKeymap(key), cp_row, cp_col, ROWS, COLS );

Keypad의 전처리 함수이다. 해당 내용은 4 x 4 키패드를 기준으로 작성되었다. Keypad의 전처리 함수의 각 매개변수에 대해서는 아래에서 추가적으로 설명하겠다.

key : Keypad의 각 키에 해당하는 문자

cp_row : Keypad의 열 키 스위치가 아두이노 보드 디지털부에 연결된 위치

cp_col : Keypad의 행 키 스위치가 아두이노 보드 디지털부에 연결된 위치

row : Keypad의 열 개수

col : Keypad의 행 개수

 

char key[row][col] = {
  {'char','char','char','char'},
  {'char','char','char','char'},
  {'char','char','char','char'},
  {'char','char','char','char'}
};

# example
char key[4][4] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

Keypad의 전처리 함수의 첫번째 매개변수로 각 키에 대응하는 문자를 선언한다.

row : Keypad의 열 개수

col : Keypad의 행 개수

 

byte cp_row[ROWS] = {r1, r2, r3, r4};
byte cp_col[COLS] = {c1, c2, c3, c4};
# cp : connect_position

# example
byte cp_row[4] = {6, 7, 8, 9};
byte cp_col[4] = {5, 4, 3, 2};

Keypad의 전처리 함수의 두번째, 세번째 매개변수로 Keypad의 각 키 스위치가 아두이노 보드와 연결된 포트 위치를 정수로 선언한다. Keypad의 연결부에 보면 각 포트에 포트 번호 r1~c4가 있다. 각 포트가 아두이노 보드 디지털부에 연결된 위치를 작성해주면 된다.

 

keypad.getKey();

# example
char key = keypad.getKey();

Keypad로 입력된 문자를 받아오는 함수이다. 아래 예시와 같이 사용되며 keypad로 입력된 문자를 받아와 문자 자료형 변수에 대입한다. 정수를 입력 받더라도 문자 자료형으로 저장되어 있기 때문에 정수로 사용하기 위해서는 형변환을 통해 정수로 만들어줘야 한다.

'Information > Arduino' 카테고리의 다른 글

[Arduino] LiquidCrystal_I2C.h 라이브러리 함수  (3) 2023.07.10