아두이노 나노 ESP32 - 키패드 | Arduino Nano ESP32 - Keypad

이 튜토리얼은 키패드와 함께 Arduino Nano ESP32를 사용하는 방법에 대한 지침을 제공합니다. 구체적으로, 우리는 다음을 배울 것입니다:

준비물

1×Arduino Nano ESP32 Amazon
1×USB Cable Type-C 쿠팡 | Amazon
1×Keypad 3x4 and 4x4 Kit 쿠팡 | Amazon
1×(Alternative) Keypad 3x4 쿠팡 | Amazon
1×(Alternative) Keypad 4x4 쿠팡 | Amazon
1×(Optional) DC Power Jack 쿠팡 | Amazon
1×Breadboard 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Recommended) Screw Terminal Expansion Board for Arduino Nano 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

키패드 정보

Keypad

키패드는 행렬(행과 열)로 배열된 일련의 버튼으로 구성됩니다. 버튼은 키를 나타냅니다. 키패드의 종류는 매우 다양합니다. 키패드 3x4(12개의 키)와 키패드 4x4(16개의 키)는 DIY 프로젝트에서 가장 흔하게 사용되는 두 가지입니다.

키패드 핀배열

키패드 핀은 두 그룹으로 분류됩니다: 행과 열.

  • 키패드 3x4는 7개의 핀을 가지고 있습니다:
    • R1, R2, R3, R4: 행 핀
    • C1, C2, C3: 열 핀
  • 키패드 4x4는 8개의 핀을 가지고 있습니다:
    • R1, R2, R3, R4: 행 핀
    • C1, C2, C3, C4: 열 핀
    Keypad Pinout

    키패드 작동 원리

    키패드 작동 방법을 확인하세요

키패드와 아두이노 나노 ESP32 간의 배선도

Arduino Nano ESP32 Keypad wiring diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

아두이노 나노 ESP32 코드

키패드 3x4

/* * 이 Arduino Nano ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-keypad */ #include <Keypad.h> #define ROW_NUM 4 // 네 개의 행 #define COLUMN_NUM 3 // 세 개의 열 char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // 키패드의 행 핀에 연결된 Arduino Nano ESP32 핀 const byte pin_column[COLUMN_NUM] = {5, 4, 3}; // 키패드의 열 핀에 연결된 Arduino Nano ESP32 핀 Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); void setup() { Serial.begin(9600); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); } }

키패드 4x4

/* * 이 Arduino Nano ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-keypad */ #include <Keypad.h> #define ROW_NUM 4 // 네 개의 행 #define COLUMN_NUM 4 // 네 개의 열 char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // 키패드의 행 핀에 연결된 Arduino Nano ESP32 핀 const byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; // 키패드의 열 핀에 연결된 Arduino Nano ESP32 핀 Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); void setup() { Serial.begin(9600); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); } }

사용 방법

  • 아두이노 나노 ESP32를 처음 사용하는 경우, 아두이노 나노 ESP32를 위한 환경 설정 방법을 참조하세요.
  • 아두이노 IDE의 왼쪽 탐색 바에 있는 Library Manager 아이콘을 클릭하여 라이브러리 관리자를 엽니다.
  • 검색 상자에 keypad를 입력한 다음, Mark Stanley, Alexander Brevig이 작성한 키패드 라이브러리를 찾습니다.
  • Install 버튼을 클릭하여 키패드 라이브러리를 설치합니다.
Arduino Nano ESP32 keypad library
  • 위의 코드를 복사한 다음 Arduino IDE에 붙여넣으세요.
  • Arduino IDE 상에서 Upload 버튼을 클릭하여 Arduino Nano ESP32 보드에 코드를 컴파일하고 업로드하세요.
  • Arduino IDE에서 시리얼 모니터를 엽니다.
How to open serial monitor on Arduino IDE
  • 키패드에서 몇 개의 키를 누르세요
  • 시리얼 모니터에서 결과를 확인하세요
COM6
Send
1 2 3 4 * #
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

키패드와 비밀번호

키패드는 비밀번호로 누군가를 인증하는 데 널리 사용됩니다. 이 튜토리얼에서는 코드에 미리 정의된 유효한 비밀번호가 있습니다. 사용자가 키패드에서 비밀번호를 입력하면, 미리 정의된 비밀번호와 비교됩니다:

  • 일치하는 경우, 접근이 허용됩니다.
  • 그렇지 않은 경우, 접근이 제한됩니다.

키패드로 비밀번호를 사용하기 위해, 우리는 두 개의 특별한 키를 지정합니다:

  • 비밀번호 입력을 시작하는 키. 예를 들어, 키 "*"
  • 비밀번호 입력을 끝내는 키. 예를 들어, 키 "#"

사용자가 입력한 비밀번호는 "입력된 비밀번호 문자열"이라고 하는 문자열에 저장됩니다. 키가 눌렸을 때:

  • 입력된 키가 "*"인 경우, 입력된 비밀번호 문자열을 초기화하여 새 비밀번호를 시작합니다.
  • 입력된 키가 "*" 또는 "#"이 아닌 경우, 키를 입력된 비밀번호 문자열에 추가합니다.
  • 입력된 키가 "#"인 경우, 입력된 비밀번호 문자열미리 정의된 비밀번호를 비교합니다.

키패드 - 비밀번호 코드

/* * 이 Arduino Nano ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-keypad */ #include <Keypad.h> #define ROW_NUM 4 // 네 줄 #define COLUMN_NUM 3 // 세 열 char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // 키패드의 행 핀에 연결된 아두이노 나노 ESP32 핀 const byte pin_column[COLUMN_NUM] = {5, 4, 3}; // 키패드의 열 핀에 연결된 아두이노 나노 ESP32 핀 Keypad keypad = Keypad( makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password = "7890"; // 여기서 비밀번호를 변경하세요 String input_password; void setup() { Serial.begin(9600); input_password.reserve(32); // 최대 입력 문자는 33입니다, 필요하면 변경하세요 } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); if (key == '*') { input_password = ""; // 입력 비밀번호 지우기 } else if (key == '#') { if (password == input_password) { Serial.println("The password is correct, ACCESS GRANTED!"); // 여기에서 작업을 수행하세요 } else { Serial.println("The password is incorrect, ACCESS DENIED!"); } input_password = ""; // 입력 비밀번호 지우기 } else { input_password += key; // 입력 비밀번호 문자열에 새 문자 추가 } } }
  • 위의 코드를 실행하세요.
  • 아두이노 IDE에서 시리얼 모니터를 열어주세요.
How to open serial monitor on Arduino IDE
  • "123456" 키를 누르고 "#"을 누릅니다.
  • "7890" 키를 누르고 "#"을 누릅니다.
  • 시리얼 모니터에서 결과를 확인하세요. 아래와 같습니다:
COM6
Send
The password is incorrect, ACCESS DENIED! The password is correct, ACCESS GRANTED!
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!