Индикаторы матричные светодиодные – Матричный индикатор | Светодиодное табло

Содержание

Матричный индикатор | Светодиодное табло

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

Внешний вид индикатора

Исходя из определения, матричный индикатор имеет два и более рядов и два и более столбцов однотипных элементов отображения (точек, пикселей) с индивидуальным управлением. Практическое применение имеют матричные индикаторы 5 х 7, 5 х 8, 8 х 8 и более пикселей. Форма пикселя обычно — круглая, но встречаются квадратные, а также структурированные пиксели. Цвет пикселя определяется используемой технологией изготовления индикатора. Выпускаются монохромные (одноцветные) и многоцветные индикаторы. Распространение имеют светодиодные, люминисцентные, OLED, PLED, а также — блинкерные индикаторы. В дальнейшем остановимся на светодиодных матричных индикаторах, как наиболее распространенных.

    

Корпус светодиодного матричного индикатора изготавливается из пластика, внутри — печатная плата с установленными светодиодами, чаще SMD типа. Корпус полностью залит компаундом. Пиксели оформлены в виде окошек, заполненных полупрозрачным светорассеивающим материалом. Большинство матричных индикаторов изготавливается таким образом, чтобы можно было установить их рядом друг с другом, с получением непрерывного графического поля.

Светодиодный матричный индикатор. Принцип работы

Матричный индикатор должен позволять управление каждым пикселем индикатора. Применяется два распространенных метода управления — статический и динамический (мультиплексный, растровый).

Статический способ управления

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

Динамический способ управления индикатором

Для упрощения схемы управления, а также, для снижения количества выводов индикатора, используется динамический способ управления. Динамический способ подразумевает поочередное включение различных групп элементов отображения со скоростью, превышающей время реакции человеческого глаза. Несмотря на то, что изображение на индикаторе при таком способе управления в каждый момент времени неполное, глаз человека интегрирует его и видит целостную картинку. На похожем принципе формируется изображение на экране телевизора с ЭЛТ.

 

Рассмотрим, для примера, светодиодный монохромный матричный индикатор 5 х 7 пикселей. Для реализации динамического способа управления, все светодиоды в рядах объединяются по катодам, а в столбцах — по анодам. Видна экономия выводов индикатора — вместо 70 выводов получилось 12. На аноды последовательно подаются положительные периоды напряжения (фазы), на катоды подается отрицательный сигнал (код). Для формирования полного изображения, необходимо для каждого столбца (фазы) последовательно установить соответствующий скан-код. Так для индикатора на пять столбцов по семь пикселей в столбце, необходимо установить для каждой из пяти фаз код из семи линий (бит). Весь цикл обработки индикатора должен уложиться в 20 мс (50 Гц) или менее, для того, чтобы картинка на индикаторе была устойчивой и дрожание изображения было незаметным. С учетом возможных биений яркости, возникающих на фоне работы люминесцентных ламп освещения, частоту обновления желательно увеличить до 100 и более Гц.

В рассмотренном варианте все светодиоды в рядах объединяются по катодам. Существует вариант исполнения матричных индикаторов, в которых светодиоды в рядах объединяются по анодам. Маленькие матричные индикаторы имеют по одному светодиоду в пикселе. При увеличении размеров, в пикселе может быть установлено несколько светодиодов, включенных последовательно. Таким образом, улучшается равномерность свечения и повышается яркость пикселей.

Матричные индикаторы могут быть больших размеров, с количеством рядов и столбцов, значительно превышающих рассмотренный вариант. Однако, увеличивать скважность в соответствии с количеством столбцов не всегда возможно. Для светодиодных матричных индикаторов скважность редко делают более 16. Это ограничение задается производителем матричных индикаторов в виде ограничения максимально допустимого импульсного тока для каждого пиксела.

Управление яркостью изображения на индикаторе

Светодиод — малоинерционный прибор индикации, поэтому чаще всего яркостью свечения светодиодов управляют с помощью диммирования — снижения яркости при быстром мигании с различной скважностью. Яркость светодиода, видимая глазом, практически пропорциональна длительности его горения в таком режиме. Чем больше скважность — тем меньше яркость. В динамических схемах индикации, когда светодиоды в индикаторе уже зажигаются с определенной скважностью, процесс управления яркостью накладывается на процесс обновления (сканирования) экрана и частота переключения значительно повышается. Так для управления рассмотренным выше одноцветным индикатором с 256 уровнями яркости, частота сканирования увеличивается в 256 раз.

Многоцветные матричные индикаторы

