Библиотека клавиатуры не работает или я где-то ошибаюсь
Я использую PICSimLab для моделирования клавиатуры. Конфигурация клавиатуры показана на рисунке:
и код:
#include <LiquidCrystal.h>
#include <Key.h>
#include <Keypad.h>
const byte rows = 4; // 4 строки
const byte columns = 3; // 3 столбца
char keys[rows][columns] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
}; // раскладка клавиатуры
byte rowPins[rows] = {3, 2, 1, 0};
byte columnPins[columns] = {6, 5, 4}; // настройка контактов подключения
Keypad kp = Keypad(makeKeymap(keys), rowPins, columnPins, rows, columns); // настройка клавиатуры
const int d4 = 7, d5 = 8, d6 = 9, d7 = 10, en = 11, rs = 12; // настройка контактов ЖК-дисплея
LiquidCrystal myLcd(rs, en, d4, d5, d6, d7); // настройка ЖК-дисплея
void setup() {
myLcd.begin(16,2);
myLcd.print("Last name:Smith");
myLcd.clear();
myLcd.print("AM:1396");
myLcd.setCursor(0,1);
myLcd.print("ENTER VOL:");
}
void insertVol() {
int i = 0;
while (i < 4) {
char key = kp.getKey();
while(key) {
myLcd.setCursor(i+11,1);
myLcd.print(key);
}
i++;
}
}
void loop() {
}
Цель состоит в том, чтобы отобразить несколько строк на ЖК-дисплее, затем ввести 4-значный пароль и отобразить каждую цифру пароля на кристалле ЖК-дисплея.
Я вижу эту картинку, и она правильная:
Но когда я нажимаю любую кнопку на клавиатуре, она не отображается на экране. Хочу прокомментировать еще кое-что: длина строки "ENTER VOL"
составляет 10 символов, поэтому при распечатке пароля мы начинаем с позиции 11,1
на ЖК-экране.
Я пробовал подключать L1 -> 0 , L2 -> 1 , L3 -> 2 , L3 -> 3
и C1 -> 4 , C2 -> 5 , C3 -> 6
на случай, если это имеет значение, но все равно ничего. Библиотека сломана или я ошибаюсь? Я пробовал использовать Keypad до этого проекта и столкнулся с теми же проблемами. Помощь признательна.
1 ответ
Лучший ответ:
Ваша функция loop()
пуста. Добавьте к ней эти две строки:
insertVol();
delay(500);
чтобы вызвать функцию insertVol()
- Датчик освещенности BH1750 всегда дает выходной сигнал 54612 лк
- Ошибка повторного объявления библиотеки Arduino
- Тензодатчик Arduino HX711 сильно дрейфует
- Мой ультразвуковой датчик показывает диапазон только 4 см?
- Не удается заставить клавиатуру использовать Keyboard.write на Arduino Uno
- Объединение 2 датчиков в один код с 1 кнопкой
- Ультразвуковой датчик показывает странные показания
- Попытка прочитать разные уровни газа с помощью датчика газа MQ2