으로 저장 4 자리 값, 그것은, 당신이 좋아하는 뭔가를 할 수 keypad.getKey
반환 int를 가정 크기 (4)의 배열을 사용하는 것이 아마도 가장 쉬운 순진한 방식으로, 사전에 감사합니다 이 : int input[4] = {0};
.
int input[4] = {0};
for (unsigned cursor = 0; cursor < 4; ++cursor) {
input[cursor] = keypad.getKey();
}
을 당신이 사용하려는 경우 :
당신은 당신이 이런 식으로 루프의 어떤 종류의 작업을 수행 할 수 있도록 다음 키를 누를 때 쓸 필요가 배열의 어느 슬롯에 알 커서 변수가 필요합니다 문자를 종료 뭔가를 들어, 코드 변경 (우리가 F가 종료 키를 말할 수있는, 키보드는 0-9 및 AF 키가 말할 수) :
bool checkPassword() {
static const int expected[4] = {4,8,6,7}; // our password
int input[4] = {0};
// Get the next 4 key presses
for (unsigned cursor = 0; cursor < 4; ++cursor) {
int key = keypad.getKey();
// if F is pressed too early, then it fails
if (key == 15) {
return false;
}
// store the keypress value in our input array
input[cursor] = key;
}
// If the key pressed here isn't F (terminating key), it fails
if (keypad.getKey() != 15)
return false;
// Check if input equals expected
for (unsigned i = 0; i < 4; ++i) {
// If it doesn't, it fails
if (expected[i] != input[i]) {
return false;
}
}
// If we manage to get here the password is right :)
return true;
}
지금 당신은 당신의 주에 checkpassword를 기능을 사용할 수 있습니다 이 기능은 다음과 같습니다.
int main() {
while (true) {
if (checkPassword())
//unlock the thing
}
return 0;
}
NB : 타이머 소리를 사용할 수도 있습니다. 이를 수행하는 방법은 타이머를 원하는 기간으로 설정하고 커서 변수를 0으로 재설정하는 것입니다.
(나는 결코 arduino에서 프로그래밍하지 않았으며 키패드 라이브러리에 대해 모르지만 로직 여기에 그것까지)
인공 지능 전화 사업자 그래서 "바운드 KEY_ 다음 전화 번호를 _Enter"당신을 말할 때 그것은 동일하여 누적
value
를 분할 너를 그만 두는게 뭐야? –나는 그것을하는 방법을 모른다. 그것을 설명하는 사이트를 추천 해 주시겠습니까? –
간단합니다. 생각해보십시오 : getkey()를 계속 호출하여 숫자 컨테이너를 채 웁니다. 키를 얻을 때마다 그것을 확인하고, 종료 키를 누른 다음 중지하고, 그렇지 않으면 getkey()를 다시 호출하여 새 키를 얻습니다. –