Изготовление светодиодной матрицы 5×5, управляемой микроконтроллером (PIC16F628A)

Представляю вашему вниманию, в общем-то бесполезную, но очень прикольную конструкцию — светодиодную матрицу размером 5х5, управляемую микроконтроллером. Микроконтроллерное управление дает возможность программно реализовать на этой матрице различные световые эффекты (как фантазия позволит), что в общем-то и делает конструкцию такой забавной.

Схема:

Схема светодиодной матрицы

Транзисторы VT1…VT5 — это драйверы строк (в открытом состоянии они подключают соответствующие строки к шине питания), VT6…VT10 — драйверы столбцов (в открытом состоянии они подключают соответствующие столбцы к земле). Когда на базы транзисторов VT1…VT5 подан высокий уровень ("1") — они открываются, когда низкий ("0") — закрываются. Для транзисторов VT6…VT10 все наоборот, — когда на базах высокий уровень ("1") — транзисторы закрыты, а когда низкий ("0") — открыты. Если светодиод оказывается подключен и к земле и к питанию — через него начинает протекать ток, и, соответственно, он светится.

Использование драйверов обусловлено тем, что максимальный ток порта ввода/вывода ограничен 25мА, а при полностью включенной строке или столбце суммарный ток светодиодов порядка 50 мА, т.е. мы не можем подключать строки и столбцы непосредственно к выводам контроллера.

Элементы:

R1..R25 = 220 Ом. Эти резисторы являются токоограничивающими (ограничивают токи, протекающие через светодиоды). В общем-то светодиоды бывают разные — у одних номинальный ток 10мА, у других 5 мА, у одних падение 1,5В, у других 2В и т.д. Как в общем случае посчитать номинал токоограничивающего резистора? Всё просто:

RTO=(UПИТ-UD-UTR1-UTR2)/IНОМ, где

UПИТ — напряжение питания, UD — падение напряжения на светодиоде,
UTR1 — падение напряжения (коллектор-эмиттер) на открытом транзисторе 1 (драйвер строки),
UTR2 — падение напряжения (коллектор-эмитер) на открытом транзисторе 2 (драйвер столбца),
IНОМ — номинальный ток светодиода.

На практике, обычно, характеристики светодиода неизвестны. В этом случае сопротивление токоограничивающего резистора можно определить экспериментально. Есть два способа (будем считать, что падение напряжения на открытом транзисторе от тока зависит слабо, тем более, что для таких токов так оно фактически и есть):

1) Определяем характеристики светодиода: подключаем светодиод к регулируемому источнику напряжения, задаем напряжение = 1 В и начинаем его плавно увеличивать. Измеряем, при каком напряжении (UD) он светится с желаемой яркостью и какой при этом ток (IНОМ). По приведенной выше формуле рассчитываем RTO.

2) Вычисляем U1=UПИТ-UTR1-UTR2, подаем это напряжение на последовательно включенные светодиод и переменный резистор на 1 кОм (предварительно установленный на максимум сопротивления) и начинаем плавно убавлять сопротивление переменного резистора. Когда светодиод начнет светиться с желаемой яркостью — измеряем сопротивление переменного резистора, это значение и есть искомое RTO.

R26…R35 = 470 Ом. Эти резисторы ограничивают токи баз транзисторов.

R36 = 1 кОм. Резистор, подтягивающий MCLR к питанию.

С1 = 0,1 мкФ. Конденсатор, фильтрующий ВЧ помехи по питанию контроллера (может его ставить и не обязательно, но меня так учили — всегда на контроллер вешать керамику по питанию и как можно ближе к ногам).

VT1…VT5 = КТ315 (падение напряжения в открытом состоянии 0,4 В)

VT6…VT10 = КТ361 (падение напряжения в открытом состоянии 0,4 В)

Готовый девайс:

Фото светодиодной матрицы

Скачать плату в формате Sprint-Layout 5.0. Плата разведена под использование SMD резисторов и конденсатора C1.

Тексты программ и готовые прошивки:

поочерёдное включение столбцов и строк

универсальная программа, позволяющая показывать с заданной скоростью до 17 кадров

Добавить комментарий