Для того, чтобы изготовить многоцветный матричный индикатор, в каждый пиксель устанавливают два и более разноцветных светодиода. Выводы фазы (колонки) в таких матрицах подключаются к анодам всех светодиодов в колонке, а код подается отдельно на ряды первого, второго, и далее, цветов. Если в индикатор установлены светодиоды трех цветов (R — красный, G — зеленый, B — синий), такой индикатор называется полноцветным. С помощью таких индикаторов создаются полноцветные графические табло, которые способны работать в True-color режиме (24 бит на пиксел).

Светодиодный матричный индикатор. Применение

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

Матричные св

led-displays.ru

5.2.2. Матричные светодиодные индикаторы

В тех случаях, когда требуется вывод алфавитно-цифровой информации, часто используют матричные индикаторы. Такой индикатор выполнен в виде матрицы светодиодов размерностью M x N, где М – число строк матрицы, N – число колонок. Наибольшее распространение получили индикаторы с размерностью 7 х 5 и 9 х 7. Для зажигания одного светодиода необходимо пропустить ток 10 – 15 мА при напряжении 2.0 – 2.5 В. Рассмотрим конструкцию индикатора АЛ306, представленную на рис. 40, 41.

Рис. 40. Конструктивное исполнение матричного индикатора АЛ306

Рис. 41. Цоколевка матричного индикатора АЛ306(а,б,ж,и)

Конструкция индикатора представляет собой корпус, в котором расположены 36 светодиодов каждый над своим отверстием.

К однокристальному МК матричные индикаторы необходимо подключать через управляемые схемы формирования тока колонок и тока строк. Для отображения многосимвольной информации используют однострочные и многострочные дисплеи.

Для отображения символа на матричном индикаторе необходимо использовать принцип динамической индикации по колонкам, поскольку в статическом режиме такой индикатор будет потреблять значительный ток, так, например, для отображения цифры 0 на одном индикаторе ток составит 160 мА. Графический образ символа «набирается» из последовательности байтов индикации путем перебора колонок.

Разобьем мысленно индикатор на две тетрады по вертикали (при этом младшая тетрада находится внизу). Так, например, для отображения цифры 0 потребуется последовательность из 5 байт: 3ЕН, 41Н, 41Н, 41Н, 3ЕН, для отображения цифры 1 необходима последовательность: 00Н, 00Н, 10Н, 20Н, 7FH, для буквы А: 3FH, 44H, 44H, 44H, 7FH.

Рассмотрим функциональную схему линейного дисплея (используется принцип динамической индикации) на трех матричных индикаторах, представленную на рис.42. Схема содержит транзисторные ключи (КТ361А), предназначенные для усиления по току сигналов на разрядах порта Р1. Транзисторные ключи (p-n-p типа) открываются нулевыми сигналами, формируемыми на выходах инверторов К555ЛН1 в момент выдачи единичных сигналов в разряды Р1. Дешифратор К155ИД3 предназначен для активизации колонок матричных индикаторов. В данный момент активной (нулевой) может быть только одна выходная линия в зависимости от кода на адресных входах 1,2,4,8. Разряд Р0.7 управляет включением и выключением дешифратора К155ИД3, при Р0.7=Е1=1 дешифратор не активен, что соответствует гашению дисплея, при Р0.7=Е1=0 дешифратор активен.

Процедура вывода символа на матричный индикатор выполняется в виде двух частей: перекодировки и отображения. Представление исходного двоичного кода символа в виде последовательности кодов осуществляется таблично. Каждому символу в таблице соответствует 5 ячеек. Адрес первого кода колонки формируется по формуле: адрес начала таблицы + 5 * ( двоичный код символа) / 5 /.

Для обеспечения немерцающей и яркой индикации на матричном дисплее необходимо активизировать текущую колонку 1 раз за 1,3 мС. Удобнее всего это делать по прерыванию при переполнении таймера.

Алгоритмы работы однокристального МК при выводе информации на матричный дисплей представлены на рис. 43, 44.

Рис. 42. Функциональная схема подключения матричных индикаторов

Рис. 43. Алгоритм основной программы при выводе информации на матричный дисплей

Рис. 44. Алгоритм прерывания по переполнению таймера Т0

Рассмотрим программу управления матричным дисплеем.

BIN_COD EQU 20H ;Адрес расположения двоичных кодов.

WORD EQU 40H ;Начальный адрес раcположения кодов колонок.

N EQU 03H ;Количество матричных индикаторов в дисплее.

<1> ORG 0000H

<2> JMP START

<3> ORG 000BH

<4> JMP INT_T0 ;Вектор прерывания по переполнению таймера Т0.

<5>START:MOV TMOD,#00000001B;Настройка Т0 в таймер

<6> MOV IE,#02H ;Разрешение прерываний от Т0.

<7> SETB EA ;Разрешение всех разрешенных прерываний.

