본문 바로가기

아두이노우노 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
    }
  }
}

 

 

 

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^