본문 바로가기

아두이노우노 R4

아두이노 우노 R4 Minima 4x4 16key 멤브레인 매트릭스 키패드 스위치 HAM2913

반응형

 

아두이노 4x4 16key 멤브레인 매트릭스 키패드 스위치 HAM2913 

 

주의: 현재 아두이노 미니마 라이브러리는 이전 Keypad 라이브러리와 호환되지 않는다고 나와있으니 참고 바랍니다. 호환 라이브러리 목록은 다은 링크 사이트를 참고바랍니다.

 

멤브레인 4*4 키패드 상세 튜토리얼 정보는 이 링크를 확인하세요.

 

 

제품 개요

 

마이크로 컨트롤러 프로젝트를 위한 인터페이스 구성 요소가 포함된 16버튼 멤브레인 키보드.

편리한 접착식 뒷면으로 다양한 애플리케이션에 키패드를 간편하게 장착할 수 있습니다.

애플리케이션 아이디어: 보안 시스템, 메뉴 선택, 임베디드 시스템용 데이터 입력.

 

작동 방식

 

매트릭스 키패드는 4열과 4열의 조합을 사용하여 호스트 장치(일반적으로 마이크로 컨트롤러)에 버튼 상태를 제공합니다. 각 키 아래에는 푸시 버튼이 있으며, 한쪽 끝은 한 행에 연결되고 다른 쪽 끝은 한 열에 연결됩니다. 이러한 연결은 여기에 나와 있습니다: 

 

 

마이크로 컨트롤러가 어떤 버튼을 눌렀는지 확인하려면 먼저 4개의 열(핀 1-4 )을 한 번에 하나씩 낮게 또는 높게 당긴 다음 4개의 행(핀 5-8)의 상태를 폴링해야 합니다.열의 상태에 따라 마이크로 컨트롤러는 어떤 버튼을 눌렀는지 알 수 있습니다. 

 

 

4x4 16key 멤브레인 매트릭스 키패드 스위치 HAM2913

 

 

 

 

 

연결 참고

 

 

 

 

테스트를 위해 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
    }
  }
}

 

 

 

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

당신의 성공을 위해 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