<8> MOV TL0,#0EBH ;Загрузка таймера для интервала 1.3 мС.

<9> MOV TH0,#0FAH; Загружаемое число 65535 – 1300 = 64235 (FAEBH).

<10>INIT: CALL COD_DISPL ;Вызов процедуры перекодировки.

<11> CALL INIT_REG ;Вызов подпрограммы инициализации.

<12> SETB TR0 ;Запуск таймера Т0.

<13>MAIN: ;Блок основной программы.

<14> CJNE R5,#15,GO ;Все ли колонки дисплея активизированы?

<15> JMP INIT; Если все колонки активизированы, то перейти на перекодировку.

<16>GO: JMP MAIN ;Выполнять основную прикладную программу.

<17>INT_T0: CLR TR0 ;Выключить таймер Т0.

<18> SETB P0.7;Гашение дисплея (дешифратор К155ИД3 в высокоимпедансном состоянии).

<19> MOV P1,@R1 ;Код колонки в порт Р1.

<20> MOV P0,R2 ; Включение дисплея и активизация колонки.

<21> INC R1 ;Инкремент адреса массива кодов колонок.

<22> INC R2 ;Инкремент кода текущей колонки.

<23> INC R5 ;Инкремент счетчика колонок дисплея.

<24> MOV TL0,#0EBH ;Перезагрузка регистра

<25> MOV TH0,#0FAH ;таймера Т0.

<26> SETB TR0 ;Включение таймера Т0.

<27> RETI ;Выход из прерывания в основную программу.

<28> COD_DISPL:MOV R0,#BIN_COD;Указание на начало массива двоичных кодов.

<29> MOV R1,#WORD ;Указание на начало массива кодов колонок.

<30> MOV R6,#N ;Загрузка счетчика количества индикаторов.

<31>BACK:CALL CODER ;Вызов подпрограммы перекодировки.

<32> INC R0 ; Инкремент адреса массива двоичных кодов.

<33> DJNZ R6,BACK ;Проверка на перекодировку всех кодов.

<34> RET ;Если все перекодированы, то выйти в основную программу.

<35>CODER: MOV DPTR,#TABLE; Указание на начало таблицы кодов колонок чисел.

<36> MOV A,@R0 ;Вычисление

<37> MOV B,#05 ;адреса первого

<38> MUL AB ;кода колонки.

<39> MOV R3,A ;Сохранение кода в R3.

<40> MOV R7,#5 ;Загрузка счетчика кодов колонок для матричного индикатора.

<41>AGAIN:MOV A,R3 ;Восстановление кода в А.

<42> MOVC A,@A+DPTR ;Выборка кода колонки из таблицы.

<43> MOV @R1,A ;Пересылка полученного кода в массив WORD.

<44> INC DPTR ;Продвижение по таблице.

<45> INC R1 ;Продвижение по массиву WORD.

<46> DJNZ R7,AGAIN ;Если все 5 кодов числа получены, то выйти в основную программу.

<47> RET ;

<48>INIT_REG:MOV R1,#WORD ;Инициализация регистров.

<49> MOV R2,#00 ;

<50> MOV R5,#00 ;

<51> RET ;

<52>TABLE: DB 3EH,41H,41H,41H,3EH; Коды колонок цифры 0

DB 0H,0H,10H,20H,0EFH; Коды колонок цифры 1

DB 21H,43H,45H,49H,31H; Коды колонок цифры 2

и так далее.

З а д а н и я д л я с а м о с т о я т е л ь н о й р а б о т ы

Задание 1. Разработать программу, обеспечивающую вывод слова «МИР» на матричный светодиодный дисплей.

Задание 2. Разработать программу, обеспечивающую работу устройства по следующему алгоритму. К разрядам порта Р2.0, Р2.1 подключены позиционные датчики D1 и D2. При включении D1 на матричный дисплей выводится слово «END», при включении D2 – t0C, при одновременном включении D1 и D2 – кПа.

studfiles.net

Матричный индикатор — Википедия

Материал из Википедии — свободной энциклопедии

Принцип формирования изображения, используемый в матричных индикаторах с динамическим управлением.

Мáтричный индикáтор — разновидность знакосинтезирующего индикатора, в котором элементы индикации сгруппированы по строкам и столбцам[1]. Матричный индикатор предназначен для отображения символов, специальных знаков и графических изображений в различных устройствах.

Матричным индикатором принято считать устройство, объединенное в законченном конструктиве — корпусе. В отличие от экрана или дисплея, индикатор имеет ограниченное количество элементов индикации, либо предназначен для отображения одного или небольшого количества символов. Название происходит от понятия матрица (математика).

Электрическая схема одноцветного светодиодного матричного индикатора с динамическим управлением.

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

