아두이노 - 키패드 | Arduino - Keypad
키패드는 도어락, ATM, 계산기 등 많은 기기에서 널리 사용됩니다. 이 튜토리얼에서 우리는 다음을 배우게 됩니다:
- 아두이노와 키패드 3x4 및 키패드 4x4 사용 방법.
- 아두이노와 키패드 3x4 및 키패드 4x4에서 값을 읽는 방법.
- 키패드에서 입력한 비밀번호를 검증하는 방법.
준비물
1 | × | Arduino Uno | Amazon | |
1 | × | USB 2.0 cable type A/B | 쿠팡 | Amazon | |
1 | × | Keypad 3x4 and 4x4 Kit | 쿠팡 | Amazon | |
1 | × | (Alternative) Keypad 3x4 | 쿠팡 | Amazon | |
1 | × | (Alternative) Keypad 4x4 | 쿠팡 | Amazon | |
1 | × | Jumper Wires | Amazon | |
1 | × | (Optional) 9V Power Adapter for Arduino | Amazon | |
1 | × | (Recommended) Screw Terminal Block Shield for Arduino Uno | 쿠팡 | Amazon | |
1 | × | (Recommended) Breadboard Shield For Arduino Uno | 쿠팡 | Amazon | |
1 | × | (Recommended) Enclosure For Arduino Uno | Amazon |
키패드 정보
키패드는 행과 열(매트릭스라고 함)로 배열된 일련의 버튼 세트입니다. 각 버튼을 키라고 합니다.
키패드에는 여러 가지 종류가 있습니다. DIY 프로젝트에 인기 있는 두 가지 유형은 키패드 3x4(12개의 키)와 키패드 4x4(16개의 키)입니다.
핀 배치
키패드 핀은 두 그룹으로 나뉩니다: 행과 열.
3x4 키패드는 7개의 핀을 가지고 있습니다: 4개의 행 핀(R1, R2, R3, R4)과 3개의 열 핀(C1, C2, C3).
4x4 키패드는 8개의 핀을 가지고 있습니다: 4개의 행 핀(R1, R2, R3, R4)과 4개의 열 핀(C1, C2, C3, C4).
작동 원리
키 입력을 감지하는 과정을 키패드 스캐닝이라고 합니다.
그것은 키 하나하나를 확인하기 때문에 "스캐닝"이라고 불립니다.
로우 핀(row-pins)은 아두이노(Arduino)의 출력 핀(output pins)에 연결됩니다.
열 핀은 아두이노의 입력 핀(INPUT_PULLUP, 이 상태에서 키가 눌리지 않으면 입력 핀의 값은 HIGH임)에 연결됩니다.
각 줄마다:
- 모든 행 핀을 HIGH로 설정합니다.
- 현재 행 핀만 LOW로 설정합니다.
- 각 열의 상태를 읽습니다.
- 만약 열 핀이 HIGH이면 ⇒ (행, 열)에 있는 키가 눌리지 않았습니다.
- 만약 열 핀이 LOW이면 ⇒ (행, 열)에 있는 키가 눌렸습니다.
- 위의 과정을 다음 행 핀에 대해 반복합니다.
※ NOTE THAT:
위는 키패드를 스캔하는 방법 중 하나입니다. 모든 HIGH를 LOW로, 모든 LOW를 HIGH로 반전시켜 키패드를 스캔할 수 있습니다.
키패드가 행렬로 배열되고 연결되는 이유는 무엇인가요? 이것은 스캐닝 과정을 복잡하게 만듭니다. 각 키를 독립적인 버튼으로 사용하면, 버튼의 상태를 읽음으로써 키의 상태를 간단히 결정할 수 있는데 왜 그렇게 하지 않나요?
우리가 알다시피, 독립적인 버튼은 아두이노의 핀 하나와 GND가 필요합니다. 예로 4x4 키패드를 들어봅시다. 각 키를 독립적인 버튼으로 생각한다면, 16개의 키에 아두이노 핀 16개와 GND 핀이 필요합니다. 만약 연결된 키를 행렬 형태로 배열한다면, 아두이노의 핀 8개만 사용하면 되므로 아두이노의 핀을 절약할 수 있습니다. 간단히 말해서, 답은 아두이노 핀을 절약하기 위해서입니다.
선연결
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
키패드를 위한 프로그래밍 방법
Keypad 라이브러리 덕분에, 키패드가 어떻게 작동하는지 이해하든 말든, 아두이노와 키패드를 사용하는 것이 아주 쉽습니다.
아두이노 코드
키패드 3x4
키패드 4x4
사용 방법
- Arduino IDE의 왼쪽 바에 있는 Libraries 아이콘으로 이동하세요.
- “키패드”를 검색한 후, Mark Stanley, Alexander Brevig가 만든 키패드 라이브러리를 찾으세요.
- 키패드 라이브러리를 설치하려면 Install 버튼을 클릭하세요.
- 위의 코드를 복사하고 Arduino IDE로 열기
- Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino에 업로드하기
- 시리얼 모니터 열기
- 키패드에서 몇 가지 키를 누르기
- 시리얼 모니터에서 결과를 확인하기
키패드와 비밀번호
키패드의 인기 있는 사용례 중 하나는 비밀번호 입력입니다. 이 사용례에서, 우리는 두 개의 특별한 키를 지정합니다:
- 비밀번호 입력을 시작/재시작하는 키. 예를 들어, 키 "*"
- 비밀번호 입력을 종료하는 키. 예를 들어, 키 "#"
비밀번호는 선택된 두 개의 특수 키를 제외한 나머지 키들을 포함하는 문자열이 될 것입니다.
키가 눌렸을 때.
- 키가 "*" 또는 "#"이 아니면, 키를 사용자의 입력 비밀번호 문자열에 추가합니다.
- 키가 "#"이면, 사용자의 입력 비밀번호 문자열을 비밀번호와 비교하여 입력 비밀번호가 올바른지 확인한 다음 사용자의 입력 비밀번호 문자열을 지웁니다.
- 키가 "*"이면, 사용자의 입력 비밀번호 문자열을 지웁니다.
키패드 - 비밀번호 코드
- 위 코드를 실행하세요
- 시리얼 모니터를 엽니다
- "123456" 키를 누르고 "#"를 누르세요
- "1234" 키를 누르고 "#"를 누르세요
- 시리얼 모니터에서 결과를 확인하세요
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.
추가 지식
도전해보세요
- 키패드의 눌린 키를 LCD에 표시하세요. 힌트: Arduino - LCD를 참고하세요.
- 키패드를 사용하여 패스워드 보호가 있는 도어락을 만드세요.