BASIC4MCU | 질문게시판 | 아두이노 메가 4x4메트릭스 키패드 코드 문의입니다~
페이지 정보
작성자 choish 작성일2022-11-10 23:38 조회695회 댓글0건본문
다름이 아니라
4x4 매트릭스 키패드를 이용해서 복합적인 작업을 수행할려고 하고있습니다.
예를 들자면 1번 버튼을 누르면 아래의 코드에 있는 조건문에 만족하여 하위 조건문인 'D', '*', '#' 을 구동하는 방식이며 위 3개의 버튼중 D,*을 누르면 조건을 만족하여 시리얼 프린트를 통하여 모니터에 글자가 나와야되는데
나오지 않는 현상이 발생되고 있습니다. 또한, '#'을 누르면 최초의 LOOP문으로 돌아가고 싶은데 작동되는지 확신이 들지 않습니다....
인터넷을 찾아봐도 매트릭스 키패드를 사용해서는 다중 조건문(?)등을 쓰는 예제를 찾지 못하였습니다...
아래의 코드에 문제점을 해결하며 원인을 꼭 알려주셨으면 하는 바램 입니다.. 꼭부탁드립니다..
------(코드)-----
#include <Key.h> //키패드 라이브러리
#include <Keypad.h> //키패드 라이브러리
const byte ROWS = 4; // 행의 개수
const byte COLS = 4; // 열의 개수
// 키패드를 누를 때 출력되는 값을 저장할 (PIN이 위로가게)
char keys[ROWS][COLS] = {
{'*','0','#', 'D'},
{'7','8','9', 'C'},
{'4','5','6', 'B'},
{'1','2','3', 'A'}
};
//{'1','2','3', 'A'} 입력받는방향
//{'4','5','6', 'B'}
//{'7','8','9', 'C'}
//{'*','0','#', 'D'}
byte rowPins[ROWS] = {9,8,7,6 }; // R1, R2, R3, R4의 차례로 R1~R4와 연결된 디지털 핀번호
byte colPins[COLS] = { 10,11,12,13 }; // C1, C2, C3, C4의 차례로 C1~C4와 연결된 디지털 핀번호
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
// Keypad 라이브러리를 설정 (배열값, 행의 핀, 열의 핀, 행 갯수, 열 갯수)
int R=11; //RGB핀 설정
int G=12;
int B=13;
void setup(){
Serial.begin(9600);
Serial.print("Welcome User");
}
void loop(){
char key = kpd.getKey(); // 입력받은 키패드의 배열값을 key에 저장
if(key){
if(key=='1'){
Serial.print("1눌림");
char keyy = kpd.getKey(); // 입력받은 키패드의 배열값을 key에 저장
delay(5000);
switch(keyy){
case 'D':
Serial.println("D눌렸고case문 들어감");
case '*':
Serial.println("*눌렸고case문 들어감");
case '#':
Serial.println("#누르고 브레이크작동");
break;
}
}
}
}
댓글 0
조회수 695등록된 댓글이 없습니다.