По принципу формирования изображения и управлению матричные индикаторы бывают двух видов: статические и динамические (мультиплексные).

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

В индикаторах с динамическим способом формирования изображения, управление производится по строкам и столбцам. Одн

ru.wikipedia.org

Динамическая индикация. Подключение светодиодной матрицы к микроконтроллеру | RadioLaba.ru

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Реализация динамической индикации для матрицы с разрешением 8х8

;Частота тактового генератора для примера 4 МГц, машинный цикл 1 мкс

 

              org         0000h            ;начать выполнение программы с адреса 0000h

              goto        Start            ;переход на метку Start

          

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Подпрограмма обработки прерываний

 

              org         0004h            ;начать выполнение подпрограммы с адреса 0004h

      

              movwf       W_TEMP           ;сохранение значений ключевых регистров

              swapf       STATUS,W         ;

              clrf        STATUS           ;

              movwf       STATUS_TEMP      ;

                                           ;  

              movf        FSR,W            ;сохранение текущего значения регистра FSR

              movwf       FSR_osn          ;в регистр FSR_osn

              movf        FSR_prer,W       ;восстановление ранее сохраненного значения

              movwf       FSR              ;регистра FSR из регистра FSR_prer

                                           ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

                                           ;загрузка содержимого регистра stolb в микросхему

                                           ;74HC595 (последовательный сдвиговый регистр)

              movf        stolb,W          ;копирование содержимого регистра stolb

              movwf       var              ;в регистр var

              movlw       .8               ;запись числа 8 в регистр scetbit, для отсчета

              movwf       scetbit          ;переданных битов

met2          btfsc       var,0            ;устанавливаем вывод ds в соответствии с

              bsf         ds               ;значением 7-го бита регистра var

              btfss       var,0            ;

              bcf         ds               ;

              bsf         sh_cp            ;тактируем вывод sh_cp, для защелкивания данных

              bcf         sh_cp            ;

              rrf         var,F            ;сдвиг регистра var вправо, для подготовки

                                           ;следующего бита

              decfsz      scetbit,F        ;декремент с условием регистра scetbit

              goto        met2             ;scetbit не равен нулю: переход на метку met2

                                           ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

                                           ;загрузка содержимого регистра INDF в микросхему

                                           ;74HC595 (последовательный сдвиговый регистр)

              movf        INDF,W           ;копирование содержимого регистра INDF

              movwf       var              ;в регистр var                                      

              movlw       .8               ;запись числа 8 в регистр scetbit, для отсчета

              movwf       scetbit          ;переданных битов

met1          btfsc       var,7            ;устанавливаем вывод ds в соответствии с

              bsf         ds               ;значением 7-го бита регистра var

              btfss       var,7            ;

              bcf         ds               ;

              bsf         sh_cp            ;тактируем вывод sh_cp, для защелкивания данных

              bcf         sh_cp            ;

              rlf         var,F            ;сдвиг регистра var влево, для подготовки

                                           ;следующего бита

              decfsz      scetbit,F        ;декремент с условием регистра scetbit

              goto        met1             ;scetbit не равен нулю: переход на метку met1            

                                           ;

              bsf         st_cp            ;тактируем вывод st_cp, для передачи загруженных

              bcf         st_cp            ;байтов на выходные линии микросхем 74HC595

                                           ;

              bcf         STATUS,C         ;сброс бита C регистра статус перед сдвигом

              rrf         stolb,F          ;сдвиг влево регистра stolb

                                           ;

              incf        FSR,F            ;инкремент регистра FSR, подготовка следующего

                                           ;регистра для отправки данных на 74HC595

              decfsz      shet,F           ;декремент с условием регистра shet

              goto        exxit            ;регистр shet не равен 0: переход на exxit

              movlw       data1            ;регистр shet равен 0: запись адреса первого

              movwf       FSR              ;регистра хранения иннформации в регистр FSR

              movlw       .8               ;запись числа 8 в регистр shet, для ведения

              movwf       shet             ;счета столбцов

              movlw       b’10000000′      ;запись двоичного числа 10000000 в

              movwf       stolb            ;регистр stolb, для включения 1-го столбца

                                           ;

exxit         bcf         INTCON,T0IF      ;сброс флага прерывания по переполнению TMR0

              movlw       .124             ;запись числа 124 в регистр таймера TMR0

              movwf       TMR0             ;

                                           ;  

              movf        FSR,W            ;сохранение текущего значения регистра FSR

              movwf       FSR_prer         ;в регистр FSR_prer

              movf        FSR_osn ,W       ;восстановление ранее сохраненного значения

              movwf       FSR              ;регистра FSR из регистра FSR_osn

                                           ;

              swapf       STATUS_TEMP,W    ;восстановление содержимого ключевых регистров

              movwf       STATUS           ;

              swapf       W_TEMP,F         ;

              swapf       W_TEMP,W         ;

                                           ;

              retfie                       ;выход из подпрограммы прерывания

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Основная программа

                                

            

