Я видел пару видеороликов и инструкций, в которых люди создали матрицу светодиодов, управляемых фотодиодами/фоторезисторами, внутри журнальных столиков, так что, когда вы кладете руку на стол или ставите кружку, загораются огни под объектом.
Я хочу вывести это на новый уровень, управляя матрицей с помощью микроконтроллера. Причина в том, что я могу сделать с матрицей еще больше, может быть, превратить ее в измеритель громкости или устроить классное световое шоу.
Вот о чем я подумал:
Матрица светодиодов 9х5 (синие) с матрицей датчиков 8х4 (фоторезисторы):
У меня есть пара микроконтроллеров PIC с 36 контактами ввода-вывода, а также несколько других, меньших по размеру. Раньше я не использовал PIC MC, поэтому я подумал, что это может быть хорошим проектом для их использования.
Есть ли у вас какие-либо рекомендации по конструкции контроллера? Может быть, я мог бы использовать 2 MC, один для светодиодов и один для датчиков? Может быть, просто использовать один MC и использовать демультиплексоры для переключения множества датчиков?
Положите это на меня, ребята!
Многое зависит от имеющихся у вас PIC, особенно от того, сколько и какой тип ввода-вывода они имеют, подумайте об аналоговом мультиплексированном АЦП.
Совместное использование строк или столбцов между датчиками и светодиодами, как предлагает Крис, часто выполняется, если датчики являются цифровыми, как ввод-вывод светодиодов, например, для матрицы кнопок. Это не так очевидно для смешивания аналогового (фоторезисторы) и цифрового (светодиоды). То, чем вы могли бы поделиться, - это входы / выходы, управляющие (де) мультиплексорами, если они вам понадобятся.
Наличие отдельного контроллера для датчиков и светодиодов, как вы предлагаете, может быть хорошей идеей, поскольку дополнительные входы/выходы могут сделать некоторые мультиплексоры ненужными. Вам также понадобится несколько линий на каждом для связи между ними. Насколько я понимаю, вы захотите начать с простого «действия!». сигнал, но когда взаимодействие станет более продвинутым, вы можете передать координаты кружки другому контроллеру, чтобы его действия могли зависеть от этих координат. Подойдет простой UART, но все равно потребуется 2 входа/выхода на каждом контроллере (даже если у вас есть связь только в одном направлении).
Для датчиков я думаю о двух мультиплексорах CD4051, один для строк, другой для столбцов матрицы. Если ваш PIC имеет аналоговый мультиплексор для своего АЦП, вы можете обойтись только одним CD4051, но при этом потребуется несколько дополнительных операций ввода-вывода.
Выберите один из фоторезисторов, чтобы включить его последовательно с постоянным резистором, чтобы получился делитель напряжения, чтобы можно было определить номинал фоторезистора с помощью АЦП.
Для управления светодиодами вы можете использовать демультиплексор 74HC138 для выбора одной строки и использовать активный выход низкого уровня для управления транзистором PNP, который будет источником тока для управления столбцом. Для управления колонками вы можете напрямую использовать порт ввода-вывода PIC.
Как я уже сказал, вы можете разделить линии управления для одного из аналоговых мультиплексоров с линиями 74HC138. Просто экономит 3 линии ввода/вывода.
Вы можете рассмотреть возможность использования расширителей ввода-вывода, cpld или да, вы можете использовать подчиненные микроконтроллеры. Поскольку такой проект должен реагировать только в пределах человеческих временных рамок, внутренняя архитектура может потребовать выполнения длинной последовательности действий для получения одного видимого человеком результата.
Ваши датчики можно легко разместить в матрице строк и столбцов, которую вы будете сканировать.
Ваши светодиоды могут быть матричными до такой степени, что вы готовы управлять ими импульсами, а не непрерывно (что довольно часто).
Возможно, вы сможете разделить один набор (строку или столбец) линий между датчиками и светодиодами.
Вы можете изучить технику под названием «шарлиплексинг», хотя, как и во всем, она имеет компромиссы.
Олин Латроп
Шубхам
эндолит
давр
пользователь18368