Проблема в работе кода
- Войдите на сайт для отправки комментариев
Сб, 08/02/2020 - 22:41
Всем привет! Есть код, но он как то некорректно работает. Помогите плиз.
void keypada() {
customKeypad.tick();
if (customKeypad.available()) {
keypadEvent e = customKeypad.read();
if (e.bit.EVENT == KEY_JUST_PRESSED) {
if (codent > 3) {
} else {
code[codent] = e.bit.KEY;
codent++;
Serial.print((char)code[0]);
Serial.print((char)code[1]);
Serial.print((char)code[2]);
Serial.println((char)code[3]);
if (codent == 4) {
if (code[0] == '1') {
if (code[1] == '2') {
if (code[2] == '3') {
if (code[3] == '4') {
Serial.println(F("Welcome, You have pass"));
Serial.println(F("---------------------------"));
granted();
} else {
Serial.println(F("You don't have pass"));
Serial.println(F("---------------------------"));
denied();
}
} else {
Serial.println(F("You don't have pass"));
Serial.println(F("---------------------------"));
denied();
}
} else {
Serial.println(F("You don't have pass"));
Serial.println(F("---------------------------"));
denied();
}
} else {
Serial.println(F("You don't have pass"));
Serial.println(F("---------------------------"));
denied();
}
codent = 0;
code[0] = ' ';
code[1] = ' ';
code[2] = ' ';
code[3] = ' ';
}
}
}
}
}
В серийный порт получаю:
23:22:23.198 -> *
23:22:23.198 -> *#
23:22:23.198 -> *#7
23:22:23.232 -> *#78
23:22:23.232 -> You don't have pass
23:22:23.232 -> ---------------------------
23:22:23.267 -> 9
23:22:23.267 -> 9#
23:22:23.301 -> 9##
23:22:23.301 -> 9##7
23:22:23.301 -> You don't have pass
23:22:23.336 -> ---------------------------
23:22:23.336 -> *
23:22:23.371 -> *8
23:22:23.371 -> *89
23:22:23.371 -> *89#
23:22:23.371 -> You don't have pass
23:22:23.405 -> ---------------------------
23:22:23.440 -> 7
23:22:23.440 -> 7*
23:22:23.440 -> 7*8
23:22:23.440 -> 7*89
23:22:23.440 -> You don't have pass
23:22:23.474 -> ---------------------------
23:22:23.508 -> #
23:22:23.508 -> ##
23:22:23.508 -> ###
23:22:23.508 -> ###*
23:22:23.543 -> You don't have pass
23:22:23.543 -> ---------------------------
Что не так? Я ничего не нажимаю.
INPUT_PULLUP
Я ведь использую библиотеку... Там то используется не только input для кейпада
Тогда резисторы паяй.
Кстати, я тут в библиотеке нашёл
void Adafruit_Keypad::begin() { _keystates = (volatile byte *)malloc(_numRows * _numCols); memset((void *)_keystates, 0, _numRows * _numCols); for(int i=0; i<_numCols; i++){ pinMode(_col[i], OUTPUT); digitalWrite(_col[i], HIGH); } for(int i=0; i<_numRows; i++){ pinMode(_row[i], INPUT_PULLUP); } }ААААА я понял.... Я забыл написать в сетапе функцию Keypad.begin();
ААААА я понял.... Я забыл написать в сетапе функцию Keypad.begin();
Не только это. Заодно забыл
1. Выложить полный код.
2. Сказать что этот код должен делать
3. Сказать, что он реально делает
4. Сказать, чем отличается №2 от №3
я понял уже. первый мой вопрос на форуме) Сейчас всё работает.