Драйвер линейки 7-сегментных индикаторов на ATtiny13 (бегущая строка).  

Ранее я описал устройство вывода - драйвер линейки 7-сегментных индикаторов. В этой статье я покажу, как работает данное устройство «в живую», предложу возможные применения данного девайса и приведу несколько примеров.

Для начала
НЕМНОГО ОБ ИСПОЛЬЗУЕМЫХ КОМПОНЕНТАХ ЛИНЕЙКИ

Для демонстрации работы устройства я выбрал дюймовые индикаторы, 6 зелененьких и 2 красненьких.

Индикаторы с общим катодом, но это не существенно, так как прошивки есть и для общего анода. Внутренняя схема у них такая:

Одноциферный семисегментник

В качестве драйвера индикатора был выбран самый простой сдвиговый регистр 74HC164. Выбор обусловлен дешевизной и доступностью. Регистр не имеет ни сигнала разрешения отображения, ни сигнала защелкивания данных, поэтому при работе линейки будет наблюдаться еле заметное помигивание сегментов из-за того, что данные проталкиваются последовательно бит за битом по всем сегментам. Для устранения этого эффекта всегда можно применить другой, более функциональный регистр сдвига или же драйвер светодиодов. Еще один минус применения 74HC164 небольшой ток ножки. По даташиту микросхема может выдержать суммарный ток до 50мА, а значит, нам придется отказаться от запитки сегментов номинальным током – 20мА (если засветить все сегменты то ток возрастет до 20мА*8сегментов=160мА, что, конечно же, много для 74HC164). Уменьшив ток сегментов до 7 мА, мы тем самым уложимся в допустимые 50 мА. Ток сегмента задается гасящими резисторами на каждый сегмент индикатора. Резисторы можно рассчитать, имея параметры индикатора, но, зная китайских производителей компонентов и их даташиты, лучше включить в цепь переменный резистор и миллиамперметр и самому подобрать нужный номинал резистора. В моем случае номиналы вышли следующие:
Для зеленого индикатора
Все сегменты цифры – 100 Ом,
Десятичная точка (там один светодиод) – 180 Ом

Для красного индикатора
Все сегменты цифры – 180 Ом,
Десятичная точка (там один светодиод) – 180 Ом

Небольшой ток сегмента в данном случае играет нам на руку так как почти сводит на нет отрицательный эффект мигания сегментов.

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


КОМПОНОВКА ПЛАТЫ ИНДИКАТОРА.
Если посмотреть на схему устройства

Схама драйвера линейки

то видно, что одноциферные индикаторы подключаются каждый отдельно, но на практике удобнее их компоновать на плате парами (упрощается разводка печатной платы). Плата имеет размер пары индикаторов и держится на ножках индикатора (припаивается к ним). На плате, под индикаторами, с обеих сторон установлены разъемы типа PLS-R (папа) и PBS-R (мама) для подключения индикаторов к драйверу линейки и соединения между собой. Разъемы установлены таким образом, что невозможно случайно закоротить линии питания или сигнальные линии.


СБОРКА ПЛАТЫ ИНДИКАТОРА
Начнем, наконец-то, собирать устройство. Если Вы не имеете опыта такого рода, общие рекомендации по сборке устройств я описывал раньше. Плата односторонняя и имеет лишь несколько перемычек.

Спаянная плата
>

! Обратите внимание на две перемычки выполненных на стороне монтажа! Их нужно припаять именно с этой стороны, иначе они будут мешать разъему.

Далее припаиваем индикаторы вплотную к разъемам, на папу перед этим нужно надеть маму для того, чтобы не «посадить» слишком низко индикатор.

Припаиваем индикаторы

Припаяв оба индикатора, мы получаем готовый модуль.

Готовый модуль индикатора


ДРАЙВЕР ЛИНЕЙКИ.
Плата довольно простая, не буду детально расписывать последовательность пайки – все понятно и так. Разводка выглядит немного странно, но не обращайте внимания – это предусмотрено для будущего развития функционала драйвера. На плате драйвера с одной стороны установлен разъем PLS-R (папа) для подключения линейки индикаторов, а с другой – разъем для внутрисхемного программирования и входом / выходом UART.

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

Плата в сборе выглядит вот такПлата драйвера линейки

Все части устройства собраны, можно собирать в линейку платы индикаторов.

линейка индикаторов в сборе

Общие рекомендации по включению / отключению индикаторов.
К драйверу линейки части линейки можно включать / отключать прямо «на ходу» – драйверу все равно, сколько индикаторов в работе – все будет работать корректно. Единственное условие, не стоит включать сразу несколько соединенных между собой плат индикаторов, так как ток, потребляемый каждой парой, значительный и включение сразу нескольких индикаторов может дать просадку напряжения до уровня, при котором сбросится микроконтроллер драйвера.

Для демонстрации я использовал собранный ранее преобразователь USB-UART и программу терминал.

Видео демонстрации работы линейки
http://www.youtube.com/watch?v=ejYvHORHE44

При ручном управлении (с клавиатуры, через терминал) ограничены возможности линейки по причине отсутствия обратной связи и оперативного управления. При использовании для управления линейкой Вашего микроконтроллера значительно расширятся возможности отображения

Файлы к статье:
051-7Seg-driver+block - Печатка для драйвера и блока линейки 7-сегментного индикатора
049-7Seg-shem - Схема драйвера линейки индикаторов
ATTiny13.pdf - Даташит для ATTiny13/13V
RL-S10-SERIES - Даташит на дюймовый 7-сегментный индикатор
74HC164 - Даташит на сдвиговый регистр
Terminal v1.0 - Программа для работы с COM портом

Смотрим также:
Описание устройства линейки 7-сегментных индикаторов.