Start         ……………..            ;первоначальная настройка регистров    

              ……………..            ;специального назначения

              ……………..

 

              

              bsf         STATUS,RP0       ;запись двоичного числа 11010011 в регистр

              movlw       b’11010010′      ;OPTION_REG, тем самым устанавливаем внутренний

              movwf       OPTION_REG       ;источник тактового сигнала для TMR0

              bcf         STATUS,RP0       ;включаем предделитель перед TMR0

                                           ;устанавливаем коэффициент предделителя 1:8

                                           ;

              movlw       .8               ;запись числа 8 в регистр shet, перед запуском

              movwf       shet             ;прерываний по переполнению TMR0, выполняется

                                           ;однократно, после включения питания

              movlw       b’10000000′      ;запись двоичного числа 10000000 в

              movwf       stolb            ;регистр stolb, для включения 1-го столбца

                                           ;выполняется однократно, после включения питания

                                           ;

              movlw       data1            ;запись адреса первого регистра (регистры хранения  

              movwf       FSR_prer         ;информации) в регистр FSR_prer, выполняется

                                           ;однократно, после включения питания

                                           ;

              movlw       .8               ;очистка 8-ми регистров вывода информации на

              movwf       tmp              ;матрицу, равнозначно выключению

              movlw       data1            ;матрицы

              movwf       FSR              ;

met3          clrf        INDF             ;

              incf        FSR,F            ;

              decfsz      tmp,F            ;

              goto        met3             ;

                                           ;

              bcf         INTCON,T0IF      ;сброс флага прерывания по переполнению TMR0

              bsf         INTCON,T0IE      ;разрешение прерываний по переполнению TMR0

              bsf         INTCON,GIE       ;разрешение глобальных прерываний

                                           ;

m1            movlw       data1            ;пример вывода буквы R

              movwf       FSR              ;

              movlw       b’00000000′      ;

              movwf       INDF             ;

              incf        FSR,F            ;

              movlw       b’01111111′      ;

              movwf       INDF             ;

              incf        FSR,F            ;

              movlw       b’00001001′      ;

              movwf       INDF             ;

              incf        FSR,F            ;                        

              movlw       b’00011001′      ;

              movwf       INDF             ;

              incf        FSR,F            ;

              movlw       b’00101001′      ;

              movwf       INDF             ;

              incf        FSR,F            ;

              movlw       b’01000110′      ;

              movwf       INDF             ;

              incf        FSR,F            ;

              movlw       b’00000000′      ;

              movwf       INDF             ;

              incf        FSR,F            ;                                

              movlw       b’00000000′      ;

              movwf       INDF             ;

                                           ;

              ……………..            ;    

              ……………..            ;

              ……………..            ;

                                           ;

              end                          ;конец всей программы

                                           ;

radiolaba.ru

Светодиодный матричный индикатор ИПВ70А / Деталька / Сообщество EasyElectronics.ru

Достался мне вот такой индикатор:

Сначала не было даже понятно, что это — никаких маркировок на корпусе нет. Только после долгих поисков в гугле стало ясно, что это советский матричный светодиодный индикатор ИПВ70А. В настоящее время выпускается его аналог — КИПВ 72А.

Его иностранный аналог: HCMS-2001 datasheet.
Как видно, этот индикатор содержит 4 знакоместа, каждое состоит из 5×7 элементов, всего в индикаторе 140 светодиодов.
Он очень похож на уже описанный здесь VQC 10 C, однако ИПВ70А заметно меньше — высота символа всего 4,2 мм, количество выводов у него — всего 12.
Кое-какую документацию можно найти здесь и здесь, а также воспользоваться даташитом на HCMS-2001.
Индикатор содержит две микросхемы — сдвиговые регистры, предназначенные для осуществления динамической индикации. Данные в индикатор записываются последовательно, сразу во все столбцы знакомест одного номера (1-5).
Аноды столбцов соединены параллельно, и подсоединены к выводам индикатора.

Конечно же, такую экзотику надо было запустить.
Была сделана отладочная плата с колодкой под индикатор и пятью силовыми транзисторами анодов. Управляется индикатор с STM32-DISCOVERY.
Получилась вот такая конструкция:

За счет того, что знакогенератор находится в самом микроконтроллере, можно реализовать программное «перелистывание» символов:

we.easyelectronics.ru

