Простое решение для управления крупной светодиодной RGB-матрицей с ШИМ

Я работаю над небольшим игрушечным устройством, в основе которого лежит массив RGB-светодиодов размером 10 x 8 пикселей; таким образом, необходимо управлять 10 x 8 x 3 = 240 отдельными светодиодами. Я хотел бы контролировать интенсивность каждого светодиода в отдельности, в основном создавая полноцветный дисплей 10 x 8 пикселей.

Дисплей будет управляться микроконтроллером серии AVR. Я ищу простое решение для управления 240 каналами с возможностью индивидуального управления яркостью (мощностью) каждого канала. Насколько я понимаю, нет другого способа сделать это эффективно, кроме ШИМ.

Однако ни один AVR не имеет 240 выходов, поэтому необходимо какое-то расширение/мультиплексирование/последовательно-параллельное преобразование. Сдвиговые регистры были бы решением, но мне сказали, что в сочетании с ШИМ это будет слишком медленно.

Я рассматривал специализированные микросхемы драйверов светодиодов с ШИМ, которые управляются через последовательный интерфейс. (например, Texas Instruments производит несколько таких устройств). Тем не менее, у них максимум 12/16/24 канала, так что мне все равно понадобится довольно много этих устройств. Пока драйверы могут быть подключены последовательно, это может сработать, но устройство будет небольшим, поэтому у меня нет места для большого количества компонентов.

Мне не нужно большое разрешение при управлении яркостью. 8 бит означают 255 уровней на светодиод, что достаточно. Ток возбуждения также не будет проблемой, поскольку я буду использовать маломощные светодиоды, которые должны управляться непосредственно с выходов контроллера или драйвера. Скорость также не будет проблемой; объект будет отображать «изображения» для восприятия человеческими глазами, поэтому мне потребуется максимум 20-30 кадров в секунду.

Хотя я провел довольно много исследований, я не уверен, что ищу в правильных местах, поэтому я решил задать вопрос здесь. Я с нетерпением жду любых подсказок и идей и заранее благодарю вас за любые указатели и идеи!

Есть несколько других вопросов, где вы можете найти подсказки, но учтите следующее: с матричной адресацией, со строками и столбцами, вы можете управлять 240 светодиодами, скажем, 15+16 строками, это гораздо проще.

Ответы (2)

Существует множество микросхем драйверов светодиодов, например TLC5951DAP. Посмотрите, как это используется здесь: Mbled

Подобные проблемы были решены в нескольких проектах с открытым исходным кодом, таких как Peggy2 . Чип, который использует Peggy2, похоже, снят с производства, его заменой может стать MBI5026 .

Однако проблема не в том, как управлять таким количеством, а в том, как контролировать их яркость по отдельности. Чарлиплексирование на самом деле усложняет задачу, поскольку общая ссылка на строку должна быть управляемой.
Поскольку charlieplexing в любом случае является мультиплексированием с временным разделением, вы можете контролировать длительность импульса для каждого светодиода. Но вы правы, он плохо подходит для такого количества индивидуально управляемых светодиодов.

Рассматривали ли вы микросхему драйвера с поддержкой оттенков серого в качестве драйвера столбца, продолжая при этом сканировать строки? Вам придется увеличить ток пропорционально количеству строк, которые вы сканируете, что также означает, что вам понадобится отсечка, чтобы вы не поджарили строку, если MCU остановится.