Семисегментные индикаторы: подключение и динамическая индикация
Семисегментный индикатор — восемь светодиодов в одном корпусе: семь сегментов цифры и десятичная точка. Разбираем, чем отличаются индикаторы с общим анодом и общим катодом, как рассчитать резисторы, как вывести цифры кодами и как управлять несколькими разрядами через динамическую индикацию, не перегрузив выводы микроконтроллера.
Обновлено Редакция 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, для общего анода они инвертированы:
| Символ | Сегменты | Общий катод | Общий анод |
|---|---|---|---|
| 0 | abcdef | 0x3F | 0xC0 |
| 1 | bc | 0x06 | 0xF9 |
| 2 | abdeg | 0x5B | 0xA4 |
| 3 | abcdg | 0x4F | 0xB0 |
| 4 | bcfg | 0x66 | 0x99 |
| 5 | acdfg | 0x6D | 0x92 |
| 6 | acdefg | 0x7D | 0x82 |
| 7 | abc | 0x07 | 0xF8 |
| 8 | abcdefg | 0x7F | 0x80 |
| 9 | abcfg | 0x67 | 0x98 |
| A | abcefg | 0x77 | 0x88 |
| b | cdefg | 0x7C | 0x83 |
| C | adef | 0x39 | 0xC6 |
| d | bcdeg | 0x5E | 0xA1 |
| E | adefg | 0x79 | 0x86 |
| F | aefg | 0x71 | 0x8E |
В AN557 девятка выводится без нижнего сегмента d; если нужна девятка с «хвостом», код для общего катода — 0x6F. Чтобы зажечь точку, к коду общего катода добавляют бит 7 (OR 0x80), для общего анода его сбрасывают.
Статическое управление
Каждый сегмент подключён к своему выводу через свой резистор и светится постоянно. Резистор считают как для светодиода:
Для 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, а сегменты подключают к портам через резисторы.
Источники
- 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 мА, группы яркости, засветка соседних сегментов
- 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
- Microchip. AN557: Four-Channel Digital Voltmeter with Display and Keyboard (DS00557D) — мультиплексирование четырёх разрядов: 5 мс на разряд каждые 20 мс, 50 Гц; ключи разрядов на NPN или ULN2003; таблица кодов 0–F
- Microchip. AN529: Multiplexing LED Drive and a 4x4 Keypad Sampling (DS00529E) — прямое управление четырьмя разрядами и клавиатурой от 16 выводов, ток сегмента не более 7 мА
- Microchip. ATmega48A/PA/88A/PA/168A/PA/328/P Data Sheet (DS40002061B) — предельный ток вывода 40 мА, выводов питания 200 мА; суммарные токи групп портов 100 и 150 мА
- Titan Micro Electronics. TM1637: страница продукта — драйвер 8 сегментов × 6 разрядов для индикаторов с общим анодом, двухпроводный интерфейс CLK и DIO, 8 ступеней яркости, опрос клавиатуры
Нашли ошибку?
Смотрите также
- ЖК-дисплеиHD44780, KS0108, ST7920, TFT и OLED: типы модулей и выбор
- Резистор для светодиодаНоминал и мощность гасящего резистора
- Расчёт ключа на биполярном транзистореРезистор базы, ток базы, Iк/Iб и нагрев ключа
- Прямое напряжение светодиодаVF: падение напряжения на светодиоде при рабочем токе
- HD44780 и LCD 1602Распиновка 1602, команды, инициализация, I²C, кириллица, CGRAM