При разработке прибора на основе микроконтроллера почти всегда возникает проблема выбора устройства отображения информации. Если требуется выводить на индикатор буквы, цифры и другие символы высокой яркости большого размера, то зачастую лучшее решение - матричный светодиодный дисплей. В предлагаемой статье рассматривается разработанный автором модуль такого дисплея на восемь знакомест. Он может работать с различными источниками информации, получая от них данные для отображения по интерфейсу TWI (I2C). Прототипом блока управления светодиодной матрицей послужила микросхема MAX6953.
Описываемый модуль разработан как альтернатива ЖКИ-модулям, основной недостаток которых - плохая читаемость выведенной информации из-за малого размера символов и недостаточной контрастности изображения. Кроме светодиодной матрицы в модуле имеется микроконтроллерный блок управления, преобразующий получаемые от внешнего устройства коды символов и управляющую информацию в сигналы управления светодиодами.
Знакогенератор модуля содержит символы с кодами $20-$7F, согласно кодовой таблице ASCII (знаки препинания, цифры, латинские буквы и некоторые другие символы), и с кодами $A8, $B8, $00-$FF (русские буквы в соответствии с кодовой таблицей CP1251). При желании набор отображаемых символов можно дополнить, внеся изображения новых символов в находящуюся в программе микроконтроллера таблицу знакогенератора.
Реализовано "мигание" символа на любом из восьми знакомест. Номер знакоместа и частоту мигания задает источник информации. Предусмотрена регулировка яркости свечения светодиодов как автоматически, в зависимости от внешней освещенности, так и вручную.
Модуль соединяется с источником информации по интерфейсу TWI (I2C). Если связи нет, на дисплей выводится сообщение "No Data!". Адрес модуля на шине TWI - $A0. При необходимости (например, если к той же шине подключены и другие устройства с тем же адресом) его можно изменить. Для этого в программе микроконтроллера модуля (файле MATRIX_8D.asm) нужно найти строку
.equ AddrTWI = $A0
и заменить в ней адрес $A0 другим, после чего оттранслировать программу заново.
Блок управления светодиодами состоит из двух узлов, схемы которых показаны на рис. 1 и рис. 2. Платы узлов соединяют между собой, стыкуя разъёмы X3 с X12, X4 c X9, а X6 с X7. К разъёму X2 присоединяют кабель от источника информации. Через разъём X1 после изготовления модуля программируют микроконтроллер DD1 (ATmega8-16PU). Во FLASH-память микроконтроллера нужно загрузить коды из файла MATRIX_8D.hex, а его конфигурация должна быть запрограммирована в соответствии с табл. 1, где значения разрядов, отличающиеся от установленных изготовителем микроконтроллера, выделены цветом.
Рис. 1.
Рис. 2.
Таблица 1
Разряд | Знач. | Разряд | Знач. |
RSTDISBL | 1 | BODLEVEL | 0 |
WDTON | 0 | BODEN | 0 |
SPIEN | 0 | SUT1 | 1 |
CKOPT | 1 | SUT0 | 0 |
EESAVE | 1 | CKSEL3 | 1 |
BOOTSZ1 | 0 | CKSEL2 | 1 |
BOOTSZ0 | 0 | CKSEL1 | 1 |
BOOTRST | 1 | CKSEL0 | 1 |
Примечание. 0 - разряд запрограммирован, 1 - разряд не запрограммирован.
На платах имеется восемь (по одному на каждое знакоместо дисплея) узлов A1-A8, формирующих под управлением микроконтроллера сигналы, подаваемые на объединённые катоды каждого ряда светодиодов знакоместа матрицы. Все эти узлы одинаковы и собраны по схеме, изображённой на рис. 3. В каждом имеются микросхема МС74HC595AD, преобразующая выдаваемый микроконтроллером последовательный код в параллельный, и набор усилителей тока с открытым коллектором на составных транзисторах (микросхема ULN2803ADW). К каждому из разъёмов X1 узлов А1-А8 подключают катоды рядов светодиодов соответствующего знакоместа.
Рис. 3.
Программа микроконтроллера поочерёдно выбирает узлы A1-A8 для загрузки в них кодов, выводя на выходы PC0-PC2 микроконтроллера код от О до 7 (на единицу меньше номера знакоместа), а на выход PC3 - сигнал, разрешающий работу дешифратора DD2 (см. рис. 1). В результате на соответствующем коду выходе дешифратора устанавливается низкий логический уровень, что разрешает соединённой с ним микросхеме DD1 (рис. 3) приём последовательного кода, формируемого программой на выходе PB3 микроконтроллера.
Сигналами, формируемыми на выходах PD3-PD7 и усиленными транзисторами VT2-VT6, поочерёдно подаётся напряжение питания в каждую из пяти цепей, объединяющих аноды колонок светодиодов матрицы. Колонки с одинаковыми номерами восьми знакомест соединены параллельно и включаются одновременно, что делает мерцание дисплея менее заметным. Транзистор VT1, управляемый сигналом с выхода PB0 микроконтроллера, позволяет выключить все светодиоды дисплея одновременно.
Для питания модуля дисплея на разъём X8 подают напряжение 9 В, 50 Гц. Его можно получить от любого подходящего понижающего трансформатора. Автор использовал трансформатор ТП-132-3 с напряжением на вторичной обмотке 9 В при токе нагрузки 0,5 А. Переменное напряжение выпрямляет диодный мост VD2. Интегральный стабилизатор DA1 обеспечивает напряжением 5 В микросхемы модуля. На полевом транзисторе VT8 и параллельном стабилизаторе DA2 построен стабилизатор с регулируемым выходным напряжением. Использована схема, описанная И. Нечаевым в статье "Стабилизатор с малым минимальным падением напряжения". Устанавливаемое с помощью подстроечного резистора R17 напряжение Uярк через транзисторы VT1-VT6 поступает на аноды светодиодов и определяет яркость их свечения.
Дополнительно управляет яркостью полевой транзистор VT7. На его затвор подано напряжение с образованного переменным резистором R11, постоянными резисторами R12, R13 и фоторезистором R16 делителя напряжения. Сопротивление фоторезистора уменьшается при возрастании освещённости места, где установлен дисплей. В результате напряжение на затворе транзистора VT7 растёт и он открывается, что уменьшает напряжение Uярк и яркость свечения светодиодов дисплея. Переменным резистором R11 устанавливают оптимальные пределы автоматического изменения яркости. Сняв перемычку S1, автоматическое управление яркостью можно отключить.
Светодиодная матрица расположена на двух одинаковых платах, собранных по показанной на рис. 4 схеме. Разъём X1 первой светодиодной платы соединяют с разъёмом X5 платы, схема которой изображена на рис. 1, а разъёмы X2-X5 - с разъёмами X1 узлов A1-A4 на той же плате. Аналогично соединяют вторую светодиодную плату с той, схема которой показана на рис. 2, используя разъём X11 и разъёмы Xl узлов A5-A8.
Рис. 4.
Вместо дискретных светодиодов для построения дисплея можно использовать готовые светодиодные знакосинтезирующие матрицы с организацией 5x8 или 5x7 элементов с анодами, подключёнными к колонкам матрицы. Учтите только, что матрицы 5x7 не позволят полноценно отобразить все русские буквы.
Все печатные платы модуля - двусторонние из фольгированного стеклотекстолита толщиной 1,5 мм. Чертёж печатных проводников платы, на которой находятся микроконтроллер и узлы A1-A4, показан на рис. 5, а расположение деталей на ней - на рис. 6.
Рис. 5.
Рис. 6.
Продолжение следует
Автор: Н. Салимов, г. Ревда Свердловской обл.