Динамическая индикация на примере управления светодиодной матрицей 8×8 GNM-7881AUE | avr

Чтобы понять, что такое динамическая индикация, и для чего она нужна, нужно рассмотреть для примера промышленный индикатор GNM-7881AUE.

В матрице GNM-7881AUE 64 красных светодиода. Если выводить из матрицы контакты всех светодиодов для управления каждым по отдельности, то понадобится как минимум 65 внешних контактов на корпусе матрицы, а также микроконтроллер с 64 портами вывода. Несомненно, это технологически реализовать очень трудно (и нецелесообразно). Поэтому на заводе светодиоды объединили в 8 групп по строкам и столбцам, и соединили их в матрицу следующим образом:

При такой схеме подключения внешних контактов матрицы и портов микроконтроллера потребуется существенно меньше — только 16. Чтобы зажечь, например, светодиод в левом верхнем углу, нужно на контакт 13 матрицы подать плюс, а на контакт 9 минус. Для этого можно использовать, например, порты вывода микроконтроллера ATmega16 или ATmega32 и резистор:

Светодиод слева вверху зажжется, если микроконтроллер на порт PA0 выставит лог. 1 (+5 вольт), а на PB3 лог. 0 (0 вольт). Такое управление светодиодами, когда логические сигналы во время отображения какого-то изображения не меняются, называется статическим. Как Вы уже наверное догадались, чтобы иметь возможность управлять всеми светодиодами, то нужно подключить остальные выводы строк и столбцов матрицы к микроконтроллеру:

ОК, все очень красиво, но как, например, зажечь один светодиод в центре матрицы, оставив остальные при этом выключенными? Или, как, наоборот, зажечь все светодиоды, кроме одного-двух в центре? Понятно, что при такой схеме включения невозможно этого добиться простой подачей на выходные порты ноликов и единичек (с помощью статической индикации). Тут на помощь как раз и приходит динамическая индикация.

[Динамическая индикация]

Название «динамическая» происходит от того, что формирование изображения происходит не статически, а в динамике, т. е. сначала, например, показывают только первый столбец изображения (все остальные столбцы погашены), на втором шаге показывают только второй столбец, и так далее до 8-столбца. Если это делать быстро (с периодом прокрутки всех шагов не меньше 20 мс), то человеческий глаз не воспримет переключения между столбцами, и ему будет казаться, что отображается сразу вся картинка. Такое последовательное отображение элементов изображения называется разверткой. Для того, чтобы изображение не мерцало и яркость всех точек была одинакова, необходимо выполнение следующих условий:

1. Длительность отображения каждого столбца постоянна, одинакова для всех столбцов.
2. Частота смены столбцов не меняется.

Почему необходимо отображать картинку по столбцам, а не по строкам? Потому что в данной схеме мы подключили токоограничительные резисторы к линиям строк. Чтобы обеспечить одинаковую яркость свечения каждой точки, нам нужно обеспечить одинаковый средний ток через каждый светодиод, что возможно при такой схеме только при развертке по столбцам (когда по столбцам-анодам пробегает лог. 1). Если бы у нас резисторы были подключены не к катодам (не к строкам), а к анодам (к столбцам), то тогда развертку изображения надо было делать не по столбцам, по строкам (у нас бежал бы по строкам лог. 0).

Для примера приведу алгоритм отображения цифры 2 (на рисунке светодиоды, которые надо зажигать, я закрасил красным цветом), столбцы и строки нумеруются от 1 до 8:

1. Отображение столбца 1. Для этого на PA0 подаем лог. 1, на PA1..PA7 подаем лог. 0. На порты PB3, PB4, PD0, PD1, PD3, PD5..PD7 также лог. 1. Держим матрицу с таком состоянии 2.5 мс.
2. Отображение столбца 2. Для этого на PA1 подаем лог. 1, на PA0, PA2..PA7 подаем лог. 0. Подаем лог. 1 на PB3, PB4, PD1, PD3, PD7, подаем лог. 0 на PD0, PD5, PD6. Держим матрицу с таком состоянии 2.5 мс.
3. Отображение столбца 3. Для этого на PA2 подаем лог. 1, на PA0, PA1, PA3..PA7 подаем лог. 0. Подаем лог. 1 на PB3, PD0, PD1, PD5, PD7, подаем лог. 0 на PB4, PD3, PD6. Держим матрицу с таком состоянии 2.5 мс.
4. Отображение столбца 4. Все то же самое, что и на шаге 3, только подаем лог. 1 не на PA2, а на PA3. Держим матрицу с таком состоянии 2.5 мс.
5. Отображение столбца 5. Все то же самое, что и на шаге 4, только подаем лог. 1 не на PA3, а на PA4. Держим матрицу с таком состоянии 2.5 мс.
6. Отображение столбца 6. Все то же самое, что и на шаге 5, только подаем лог. 1 не на PA4, а на PA5. Держим матрицу с таком состоянии 2.5 мс.
7. Отображение столбца 7. Для этого на PA6 подаем лог. 1, на PA0..PA5, PA7 подаем лог. 0. Подаем лог. 1 на PB3, PB4, PD0, PD3, PD5, PD7, подаем лог. 0 на PD0, PD1, PD6. Держим матрицу с таком состоянии 2.5 мс.
8. Отображение столбца 8. Все то же самое, что и на шаге 1, только подаем лог. 1 не на PA0, а на PA7. Держим матрицу с таком состоянии 2.5 мс.

