А как работать с несколькими мультиплексорам на ардуинке? Вот есть например 16 канальный CD74HC4067M96

А мне нужно 128 кнопок опрашивать. Самодельная миди клава.
И того 8 мультиплексоров.
На каждый мультиплексор 4 пина управления и 1 аналоговый сигнал.
Это на каждый мультиплексор по 4 пина надо выделять? Или можно как то хитро использовать пины комбинируя?
А нет ничего боле продвинутого для такой цели?
Например есть у меня RGB модуль на 14 led. 14х3 (цвета) светодиодов управлятся всего одним сигнальным выводом. Как такое реализовать с опросом кнопок?
1 месяц назад от MichaelFum

5 Ответы



0 голосов
Для опроса 128 кнопок с использованием 8 мультиплексоров вам потребуется 32 вывода Arduino (по 4 вывода на каждый мультиплексор) . Вы можете комбинировать выводы для управления мультиплексорами, но для этого потребуется дополнительная логика и программирование.
Для управления RGB-модулем с 14 светодиодами с помощью одного вывода вам потребуется схема сдвига уровня или преобразователь уровней. Это позволит преобразовать сигналы управления от Arduino к уровню, необходимому для управления RGB-модулем.
1 месяц назад от Мася Соломатов
0 голосов
Во-первых, не по 4, а по 5. Не забывай про сигнал Enable, который нужен каждому чипу.
Но вобще, тебе не нужно по столько пинов на каждый мультиплексор. Ты можешь подключить сответствующие пины управления параллельно друг другу (S0 одного чипа параллельно S0 остальных, его S1 параллельно S1 остальных, и так дале) . А конкретный чип ты можешь выбирать, подавая на него сигнал Enable.
Итого тебе понадобится 4 (импровизированная шина адреса) + 8 (сигналы E на каждый чип) = 12 пинов ардуины.
А если ещё и подходящий дешифратор прикрутишь, то сможешь вместо 8 пинов для сигналов Enable задействовать только 3 пина.
А во-вторых, один интересный вопрос. На кой чёрт тебе понадобился именно АНАЛОГОВЫЙ мультиплексор? Ты же опрашиваешь клавиатуру, и работаешь с цифровыми сигналами, а не с аналоговыми. Почему бы не воспользоваться ЦИФРОВЫМ мультиплексором, либо сдвиговыми регистрами, или (как уже предлагали выше) , готовыми расширителями портов? С регистами или расширителями тебе вобще достаточно будет пары-тройки пинов на всю 128-кнопочную клавиатуру.
1 месяц назад от Антон Горностаев
0 голосов
Ты ошибаешься, если думаешь что стоит городить восемь четырёхпроводных мультиплексоров для 128 кнопок, ведь гораздо проще и эффективне применить матричную раскладку или использовать I2C-расширители ввода/вывода типа MCP23017, чтобы минимизировать число пинов, а для RGB светодиодов с одним сигнальным выводом применяют адресуемые диоды вроде WS2812.
1 месяц назад от FloyUtz67934
0 голосов
16 штук:
74HC165M/TR, 8-битный регистр сдвига с параллельным входом, последовательным выходом
.
https:/www. chipdip. ru/product/74hc165m-tr

PS.
Ну или 3 мультиплексора и матричная клавиатура 16х8.
1 месяц назад от ClarkParamor
0 голосов
Да вариантов-то тонна, можно управлять напрямую битами адреса, можно управлять ими с регистра, что позволяет использовать всего пару пинов для выставления значения каждого регистра на 8 пинов, и уже он выдаёт адрес, можно расширять через интерфейсы с разными протоколами, типа квадрата, как говорили выше.

По сути тут по_уй, так как время выставления адреса огромное, ибо интерфейс взаимодействия с человеком, с частотой в сотни килогерц ты кнопки нажимать не будешь, так что любой, даже медленный метод вроде последовательного выода, годится.


Хотя на_уя в миди-клавиатуре мультиплексировать аналог?
1 месяц назад от Азат Забиров

Связанные вопросы

2 ответов
7 месяцев назад от NDOJorge4603
1 ответ
10 года назад от Alex
2 ответов
1 год назад от Юлинька Немцева