오늘은 간단히 KeyPad를 사용하는 법을 살펴보도록 하겠습니다. 아두이노 선 연결하는 것은 별로 어렵지 않습니다. 그리고 Keypad 라이브러리만 잘 연결하면 딱히 사용하는 것도 어렵지 않고 쉽게 사용 가능합니다. 이번 포스팅은 아주 간단한 내용입니다.
1. KeyPad
총 8개의 핀으로 구성되어 있으며 내부 구조는 다음 포스팅에 설명하겠지만 우선은 간단히 가로4핀 x 세로4핀으로 선이 연결되었다고 생각하시면 됩니다. 4x4로 행과 열을 나타낸다고 생각하시면 됩니다. 우선 배열로 KeyPad[4][4]로 생각하시면 될 듯요. 핀 연결은 아두이노 디지털핀 아무곳이나 8핀을 연결하시면 돼요.
2. 회로도 구성
준비물 : KeyPad, 아두이노우노
내용 : 키를 누르면 그 값을 시리얼모니터로 출력할거기 때문에 간단히 회로도 구성함.
진짜로 간단하지요. 그냥 순서대로 0부터 7핀으로 아두이노에 그냥 Keypad를 붙이여 연결되어 버립니다. 하지만 그렇게 하지 않고 2번핀부터 연결했습니다. 왜냐면 시리얼통신으로 그 결과를 출력하기 때문에 시리얼통신을 담당하는 0, 1핀 때문에 Keypad가 0, 1핀에 연결된 위치값이 가상시뮬레이터에서 작동을 하지 않습니다. 그래서 어쩔 수 없이 회로도 그림처럼 연결해야겠죠.
Keypad의 출력할 키값 keys[4][4]로 전부 사용할 예정입니다. 그 값을 생성자 함수를 통해서 사전에 미리 만들어 놓게 됩니다. 즉, Keypad를 누른다고 알아서 그 값을 찍어주는게 아니라 출력할 값을 미리 지정해놓은 출력값과 사용할 행과 열의 핀과 행과 열의 숫자를 Keypad 객체변수를 선언할때 인자로 넘겨주게 됩니다.
이렇게 함으로써 특정 행과열 위치의 key를 누르면 keys[4][4] 해당된 위치의 값을 출력으로 나오게 됩니다.
그냥 선만 대충 순서대로 연결하면 끝나고 그 결과는 위 코딩을 복사해서 시뮬레이터를 돌리면 아두이노 IDE 시리얼모니터에 키값이 출력되는걸 확인하실 수 있을꺼에요.
마무리
오늘은 Keypad를 라이브러리를 사용해서 Keypad 클래스 변수를 선언하고 이 클래스 안에 키를 읽어오는 함수를 이용해서 키가 눌렀을때 키값을 가져오게 됩니다.
그냥 선 연결을 잘하고 Keypad 클래스 변수 선언과 읽을 함수명만 기억하시면 쉽게 Keypad를 사용하실 수 있을꺼에요.
이걸 이용하면 가령 LCD16x2에 붙이면 키로 누른걸 LCD16x2로 출력시킬 수 있겠죠. 그러면 계산기를 만들고 싶은 충동이 안느껴지나요. LCD16x2 (LiquidCrystal) 제어(아두이노) 이걸 다시 보시고 회로도를 수정하시고 계산기를 한번 연구를 해보세요.