Клавиатура 4x3 не обеспечивает никакого вывода, а вывод, который она обеспечивает, неверен
Я пытаюсь понять, как использовать клавиатуру 4x3, и просто хочу получать номера клавиш, которые я выбираю на последовательном мониторе. Проблема, которую я получаю, заключается в том, что некоторые из клавиш, которые я набираю, не дают мне никакого вывода, а затем клавиши, которые обеспечивают вывод, не соответствуют их соответствующему номеру. Например, клавиша 1 не дает никакого выхода, тогда как клавиши 3 и 4 дают выход 4 и 9 соответственно. Я прикрепил изображения того, как клавиатура подключена
Код, который я использую, приведен ниже:
#include <Keypad.h>
// Константы для размеров строк и столбцов
const byte ROWS = 4;
const byte COLS = 3;
// Массив для представления клавиш на клавиатуре
char hexaKeys[ROWS][COLS] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
// Подключения к Ардуино
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3};
// Создаем объект клавиатуры
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup() {
// Настройка последовательного монитора
Serial.begin(9600);
}
void loop() {
// Получить значение ключа при нажатии
char customKey = customKeypad.getKey();
if (customKey) {
// Выводим значение ключа в последовательный монитор
Serial.println(customKey);}
}
Мне просто нужна помощь, чтобы определить, где я ошибаюсь и как я могу решить проблему, с которой столкнулся. Спасибо.
@Campbell White, 👍-1
Обсуждение1 ответ
Лучший ответ:
Я определил, где ошибся. Клавиатура имеет другую разводку по сравнению с традиционным способом. Я нашел эту эту статью полезной. В код внесены следующие изменения:
byte rowPins[ROWS] = {8, 3, 4, 6};
byte colPins[COLS] = {7, 9, 5};
Как видно, контакты строк и столбцов необходимо изменить.
- Как выйти из цикла while с помощью клавиатуры?
- Проблема при кодировании обнаружения клавиш клавиатуры 4x4 (без библиотеки)
- Закодируйте и подключите ЖК-дисплей и кнопку
- Печать string and integer LCD
- Почему мои часы реального времени показывают неверное время с моего ПК?
- Arduino uno + cnc Shield v3 + драйвер шагового двигателя A4988 + AccelStepper?
- Подключить Arduino к телефонной линии?
- Отправьте несколько значений int из Python в Arduino, используя pySerial
Твои картинки для меня бесполезны, опубликуй настоящую схему того, как у тебя это подключено. Я знаю из первых рук, что клавиатуры будут работать, если их правильно подключить к хорошему UNO. Не забудьте показать клавиатуру на схеме и правильно пометить строки и столбцы., @Gil
Эти контакты припаяны к клавиатуре? Соединение выглядит немного изворотливым на фото., @Nick Gammon
Привет, Гил, я включил схему, однако я смог найти только клавиатуру 4x4, поэтому просто игнорируйте подключение к контакту 2. Привет, Ник, да, они припаяны к клавиатуре., @Campbell White