Цикл шагов 1..8 занял ровно 20 мс (2.5+2.5+2.5+2.5+2.5+2.5+2.5+2.5). При непрерывном чередовании шагов 12345678123… получится отображение символа 2 без видимого мерцания. По похожему принципу работают все «взрослые» системы индикации в автобусах, электричках, турникетах, рекламных табло.

[Пример управления матрицей LED8X8]

Для экспериментирования со знакогенераторами 8×8 я сделал небольшой проект для отображения символов на индикаторе GNM-7881AUE. Схема подключения индикатора — точно такая же, как используемая при обсуждении динамической индикации. Красными метками я указал номера выходных контактов макетной платы AVR-USB-MEGA16.

Проект управляется через виртуальный COM-порт — в консоли можно было ввести шестнадцатеричный код символа, и он тут же высвечивается на индикаторе. На фото видна макетная плата AVR-USB-MEGA16, на которую припаян индикатор GNM-7881AUE (весь монтаж и резисторы SMD 0805 номинала 150 Ом выполнен с обратной стороны макетной платы).

Потом проект оброс возможностью отображения бегущей строки и вывода картинок BMP, что позволяет делать забавную анимацию. В качестве знакогенератора используется набор символов от ZX-Spectrum, дополненный русскими символами.

[Что внутри проекта LED8x8]

Проект собран на основе статьи [1]. Скачанный пример дополнен командами, и в главный цикл main добавлена процедура динамической индикации, отображающая символы, бегущую строку или анимацию из картинок BMP. Питается и конфигурируется устройство от USB. Когда активен интерфейс USB, то возможно мерцание отображаемой картинки, так как на программную поддержку протокола (библиотека V-USB) тратится большая доля процессорного времени.

В память можно занести любое количество текстов и картинок (пока хватит места в EEPROM), они сохраняются в памяти после выключения питания. Управление и конфигурирование осуществляется через текстовую консоль, подключенную к виртуальному COM-порту (через любую консоль типа Hyperterminal, Terraterm или putty), интерфейс управления имеет систему подсказок. Вот пример сеанса работы с управляющей консолью проекта:

Тексты можно вводить командой TXT, а BMP-картинки в черно-белом формате 8×8 пикселов можно загрузить по протоколу XMODEM (моя любимая консоль SecureCRT умеет это делать). И тексты, и картинки добавляются в общий пул, и проигрываются по команде RUN в том порядке, в каком Вы их занесли в память — поэтому при желании можно сочинить очень сложную поздравительную комбинацию. Скорость бегущей строки и смены картинок меняется командой SPEED (от 1 до 10). Доступны также некоторые отладочные команды.

[Применение матричных индикаторов 5×7 точек]

Для светодиодной матрицы можно применить не только индикаторы 8×8 точек, но также и индикаторы 5×7 точек, которые иногда проще найти и купить. К примеру, есть индикаторы TFB2457C, TFB2757C, которые хороши тем, что их можно стыковать друг с другом для получения матрицы любого размера. Вот пример организации матрицы 7×10 точек:

[Применение силовых ключей на транзисторах]

Как Вы уже наверное успели заметить, в вышеупомянутых схемах подключения LED-индикатора аноды и катоды светодиодной матрицы подключены к портам микроконтроллера напрямую (в нашем примере аноды) и через токоограничительные резисторы (катоды). При этом порты, нагруженные на аноды, испытывают повышенную нагрузку, если необходимо зажечь весь столбец анода — чем больше светодиодов нужно зажечь в столбце, тем выше нагрузка. В самом худшем случае, когда для нашего примера нужно зажечь все светодиоды в столбце, на один порт для анода приходится нагрузка из 8 параллельно включенных цепочек из светодиодов и резисторов 150 Ом. При этом нагрузка на порт превышает паспортную, выход микроконтроллера не справляется с нагрузкой, на анодах светодиодов падает напряжение. Не получится добиться высокой яркости свечения, и столбцы с разным количеством включенных светодиодов могут светиться с разной яркостью, что скажется на качестве формируемого изображения.

