Перейти к содержанию

Семисегментные индикаторы: подключение и динамическая индикация

Семисегментный индикатор — восемь светодиодов в одном корпусе: семь сегментов цифры и десятичная точка. Разбираем, чем отличаются индикаторы с общим анодом и общим катодом, как рассчитать резисторы, как вывести цифры кодами и как управлять несколькими разрядами через динамическую индикацию, не перегрузив выводы микроконтроллера.

Обновлено Редакция GAW

Семисегментный индикатор отображает цифры и некоторые буквы семью сегментами, которые обозначают латинскими буквами от a до g, восьмой элемент — десятичная точка dp. Каждый сегмент — светодиод, и рассчитываются сегменты так же, как обычные светодиоды.

Сегменты и общий вывод

Сегмент a — верхний, дальше по часовой стрелке идут b (правый верхний), c (правый нижний), d (нижний), e (левый нижний) и f (левый верхний), g — средний. Внутри индикатора одни выводы светодиодов соединены вместе:

СхемаОбщий выводСегмент светится, когдаПример Vishay
Общий анод (common anode)к плюсу питанияна выводе сегмента низкий уровеньTDSO5150, TDSG5150
Общий катод (common cathode)к общему проводуна выводе сегмента высокий уровеньTDSO5160, TDSG5160

Параметры индикатора приводятся на сегмент. У 13-миллиметровых Vishay TDS.51.. прямое напряжение — 2 В типично и 3 В максимум для оранжево-красных и 2,4 и 3 В для зелёных при токе 20 мА, предельный постоянный ток сегмента — 25 мА, сила света нормируется при 10 мА. Малоточные TDSR0750 дают типично 1500 мккд уже при 1 мА — они рассчитаны на батарейные приборы, и постоянный ток сегмента у них не больше 10 мА.

Производитель сортирует индикаторы по группам силы света и поставляет в одной упаковке одну группу — так разряды в одном приборе светятся одинаково. И ещё одно предупреждение из даташита: в компактных индикаторах часть света неизбежно просачивается в соседние сегменты, и чем ярче горят сегменты, тем это заметнее.

Коды цифр

Если сегменты подключены к одному порту по порядку — a к младшему биту, g к шестому, dp к старшему, — каждой цифре соответствует байт. Коды для общего катода взяты из таблицы в Microchip AN557, для общего анода они инвертированы:

СимволСегментыОбщий катодОбщий анод
0abcdef0x3F0xC0
1bc0x060xF9
2abdeg0x5B0xA4
3abcdg0x4F0xB0
4bcfg0x660x99
5acdfg0x6D0x92
6acdefg0x7D0x82
7abc0x070xF8
8abcdefg0x7F0x80
9abcfg0x670x98
Aabcefg0x770x88
bcdefg0x7C0x83
Cadef0x390xC6
dbcdeg0x5E0xA1
Eadefg0x790x86
Faefg0x710x8E

В AN557 девятка выводится без нижнего сегмента d; если нужна девятка с «хвостом», код для общего катода — 0x6F. Чтобы зажечь точку, к коду общего катода добавляют бит 7 (OR 0x80), для общего анода его сбрасывают.

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

Каждый сегмент подключён к своему выводу через свой резистор и светится постоянно. Резистор считают как для светодиода:

R=Uпит−UFIFR = \frac{U_\text{пит} - U_F}{I_F}

Для TDSO5160 от 5 В при токе 10 мА: R = (5 − 2) / 0,01 = 300 Ом, это номинал ряда E24. Падение на выходе порта уменьшит ток ещё немного. Расчёт для любого светодиода — в калькуляторе резистора для светодиода.

Один резистор на общем выводе вместо восьми ставить нельзя: ток будет делиться между сегментами, и яркость цифры «1» будет заметно выше, чем у «8». Статическое управление требует восемь выводов на разряд, поэтому для двух разрядов и больше применяют динамическую индикацию или драйвер.

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

Одноимённые сегменты всех разрядов соединяют параллельно, а общие выводы разрядов включают по очереди. В каждый момент светится один разряд, и пока он включён, на сегменты подают его код. Если переключать разряды достаточно быстро, глаз видит все цифры одновременно. Выводов нужно 8 + N вместо 8 · N: четыре разряда — 12 выводов вместо 32.

Microchip в AN557 включает каждый из четырёх разрядов на 5 мс каждые 20 мс — индикатор обновляется с частотой 50 Гц, что глаз воспринимает как постоянное свечение. Отсчёт 5 мс даёт прерывание таймера, и в нём же код переключает разряд. В AN529 тот же цикл совмещён с опросом клавиатуры 4 × 4 — всего на 16 выводах.

