ESP32 C3 Super Mini 키패드 3x4
3x4 키패드는 전선 7가닥만으로 ESP32 C3 Super Mini에 12개의 버튼을 제공합니다. 프로젝트에 숫자와 PIN 코드를 입력하는 가장 저렴한 방법입니다. 이 ESP32 C3 Super Mini 키패드 튜토리얼에서는 배선과 코드를 작고 간단한 단계로 보여줍니다.
이 튜토리얼에서 배울 내용:
- 3x4 멤브레인 키패드란 무엇이며 어떻게 동작하는지
- 키패드의 7개 핀(R1-R4와 C1-C3)의 역할
- 3x4 키패드를 ESP32 C3 Super Mini에 연결하는 방법
- 누른 키를 모두 시리얼 모니터에 출력하는 방법
- "*"와 "#" 키로 비밀번호를 확인하는 방법

필요한 하드웨어
| 1 | × | ESP32 C3 Super Mini | 아마존 | |
| 1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
| 1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
| 1 | × | 키패드 3x4 | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 |
3x4 키패드 소개
3x4 키패드는 4행 3열로 배치된 12개의 키가 있는 얇은 멤브레인 패드입니다.
주요 특징:
- 12개의 키: 숫자 0-9와 "*", "#" 키
- 7개의 핀만 사용: 행 핀 4개와 열 핀 3개
- 전원 핀 없음: 키패드에는 VCC와 GND가 필요 없습니다.
- 매트릭스 스캔: 보드가 한 번에 한 행씩 확인하여 눌린 키를 찾습니다.
- 매우 얇음: 평평한 멤브레인이라 어떤 평평한 표면에도 붙일 수 있습니다.
기술 사양:
- 배열: 4행 x 3열
- 핀: 7개 (R1, R2, R3, R4, C1, C2, C3)
- 로직 레벨: 3.3V로 동작하므로 ESP32 C3 Super Mini에 안전합니다.
- 전류: 거의 0입니다. GPIO 핀으로 직접 구동합니다.
- 접점 종류: 각 키 아래에 있는 단순한 열림/닫힘 스위치
작동 원리
각 키는 행 전선 하나와 열 전선 하나를 연결하는 작은 스위치입니다.
- 대기 상태: 어떤 행도 어떤 열과 연결되어 있지 않습니다.
- 키를 누름: 그 키의 행과 열이 서로 닿습니다.
- 스캔: ESP32 C3 Super Mini가 한 행을 LOW로 만든 다음, 3개의 열 핀을 읽습니다.
- 결과: LOW였던 행과 LOW로 읽힌 열을 조합하면 정확한 키를 알 수 있습니다.
- 예: "5"를 누르면 R2 행과 C2 열이 연결됩니다.
이 모든 스캔은 키패드 라이브러리가 대신 해 줍니다. getKey() 함수만 호출하면 됩니다.
핀 배치
3x4 키패드에는 두 그룹으로 나뉜 7개의 핀이 있습니다.
- R1 핀: 1행 - 맨 위 줄의 키 (1, 2, 3)
- R2 핀: 2행 - 두 번째 줄의 키 (4, 5, 6)
- R3 핀: 3행 - 세 번째 줄의 키 (7, 8, 9)
- R4 핀: 4행 - 맨 아래 줄의 키 (*, 0, #)
- C1 핀: 1열 - 왼쪽 열 (1, 4, 7, *)
- C2 핀: 2열 - 가운데 열 (2, 5, 8, 0)
- C3 핀: 3열 - 오른쪽 열 (3, 6, 9, #)

배선도
4개의 행 핀과 3개의 열 핀을 ESP32 C3 Super Mini의 빈 GPIO 핀 7개에 연결합니다.

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
| 키패드 핀 | ESP32 C3 Super Mini 핀 |
|---|---|
| R1 | GPIO2 |
| R2 | GPIO3 |
| R3 | GPIO4 |
| R4 | GPIO5 |
| C1 | GPIO6 |
| C2 | GPIO7 |
| C3 | GPIO10 |
- 참고: 정확히 이 핀들을 이 순서대로 사용하세요. 아래 코드도 같은 핀을 사용합니다.
- 참고: 키패드에는 VCC 핀과 GND 핀이 없습니다. 신호선 7가닥만 필요합니다.
- 참고: GPIO8(내장 LED), GPIO9(부트 핀), GPIO20 또는 GPIO21(시리얼 모니터 UART)은 사용하지 마세요.
- 참고: 각 점퍼선을 단단히 꽂으세요. 선 하나가 헐거우면 한 행 또는 한 열 전체가 동작하지 않습니다.
※ 주의:
3x4 키패드는 7개의 핀이 필요한데, ESP32 C3 Super Mini에는 빈 핀이 매우 적습니다. 이 배선은 보드의 빈 핀을 거의 모두 사용합니다. 연결 후에는 GPIO0과 GPIO1만 남으므로, 프로젝트에 디스플레이, 릴레이, 센서도 필요하다면 미리 계획하세요.
WARNING
ESP32 C3 Super Mini는 3.3V 로직에서만 동작합니다. 키패드 핀을 5V에 절대 연결하지 마세요. GPIO 핀에 5V가 들어가면 보드가 손상될 수 있습니다.
ESP32 C3 Super Mini 코드 - 키 읽기
첫 번째 스케치는 눌린 키를 시리얼 모니터에 출력합니다.
이 코드가 하는 일:
- GPIO2, GPIO3, GPIO4, GPIO5를 4개의 행 핀으로 설정합니다.
- GPIO6, GPIO7, GPIO10을 3개의 열 핀으로 설정합니다.
- DIYables_Keypad 라이브러리로 백그라운드에서 키패드를 스캔합니다.
- GetKey() 함수로 루프마다 키 하나를 읽습니다.
- 그 키를 115200 보드레이트로 시리얼 모니터에 출력합니다.
빠른 단계
- ESP32 C3 Super Mini가 처음이신가요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하여 개발 환경을 설정하세요.
- 부품 연결: 위의 배선도에 따라 3x4 키패드를 ESP32 C3 Super Mini에 연결합니다.
- 보드 연결: USB Type-C 케이블로 ESP32 C3 Super Mini를 PC에 연결합니다.
- IDE 열기: Arduino IDE 소프트웨어를 실행합니다.
- 라이브러리 매니저 열기: Arduino IDE 왼쪽 바의 Libraries 아이콘을 클릭합니다.
- 라이브러리 검색: 검색창에 "DIYables_Keypad"를 입력합니다.
- 라이브러리 설치: DIYables.io의 키패드 라이브러리를 찾은 다음, Install을 클릭합니다.
- Search for DIYables_Keypad created by DIYables.io and click the Install button.
- 보드 선택: Tools > Board에서 ESP32 C3 Super Mini가 선택되어 있는지 확인합니다.
- 포트 선택: Tools > Port에서 보드의 COM 포트를 선택합니다.
- 코드 복사: 위 코드를 복사하여 Arduino IDE에 붙여넣습니다.
- 코드 업로드: Arduino IDE에서 Upload 버튼을 클릭합니다.
- 시리얼 모니터 열기: 보드레이트를 115200으로 설정합니다.
- 테스트: 키패드의 키를 하나씩 몇 개 눌러 봅니다.
- 출력 확인: 각 키가 시리얼 모니터에 나타나는 것을 확인합니다.
- 전문가 팁: 잘못된 키가 출력되면 행 전선과 열 전선을 서로 바꿔 보세요. 키패드 리본 케이블의 순서가 항상 같지는 않습니다.
라인별 코드 설명
위의 ESP32 C3 Super Mini 코드에는 라인별 설명이 포함되어 있습니다. 코드의 주석을 읽어 보세요!
키패드와 비밀번호
키패드는 도어락이나 PIN 패드처럼 비밀번호를 확인할 때 가장 유용합니다.
- 일반 키 (0-9): 사용자가 입력 중인 비밀번호에 키를 추가합니다.
- "*" 키: 입력한 비밀번호를 지우고 다시 시작합니다.
- "#" 키: 입력한 비밀번호를 저장된 비밀번호와 비교한 다음, 지웁니다.
- 일치: ACCESS GRANTED를 출력한 다음, 원하는 동작을 실행합니다.
- 불일치: ACCESS DENIED를 출력합니다.
ESP32 C3 Super Mini 코드 - 키패드 비밀번호
두 번째 스케치는 키패드를 간단한 PIN 패드로 바꿉니다.
이 코드가 하는 일:
- 스케치에 비밀번호를 저장합니다. 기본값은 7890입니다.
- 입력한 비밀번호를 String에 키 하나씩 쌓아 만듭니다.
- "*"를 누르면 입력한 비밀번호를 지웁니다.
- "#"를 누르면 입력한 비밀번호를 확인합니다.
- 시리얼 모니터에 ACCESS GRANTED 또는 ACCESS DENIED를 출력합니다.
빠른 단계 (비밀번호 예제)
- 코드 업로드: 비밀번호 스케치를 ESP32 C3 Super Mini에 업로드합니다.
- 시리얼 모니터 열기: 보드레이트를 115200으로 설정합니다.
- 틀린 코드 입력: 1, 2, 3, 4, 5, 6을 누른 다음 "#"를 누릅니다.
- 올바른 코드 입력: 7, 8, 9, 0을 누른 다음 "#"를 누릅니다.
- 출력 확인: 시리얼 모니터에서 결과를 읽습니다.
- 전문가 팁: 입력을 잘못했을 때는 언제든지 "*"를 누르세요. 확인하지 않고 입력을 지웁니다.
응용/프로젝트 아이디어
3x4 키패드는 여러 작은 보안 및 제어 프로젝트의 입력 장치로 쓰입니다.
- 도어락: 올바른 PIN을 입력하면 릴레이나 솔레노이드 잠금장치를 엽니다.
- 금고: 뚜껑을 열기 전에 긴 키 입력을 요구합니다.
- 경보 키패드: 짧은 코드로 경보를 설정하고 해제합니다.
- 출입 기록: 모든 키 입력을 시간과 함께 SD 카드에 저장합니다.
- 간단한 계산기: 0-9를 사용하고, "*"와 "#"를 연산 키로 씁니다.
- 메뉴 입력: 메뉴 번호를 입력하여 LCD 화면의 항목을 선택합니다.
도전해 보기
3x4 키패드와 ESP32 C3 Super Mini로 다음 작은 프로젝트를 연습해 보세요.
- 쉬움: 저장된 비밀번호를 자신만의 6자리 코드로 바꾸고 테스트해 보세요.
- 쉬움: 키를 누를 때마다 GPIO8의 내장 LED를 한 번 깜박여 보세요.
- 보통: PIN을 숨기기 위해 입력한 각 숫자를 시리얼 모니터에 별표 문자로 표시해 보세요.
- 보통: 세 번 틀리면 30초 동안 입력을 잠가 보세요.
- 어려움: 전원이 꺼져도 유지되도록 비밀번호를 플래시 메모리에 저장하고, 비밀번호를 바꾸는 키 입력 순서를 추가해 보세요.
- 어려움: 릴레이와 솔레노이드 잠금장치를 구동하여 올바른 PIN으로 실제로 문이 열리게 해 보세요.