сегментный дисплей что это

Максимально универсальный семисегментный дисплей. Часть первая — Hardware

Случилось так, что по наследству мне досталась целая коробка семисегментных индикаторов с гордой надписью «Комплект часы». Давно хотелось пустить её содержимое в дело, а когда дошли руки — оказалось, что внутри целый зоопарк разномастных индикаторов, разных размеров, цветов, с общим катодом и с общим анодом. По количеству штук так двадцать. И чтобы не пилить «очередные часы» пришла идея сделать, собственно, сабж — максимально универсальный семисегментный дисплей.

Что из этого получилось — под катом.

Disclaimer

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

Статья получилась объемная, так что я разделил hardware и software части. К вашему вниманию часть первая — hardware.

Постановка задачи

Что я понимаю под максимальной универсальностью? Спроектировать модуль, с помощью которого или его комбинаций можно создать любой (или практически любой, в разумных пределах) дисплей для отображение информации с использованием этих самых семисегментных индикаторов. В голову приходит сразу с десяток применений — часы, конечно же, куда без них; туда же таймеры, счетчики чего угодно; термометры; табло для разных игр; дисплеи для отображения цифровой информации — курсов валют, индексов бирж и т.п. В общих чертах задача абсолютно тривиальная, но усложняется зоопарком типов индикаторов. В наличии одноразрядные китайские индикаторы с размером цифры 2.3 дюйма (тип FJ23101, четыре светодиода на сегмент) и 3 дюйма (тип CL-30011, пять светодиодов на сегмент), разных цветов и с различным типом подключения — с общим катодом и с общим анодом. Чтобы покрыть использование всех этих типов пришлось посидеть над схемой и разводкой, которая давала бы возможность без изменения топологии печатной платы управлять разными индикаторами. Поискав вечерок в интернете мне не удалось найти универсальных решений или схем, что и стало поводом для написания данной статьи.

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

При выборе управляющей части долго думать не пришлось, выбор сразу пал на готовые модули ESP-07 на контроллере ESP8266 от Espressif. Дешевизна и простота использования этих модулей, возможность легкого подключения к Интернету, обширная комьюнити разработчиков и элементарность программирования этого контроллера отмели все другие варианты.

Приступим к деталям

Начнем с питания семисегментных индикаторов большого размера, где каждый сегмент представляет собой цепочку из нескольких последовательно включенных светодиодов. Такие дисплеи уже не получится зажечь «цифровыми» уровнями напряжения, так как падение на цепочке светодиодов больше этого значения. Конкретное значение указывается в даташите на дисплей, оно зависит от характеристик светодиодов, цвета и их количества и может варьироваться от 6 до 12 Вольт. Ток через каждый сегмент также превышает допустимые значения тока через отдельный пин для большинства контроллеров и составляет от 20 до 50 мА. Соответственно, нужно использовать напряжение 12 Вольт и коммутирующие ключи для управления сегментами и общими выводами. Также не стоит забывать о динамической индикации — последовательном переключении разрядов с частотой превышающей частоту восприятия глаза человека. Это позволяет значительно снизить энергопотребление практически без потери визуальной яркости дисплея.

Читайте также:  Как ухаживать за несушками на даче летом

Общее питание было решено брать от порта USB, как наиболее универсального стандарта на данный момент. После непродолжительного гугления я выбрал готовый модуль повышающего DC-DC преобразователя на МТ3608. Он компактный, дешевый ( 45мА на сегмент), чего с головой достаточно для данных типоразмеров индикаторов.

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

Как видим, со стороны драйвера MAX7219 и управляющего всем этим ESP8266 нет никакой разницы какой именно тип индикатора установлен в модуле, модифицировать прошивку не требуется.

Замечу, что при использовании внешних драйверов встроенное в контроллер ограничение тока сегментов (которое задается резистором на входе Iset) корректно работать не будет, поэтому интенсивность будем регулировать напряжением питания при максимальной скважности от MAX7219. Драйвер позволяет устанавливать интенсивность скважностью встроенного ШИМ генератора от 1/32 до 31/32 с шагом 1/16.

Для управляющей части на ESP8266 ничего выдумывать не нужно, берем типовое включение модуля, заводим линии SPI на MAX7219, UART для прошивки на внешний разъем. Дополнительно решил добавить преобразователь протокола UART в virtual COM port через USB, его устанавливать необязательно, но места на плате предостаточно, пускай будет такая возможность. Как преобразователь я выбрал СН340, как максимально простое и бюджетное решение. В версии чипа СН340G преобразователь даже не требует частотозадающего кварца, он уже встроен в конвертер, а из обвеса всего пара конденсаторов, проще не бывает.

Полная схема в хорошем качестве тут.

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

Такая комбинация позволяет расширить разрядность до шести цифр, а так же комбинируя расположение и размер индикаторов изготовить табло для различных, предположим, настольных игр и, конечно же, часы! На контакты продублированы сигналы управления всеми сегментами и выведены линии подключения 3 и 4 разряда для трехдюймовок, и 4, 5 и 6 разряд для двухдюймовок.

Читайте также:  Растительное мясо что это

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

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

По углам платы расположены четыре отверстия под болт М3 для крепления модуля к несущей конструкции.