Два следствия:

  • Средний ток меньше в N раз. При четырёх разрядах и токе сегмента 10 мА средний ток каждого сегмента — 2,5 мА. Повышать ток импульса можно только в пределах даташита: у TDSR0750 импульсный ток 50 мА разрешён при длительности до 10 мкс и скважности 1/10, а импульс в миллисекунды должен укладываться в предел постоянного тока.
  • Через общий вывод идёт ток всего разряда. Восемь сегментов по 10 мА — 80 мА. В AN557 общие выводы разрядов коммутируют NPN-транзисторы или сборка ULN2003. Расчёт базового резистора ключа — в калькуляторе транзисторного ключа.

Пример: четыре разряда на ATmega328P

Индикатор с общим катодом, 5 В, ток сегмента 10 мА, сегменты подключены к одному порту через резисторы 300 Ом, катоды разрядов — через NPN-транзисторы.

Проверка по DS40002061BПределВ схеме
Ток одного вывода сегмента40 мА (предельный режим), 20 мА — условие измерения уровней10 мА
Ток общего вывода разряда, если подключить его к МК напрямую40 мА80 мА — нужен транзистор
Сумма вытекающих токов группы портов150 мА80 мА
Средний ток сегмента—2,5 мА

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

Драйверы

Специализированные микросхемы берут динамическую индикацию на себя: микроконтроллер только записывает коды разрядов. TM1637 от Titan Micro управляет индикаторами с общим анодом — до 6 разрядов по 8 сегментов, — регулирует яркость скважностью в 8 ступенях, опрашивает кнопки и подключается по двухпроводному интерфейсу CLK и DIO.

Другие индикаторы — символьные ЖК на HD44780 и графические дисплеи — собраны в разделе «Дисплеи». Прямое напряжение разных цветов светодиодов разобрано на странице глоссария «Прямое напряжение светодиода».

Частые вопросы

Как отличить индикатор с общим анодом от индикатора с общим катодом?

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

Почему при динамической индикации цифры тусклее?

Каждый разряд светится только часть времени: при четырёх разрядах — четверть периода. Средний ток сегмента вчетверо меньше тока в импульсе. Поднимать ток импульса выше допустимого постоянного можно только в пределах, которые даёт даташит, — у TDSR0750 импульсный ток 50 мА разрешён лишь для импульсов до 10 мкс.

С какой частотой обновлять разряды, чтобы не было мерцания?

В Microchip AN557 каждый из четырёх разрядов горит 5 мс каждые 20 мс — индикатор обновляется с частотой 50 Гц, и глаз видит его как постоянный. При большем числе разрядов время на разряд сокращают, чтобы полный цикл оставался не длиннее 20 мс.

Можно ли подключить общий вывод разряда прямо к выводу микроконтроллера?

Обычно нет. Через общий вывод идёт ток всех светящихся сегментов: восемь сегментов по 10 мА — это 80 мА, а предельный ток вывода ATmega328P — 40 мА. Поэтому общие выводы разрядов коммутируют транзисторами или сборкой ULN2003, как в AN557, а сегменты подключают к портам через резисторы.

Источники

  1. Vishay. TDSO5150, TDSO5160, TDSG5150, TDSG5160: Standard 7-Segment Display 13 mm (Document Number 83126, Rev. 2.5, 07-Jul-2022) — общий анод и катод, сила света при 10 мА, прямое напряжение 2–3 В при 20 мА, ток сегмента до 25 мА, группы яркости, засветка соседних сегментов
  2. Vishay. TDSR0750, TDSR0760: High Intensity Red Low Current 7-Segment Display (Document Number 81163, Rev. 1.2, 15-Nov-2021) — 1500 мккд при 1 мА, постоянный ток до 10 мА, импульсный 50 мА при длительности до 10 мкс и скважности 1/10
  3. Microchip. AN557: Four-Channel Digital Voltmeter with Display and Keyboard (DS00557D) — мультиплексирование четырёх разрядов: 5 мс на разряд каждые 20 мс, 50 Гц; ключи разрядов на NPN или ULN2003; таблица кодов 0–F
  4. Microchip. AN529: Multiplexing LED Drive and a 4x4 Keypad Sampling (DS00529E) — прямое управление четырьмя разрядами и клавиатурой от 16 выводов, ток сегмента не более 7 мА
  5. Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B) — предельный ток вывода 40 мА, выводов питания 200 мА; суммарные токи групп портов 100 и 150 мА
  6. Titan Micro Electronics. TM1637: страница продукта — драйвер 8 сегментов × 6 разрядов для индикаторов с общим анодом, двухпроводный интерфейс CLK и DIO, 8 ступеней яркости, опрос клавиатуры

Нашли ошибку?