Чтобы улучшить работу схемы, для нашего примера целесообразно умощнить выходы, подключенные к анодам. Для умощнения портов ввода вывода применяют транзисторы, работающие в ключевом режиме [4]. Можно применить как биполярные, так и полевые транзисторы, но лучше всего поставить полевые транзисторы (MOSFET). Есть дешевые миниатюрные MOSFET транзисторы с P-каналом, например IRLML6401 или IRLML6402 в корпусе SOT-23. Полевой транзистор в нашем случае хорош тем, что для его подключения не нужны никакие дополнительные элементы (типа токоограничительных резисторов), и на открытом канале транзистора падает очень маленькое напряжение, так как сопротивление открытого канала IRLML6401 порядка 0.05 ом. Поэтому можно легко коммутировать большую токовую нагрузку без почти без потерь мощности — до 3.4A, что для нас более чем достаточно.

На рисунке вывод 1 обозначает затвор G (Gate), 2 исток S (Source), 3 сток D (Drain) транзистора. Чтобы умощнить аноды, транзистор нужно подключить по следующей простой схеме — затвор к порту микроконтроллера (например, к PORTA7), исток S к +5V, а сток D к анодам столбца матрицы.

Для подключения матрицы из нашего примера понадобится 8 транзисторов IRLML6401, затворы которых подключены к портам PA0..PA7 микроконтроллера ATmega32A, истоки к +5V питания, а стоки к соответствующим столбцам анодов матрицы. Нагрузочные резисторы, которые подключены к катодам матрицы, можно уменьшить для нашего примера до номинала 75 ом.

[Ссылки]

1. USB консоль для управления радиолюбительскими приборами.
2. Проект LED8x8 для AVR Studio.
3. Видеоролик на depositfiles и на YouTube.
4. Реле и транзисторы: как они работают в качестве электронных переключателей. 

microsin.net

Управление матричными LED-индикаторами

Управление матричными LED-индикаторами

Прямое подключение к микроконтроллеру.

По своему принципу действия, матричные LED-индикаторы полностью аналогичны семисегментным моделям, за исключением большего числа выводов. Это позволяет использовать классические схемы включения таких устройств, без использования каких-либо ухищрений. Простота реализации, в этом случае, имеет обратную сторону в виде необходимости использования большого числа выводов микроконтроллера. Так для индикатора 5х7 потребуется 12 линий, а 8х8 – 16 управляющих линий. Данный вариант требует также использования ресурсов микроконтроллера. В виду этого, прямое подключение LED матриц к микроконтроллеру наилучшим образом подходит для включения только одного индикатора. В случае необходимости увеличения размеров поля, лучше применять другие схемы. 

Использование готовых драйверов

Одним из наилучших вариантов подключения матричного индикатора, является использование специальных драйверов, например MAX7219. В данной микросхеме уже реализовано все необходимое для динамической индикации 8 семисегментных индикаторов или матрицы светодиодов, размером 8х8. При этом, для управления MAX7219 требуется только 3 линии ввода вывода микроконтроллера. Использование последовательного интерфейса, также значительно упрощает программную часть. Возможность каскадного включения микросхем, позволяет создавать поле элементов большого размера.

Главным недостатком MAX7219, является высокая стоимость микросхем, что почти исключает возможность ее применения в больших любительских проектах, с использованием матричных индикаторов.
 

 

Использование дешифраторов

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

 

Использование регистров сдвига.

Для уменьшения количества выводов микроконтроллера, отлично подходят регистры сдвига. Выполняя функцию преобразования последовательного кода в параллельный, эти элементы требуют для управления всего две линии – тактового сигнала и данных. Возможность каскадного включения позволяет создавать светодиодные матрицы большого размера. При этом использование регистров лишь незначительно увеличивает нагрузку на микроконтроллер при организации динамической индикации по сравнению с прямым включением.

Применение регистров возможно как для формирования отдельных элементов в строке, так и для управления столбцами. Такое включение позволяет использовать для LED-матрицы 8х8 всего 4 вывода микроконтроллера. В качестве регистров сдвига можно использовать микросхемы 74HC164 (1554ИР8), 74HC299 (1554ИР24) и некоторые другие.

Использование счетчиков.

Для управления столбцами индикаторов, особенно вариантов 5х7 и 5х8 возможно использовать счетчик-дешифратор 4017. Данный счетчик  на выходе имеет функцию 1 из 10, что позволяет организовать динамическую индикацию на двух матрицах с 5 столбцами. Управление отдельными элементами возможно как с прямым подключением, так и с использованием регистров.

You have no rights to post comments

mcucpu.ru