Микросхемы, если это было возможно, выбраны в выводных корпусах DIP, так как вопрос миниатюризации для данного устройства не актуален, а на плате они выглядят уже почти стимпанково, на фоне привычных BGA монстров. Это придает особого шарма, как у ламповых усилителей.

Посадочное место под модуль ESP-07 также pin-to-pin совместимо с модулями ESP-12S/E/F.
Плата проектировалась за два вечера, по этой причине использовался простой принцип разводки как у автороутеров — разделение горизонтальных и вертикальных линий на разные слои. В итоге плата получилась двухсторонняя, несложная и визуально красивая.

За время пока в Китае изготавливались платы, в местном рекламном агентстве были заказаны основы из прозрачного акрила, куда можно закрепить платы и светорассеиватель. Теперь можно посмотреть, что получилось из задуманного.

Вот так выглядит вариант платы, запаянной под индикаторы с общим катодом. На фото указаны названия микросхем и обведены перемычки под запайку.

А вот так — под индикаторы с общим анодом.

На фото ниже различные комбинации индикаторов разных размеров. Как вы можете понять, их также можно удвоить, добавив slave-модуль.

Далее осталось только написать скрипт под конкретную реализацию, чем и займемся в следующей части.

Источник

СОДЕРЖАНИЕ

История

Семисегментное представление фигур можно найти в патентах еще в 1903 году (в патенте США 1126641 ), когда Карл Кинсли изобрел метод телеграфной передачи букв и цифр и их печати на ленте в сегментированном формате. В 1908 году Ф. В. Вуд изобрел 8-сегментный дисплей, на котором число 4 отображалось на диагональной полосе ( патент США 974943 ). В 1910 году на сигнальном табло котельной электростанции был установлен семисегментный индикатор, освещенный лампами накаливания. Они также использовались, чтобы показывать набранный телефонный номер операторам при переходе от ручного набора номера к автоматическому. Они не получили широкого распространения до появления светодиодов в 1970-х годах.

Версии с вакуумными люминесцентными дисплеями также использовались в 1970-х годах.

Используя ограниченный диапазон букв, которые выглядят как (перевернутые) цифры, семисегментные дисплеи обычно используются школьниками для формирования слов и фраз с использованием техники, известной как « калькулятор орфографии ».

Реализации

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

Читайте также:  Ребенок не хочет читать что делать

Символы

Десятичный

В числовых цифрах от 0 до 9 являются наиболее распространенными символами отображаются на дисплеях семь-сегмента. Наиболее распространенные шаблоны, используемые для каждого из них:

0 1 2 3 4 5 6 7 8 9 А B C D E F
U + 1FBFx

Шестнадцатеричный

Для указания чисел 0–9 необходимы четыре двоичных бита, но можно также указать 10–15, поэтому обычно декодеры с 4-битными входами также могут отображать шестнадцатеричные (Hex) цифры. Сегодня для A – F обычно используется комбинация прописных и строчных букв; это делается для получения уникальной однозначной формы каждой шестнадцатеричной цифры (в противном случае заглавная буква «D» выглядела бы идентично «0», а заглавная буква «B» выглядела бы идентично «8»). Также должна отображаться цифра «6» с освещенной верхней полосой, чтобы избежать двусмысленности с буквой «b».

Следующая таблица поиска может быть полезна для написания кода для управления 7-сегментным дисплеем.

Шестнадцатеричное кодирование для отображения цифр от 0 до F

Цифра Отображать GFEDCBA abcdefg а б c d е ж грамм
0 0x3F 0x7E на на на на на на
1 0x06 0x30 на на
2 0x5B 0x6D на на на на на
3 0x4F 0x79 на на на на на
4 0x66 0x33 на на на на
5 0x6D 0x5B на на на на на
6 0x7D 0x5F на на на на на на
7 0x07 0x70 на на на
8 0x7F 0x7F на на на на на на на
9 0x6F 0x7B на на на на на на
А 0x77 0x77 на на на на на на
б 0x7C 0x1F на на на на на
C 0x39 0x4E на на на на
d 0x5E 0x3D на на на на на
E 0x79 0x4F на на на на на
F 0x71 0x47 на на на на

Письма

Латинский алфавит

Случай А B C D E F грамм ЧАС я J K L M N О п Q р S Т U V W Икс Y Z
Верхний
Ниже

Короткие сообщения с информацией о состоянии (например, «нет dISC» на проигрывателе компакт-дисков) также обычно отображаются на 7-сегментных дисплеях. В случае таких сообщений не обязательно, чтобы каждая буква была однозначной, просто чтобы слова в целом были удобочитаемыми.

Семисегментные дисплеи также использовались для отображения букв кириллического и греческого алфавитов :

Кириллица

Случай А Б В Г Д Е Ё Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я
Верхний
Ниже

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

Пунктуация

ИС декодера

В прошлом современные десятичные / шестнадцатеричные шрифты не всегда использовались.

Смотрите также

Есть также четырнадцатисегментные и шестнадцатисегментные дисплеи (для полных буквенно-цифровых символов ); однако их в основном заменили точечно-матричные дисплеи. Двадцатидвухсегментные дисплеи, способные отображать полный набор символов ASCII, были кратковременно доступны в начале 1980-х годов, но не оказались популярными.

Источник

Обучающий портал