아두이노 4x4 16key 멤브레인 매트릭스 키패드 스위치 HAM2913
주의: 현재 아두이노 미니마 라이브러리는 이전 Keypad 라이브러리와 호환되지 않는다고 나와있으니 참고 바랍니다. 호환 라이브러리 목록은 다은 링크 사이트를 참고바랍니다.
멤브레인 4*4 키패드 상세 튜토리얼 정보는 이 링크를 확인하세요.
제품 개요
마이크로 컨트롤러 프로젝트를 위한 인터페이스 구성 요소가 포함된 16버튼 멤브레인 키보드.
편리한 접착식 뒷면으로 다양한 애플리케이션에 키패드를 간편하게 장착할 수 있습니다.
애플리케이션 아이디어: 보안 시스템, 메뉴 선택, 임베디드 시스템용 데이터 입력.
작동 방식
매트릭스 키패드는 4열과 4열의 조합을 사용하여 호스트 장치(일반적으로 마이크로 컨트롤러)에 버튼 상태를 제공합니다. 각 키 아래에는 푸시 버튼이 있으며, 한쪽 끝은 한 행에 연결되고 다른 쪽 끝은 한 열에 연결됩니다. 이러한 연결은 여기에 나와 있습니다:
마이크로 컨트롤러가 어떤 버튼을 눌렀는지 확인하려면 먼저 4개의 열(핀 1-4 )을 한 번에 하나씩 낮게 또는 높게 당긴 다음 4개의 행(핀 5-8)의 상태를 폴링해야 합니다.열의 상태에 따라 마이크로 컨트롤러는 어떤 버튼을 눌렀는지 알 수 있습니다.
연결 참고
테스트를 위해 IDE 스케치 프로그램을 엽니다. 라이브러리 포함하기>라이브러리 관리]를 클릭한 후, 아래 라이브러리를 검색하여 설치하세요..
자세한 정보는 이 링크를 참고하세요. 우노 R4 모든 부품 테스트 정보 있습니다.
코드는 아래와 같습니다.
#include <DIYables_Keypad.h> // DIYables_Keypad library
const int ROW_NUM = 4; // four rows
const int COLUMN_NUM = 4; // four columns
char keys[ROW_NUM][COLUMN_NUM] = {
{'1','2','3', 'A'},
{'4','5','6', 'B'},
{'7','8','9', 'C'},
{'*','0','#', 'D'}
};
byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad
byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad
DIYables_Keypad keypad = DIYables_Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM );
void setup(){
Serial.begin(9600);
delay(1000);
Serial.println("Keypad 4x4 example");
}
void loop(){
char key = keypad.getKey();
if (key){
Serial.println(key);
}
}
시험 결과 아주 잘 나옴
참고로 패스워드가 1234A 로 설정된 상황에서 패스워드를 감지하는 코드를 올린다. 물론 출처는 위에 링크를 참고한다.
/*
* This Arduino UNO R4 code was developed by newbiely.com
*
* This Arduino UNO R4 code is made available for public use without any restriction
*
* For comprehensive instructions and wiring diagrams, please visit:
* https://newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-keypad-4x4
*/
#include <DIYables_Keypad.h> // DIYables_Keypad library
const int ROW_NUM = 4; // four rows
const int COLUMN_NUM = 4; // four columns
char keys[ROW_NUM][COLUMN_NUM] = {
{'1','2','3', 'A'},
{'4','5','6', 'B'},
{'7','8','9', 'C'},
{'*','0','#', 'D'}
};
byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // connect to the row pinouts of the keypad
byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; // connect to the column pinouts of the keypad
DIYables_Keypad keypad = DIYables_Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM );
const String password = "1234A"; // change your password here
String input_password;
void setup(){
Serial.begin(9600);
Serial.println("Keypad 4x4 password");
input_password.reserve(32); // maximum input characters is 33, change if needed
}
void loop(){
char key = keypad.getKey();
if (key){
Serial.println(key);
if(key == '*') {
input_password = ""; // clear input password
} else if(key == '#') {
if(password == input_password) {
Serial.println("password is correct");
// DO YOUR WORK HERE
} else {
Serial.println("password is incorrect, try again");
}
input_password = ""; // clear input password
} else {
input_password += key; // append new character to input password string
}
}
}
'아두이노우노 R4' 카테고리의 다른 글
아두이노 SH1106 OLED 동작 (4) | 2024.09.04 |
---|---|
DY-HL50T MP3 음성 음악 방송 모듈 동작 코드 (2) | 2024.09.03 |
아두이노 우노 R4 WiFi 홈 오토메이션. (3) | 2024.08.27 |
아두이노 우노 R4 조이스틱 3D Model Processing 코드 (0) | 2024.08.20 |
TTP223B 터치 센서와 아두이노를 연동하는 방법 (1) | 2024.08.12 |
아두이노 나노 33 IoT 기반 NTP 세계 시계 사용 (1) | 2024.08.07 |
아두이노 푸시 버튼 - 전체 자습서 (1) | 2024.08.05 |
Nano 33 IoT BLE Scanner 코드 (1) | 2024.08.05 |
더욱 좋은 정보를 제공하겠습니다.~ ^^