Матрица клавиатуры 16 на 8
Я работаю над проектом, пытаюсь сконструировать клавиатуру с 80 кнопками. Моя проблема заключается в том, как мультиплексировать его так, чтобы я подавал arduino только два набора BCD или двоичных файлов(в зависимости от того, что проще), которые должны управлять 75 светодиодными дисплеями одновременно с парой 7 сегментов. Плата светодиодного дисплея является удаленной, что означает, что я должен управлять платами последовательно. Остальные 5 кнопок, оставшихся из 80, предназначены для других функций, таких как очистка последнего номера и т. Д. Пожалуйста, помогите!
Большое вам спасибо, ребята. Чтобы ответить на FuaZe, он имеет размер 16*8, но не будет использовать все 128 кнопок. Эти дополнительные кнопки предназначены для будущего расширения. Входные данные должны состоять из 16 цветов и 8 строк. Плата удаленного вывода представляет собой светодиодную матрицу с номерами от 1 до 75, расположенную в диапазоне 15 цветов и 5 рядов. Та же самая панель дисплея должна иметь двухзначный дисплей 7seg. Доступ к удаленной плате осуществляется последовательно, чтобы использовать несколько кабелей. Когда я нажимаю кнопку на матрице, скажем, в строке 2 столбца 5, на 7seg должно появиться число 20 плюс соответствующий диод в строке 2 столбца 5, чтобы загореться. Короче говоря, если это плата для бинго с номерами от 1 до 75..
@Moscar, 👍1
Обсуждение3 ответа
Проще всего было бы использовать 2 arduino, которые каким-то образом подключены. Один из них должен сказать другому, что делать. Я предлагаю вам сделать то, что читает кнопки, "главным", а другое - "подчиненным" устройством.
Вы можете использовать 8 входов для каждого столбца и 10 выходов для каждой строки. Затем вы проверяете все 8 входов на столбец (довольно быстро), а затем сможете прочитать каждую кнопку.
Вы можете выбрать отправку изменений или только каждого значения на подчиненное устройство.
Ведомое устройство должно было бы сделать что-то подобное, но с 2 выходами, чтобы адресовать правильные светодиоды/сегменты.
В качестве альтернативы вы можете использовать регистры сдвига.
На самом деле в Интернете можно найти множество учебных пособий по этому вопросу. Вам следует ознакомиться с учебными пособиями "Мультиплексирование Arduino" или "Светодиодный куб Arduino".
Другим вариантом было бы использование как регистров сдвига, так и расширителей портов, таких как расширитель портов MCP23017 I2C от Adafruit.
Вы можете использовать это для кнопок, просто возьмите несколько из них и подключите их к шине I2C, и у вас будет более восьмидесяти контактов по цене 2! Если вы решите использовать ранее указанный расширитель, вы также сможете воспользоваться библиотекой Adafruit.
Затем используйте регистр сдвига для ваших светодиодов, используя один из выводов, который не является I2C.
Примечание: Расширители выводов могут обрабатывать ввод и вывод. Регистры сдвига предназначены только для вывода!
Удачи!
На самом деле для ввода также существуют регистры сдвига, такие как CD4021B от Texas Instruments: https://www.ti.com/product/CD4021B. Он широко поддерживается (например, библиотека arduino: https://www.arduino.cc/en/tutorial/ShiftIn) и также имеет 16-битную версию, @dzervas
Большое вам спасибо, ребята. Чтобы ответить на FuaZe, он равен 16*8, но не будет использовать все 128 кнопок. Эти дополнительные кнопки предназначены для дальнейшего расширения. Входные данные должны состоять из 16 цветов и 8 строк. Плата удаленного вывода представляет собой светодиодную матрицу с номерами от 1 до 75, расположенную в диапазоне 15 цветов и 5 цветов. Одна и та же плата дисплея должна иметь двухзначный дисплей 7seg. Доступ к удаленной плате осуществляется последовательно, чтобы использовать несколько кабелей. Когда я нажимаю кнопку на матрице, скажем, в строке 2 столбца 5 число 20 должно появиться на 7seg плюс соответствующий диод в строке 2 столбца 5, чтобы загореться. Короче говоря, если это плата для бинго с номерами от 1 до 75..
- Arduino nano как клавиатура HID
- Keyboard.h не найден
- Нажать клавишу Windows, используя «keyboard.press();»
- Отправка мультимедийных клавиш клавиатуры с помощью библиотеки клавиатур
- Какие диоды использовать в матричном вводе кнопок/клавиш? (Изготовление игровой клавиатуры)
- NodeMCU поддерживает внедрение ключей?
- ESP8266: #include <Keyboard.h>вызывает фатальную ошибку: HID.h: No such file or directory
- Как преобразовать USB в PS/2?
Почему название вопроса: "матрица клавиатуры 16 на 8", 16*8 не равно 80 кнопкам?, @Paul
Да, 16x8 = 128 как 16 выходов, мультиплексированных на 8 входов, или наоборот, и, возможно, мультиплексирование сегментов 75+2x7 как еще 10 на 7. Похоже, что 16+8+10+7 = 41 штифт, он легко поместился бы на 54-контактный разъем ввода-вывода mega. Может быть, вам нужен мультиплексированный вход с 80 кнопками, а также мультиплексированные выходы 8x10 и 7x2? Расскажите подробнее о требованиях к платам и требованиях плат., @Dave X
Спросите свою любимую службу поиска в Интернете о "ключах для поиска Чарльза". Это может помочь подключить больше ключей, используя меньше контактов., @gone