Как управлять светодиодной матрицей 16x16 с помощью LED драйверов?
Требуется управление светодиодной матрицей 16x16 (не RGB, просто белые диоды) с поддержкой ШИМ с помощью драйверов TLC5940 (16 PWM каналов) с помощью Arduino UNO.
Правильно ли я понимаю, что потребуется 2 драйвера, один на столбцы, другой на строки? И нужно ли отдельное питание? (светодиоды 3мм, 3В, 20мА) и что ещё может потребоваться для правильной работоспособности матрицы?
2 драйвера, один на столбцы, другой на строки - не получится. Допустим, линии столбцов выведены на TLC5940. Он замыкает свои выходы на землю, значит, линии строк надо замыкать на VСС. Для этого нужно 16 P-канальных транзисторов и сдвиговый регистр, чтобы их переключать.
Алгоритм работы будет следующий:
1) Включить 1-ю строку (в регистре 1111...1110, p-канальный транзистор открывается "нулем")
2) Передать в драйвер значения ШИМ для всех пикселей строки
3) Выждать некоторое время
4) Сдвинуть регистр для включения следующей строки (1111...1101)
5) GOTO 2
Ух, жесть какая! Подключение регистров внимательно не смотрел, вроде бы там все правильно. Но ULN2803 тут не пойдет. Он - "нижний" ключ, коммутирующий свои выходы на землю. А нужен - "верхний", коммутирующий на плюс питания.
Схема ключа будет примерно такая: www.rc-float-flying.rchomepage.com/RCWeb/PIC/P-Cha...
То, что обозначено как LOAD - одна строка диодов (анодами к транзистору). Вход, отмеченный PIC, можно цеплять к выходу регистра, напрямую или через резистор в нес-ко десятков ом.
Р-канальный транзистор надо подобрать по требуемому току и напряжению отпирания. У IRF, например, есть удобная подбиралка: www.irf.com/product/Power-MOSFETs-Single-Power-MOS...
В сборках по 8/16 таких транзисторов не встречал, есть одинарные, двойные, иногда счетверенные, придется набирать из них.
В любой непонятной ситуации - смотрите даташит, там ясно сказано, что ULN2803 - сборка NPN-транзисторов с открытым коллектором. Если найдете, можете поставить M54562FP - то же самое, только с открытым эмиттером, "верхние" ключи.