Семисегментные цифры своими руками

Добавил пользователь Алексей Ф.
Обновлено: 10.09.2024

Существуют такие параметры, для которых было бы удобнее выдавать объективную информацию, чем просто индикацию. Например, температура воздуха на улице или время на будильнике. Да, все это можно было бы сделать на светящихся лампочках или светодиодах. Один градус — один горящий светодиод или лампочка и тд. Но считать эти светлячки — ну уж нет! Но, как говорится, самые простые решения — самые надежные. Поэтому, долго не думая, разработчики взяли простые светодиодные полосы и расставили их в нужном порядке.

Семисегментные индикаторы

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

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

семисегментный индикатор с точкой

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

Что получается в итоге? Каждая полоска на семисегментном индикаторе засвечивается светодиодом или группой светодиодов. В результате, засветив определенные сегменты, мы можем вывести цифру от 0 и до 9, а также буквы и символы.

Виды семисегментных индикаторов и обозначение на схеме

Существуют одноразрядные, двухразрядные, трехразрядные и четырехразрядные семисегментные индикаторы. Более четырех разрядов я не встречал.

семисегментный индикатор четырехразрядный

На схемах семисегментный индикатор выглядит примерно вот так:

семисегментный индикатор обозначение на схемах

В действительности же, помимо основных выводов, каждый семисегментный индикатор также имеет общий вывод с общим анодом (ОА) или общим катодом (ОК)

Внутренняя схема семисегментного индикатора с общим анодом будет выглядеть вот так:

семисегментный индикатор внутреннее строение с общим анодом

а с общим катодом вот так:

семисегментный индикатор с общим катодом

Как проверить семисегментный индикатор

У нас имеются в наличии вот такие индикаторы:

семисегментные индикаторы

Для того, чтобы проверить современный семисегментный индикатор, нам достаточно мультиметра с функцией прозвонки диодов. Для начала ищем общий вывод — это может быть или ОА или ОК. Здесь только методом тыка. Ну а далее проверяем работоспособность остальных сегментов индикатора по схемам выше.

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

семисегментный индикатор как проверить

Иногда напряжения на мультиметре не хватает для проверки сегмента. Поэтому, берем блок питания, и выставляем на нем 5 Вольт. Чтобы ограничить ток через сегмент, проверяем через резистор на 1-2 Килоома.

семисегментный индикатор проверка

Таким же образом проверяем индикатор от китайского приемника

Семисегментный индикатор

В схемах семисегментные индикаторы соединяются с резисторами на каждом выводе

Семисегментный индикатор

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

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

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

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

Простой семисегментный индикатор

История изобретения

В 1910 году американским изобретателем Фрэнком Вудом из Ньюпорт-Ньюс, штат Вирджиния, был запатентован индикатор сегментного типа. Его индикатор был восьмисегментным, с дополнительным косым сегментом для отображения цифры “четыре”. Однако, до 1970-х годов семисегментные индикаторы не получили распространение и для отображения цифр применялись вакуумные индикаторы тлеющего разряда.

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

Подключение индикатора на панеле

Современные реализации семисегментного индикатора

В настоящее время, большинство одноразрядных семисегментных индикаторов сделаны на светодиодах. В обычном одноразрядном светодиодном индикаторе девять контактов: один общий и восемь – от каждого из сегментов. Есть схемы с общим анодом и с общим катодом. Многоразрядные семисегментные индикаторы чаще выпускаются либо по светодиодной технологии, либо на жидких кристаллах. Выводы всех одноимённых сегментов всех разрядов таких индикаторах соединены вместе, а общие выводы каждого разряда выведены отдельно.

Как устроен семисегментный индикатор и для чего он применяется

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

Устройство

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

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

Как устроен семисегментный индикатор и для чего он применяется

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

Своё название семисегментные индикаторы получили в связи с тем, что изображение символа формируется с помощью семи отдельно управляемых (подсвечиваемых светодиодом) элементов – сегментов. Эти элементы позволяют отобразить любую цифру 0..9, а также некоторые другие символы, например: ‘-‘, ‘A’, ‘b’, ‘C’, ‘d’, ‘E’, ‘F’ и другие.

Семисегментный индикатор из четырех элементов

Что такое семисегментный светодиодный индикатор

Семисегментный светодиодный индикатор, как говорит его название, состоит из семи элементов индикации (сегментов), включающихся и выключающихся по отдельности. Включая их в разных комбинациях, из них можно составить упрощённые изображения арабских цифр. Сегменты обозначаются буквами от A до G; восьмой сегмент — десятичная точка (decimal point, DP), предназначенная для отображения дробных чисел. Изредка на семисегментном индикаторе отображают буквы.

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

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

В латинице: заглавные A, B, C, E, F, G, H, I, J, L, N, O, P, S, U, Y, Z, строчные a, b, c, d, e, g, h, i, n, o, q, r, t, u.

В кириллице: А, Б, В, Г, г, Е, и, Н, О, о, П, п, Р, С, с, У, Ч, Ы (два разряда), Ь, Э/З.

Всего семисегментный светодиодный индикатор может отобразить 128 символов:

Схема подключения

Как работают

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

Как устроен семисегментный индикатор и для чего он применяется

Токоограничительные резисторы могут присутствовать в схеме, а могут и не присутствовать. Все зависит от напряжения питания, которое подается на индикатор и технических характеристик индикаторов. Если, к примеру, напряжение подаваемое на сегменты равно 5 вольтам, а они рассчитаны на рабочее напряжение 2 вольта, то токоограничительные резисторы ставить необходимо (чтобы ограничить ток через них для повышенного напряжении питания и не сжечь не только индикатор, но и порт микроконтроллера). Рассчитать номинал токоограничительных резисторов очень легко, по формуле дедушки Ома. К примеру, характеристики индикатора следующие (берем из даташита):

  • рабочее напряжение — 2 вольта
  • рабочий ток — 10 мА (=0,01 А)
  • напряжение питания 5 вольт

Подключение на практике

Подключение многоразрядного семисегментного индикатора к микроконтроллеру

Схема подключения многоразрядного семисегментного светодиодного индикатора в основном та-же, что и при подключении одноразрядного индикатора. Единственное, добавляются управляющие транзисторы в катодах (анодах) индикаторов. Осуществление индикации разрядами осуществляется динамическим путем:

  • выставляется двоичный код соответствующей цифры на выходах порта РВ для 1 разряда, затем подается логический уровень на управляющий транзистор первого разряда
  • выставляется двоичный код соответствующей цифры на выходах порта РВ для 2 разряда, затем подается логический уровень на управляющий транзистор второго разряда
  • выставляется двоичный код соответствующей цифры на выходах порта РВ для 3 разряда, затем подается логический уровень на управляющий транзистор третьего разряда
  • итак по кругу

При этом надо учитывать:

  • для индикаторов с ОК применяется управляющий транзистор структуры NPN (управляется логической единицей)
  • для индикатора с ОА — транзистор структуры PNP (управляется логическим нулем)

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

Статическая индикация

В том случае, если светодиоды в индикаторе имеют соединённые вместе аноды (схема с общим анодом), общий анод подключается к источнику напряжения +VDD, а катоды светодиодов – сегментов подключаются к схеме управления (например, микроконтроллеру), которая отвечает за формирование изображения на индикаторе. Зажигаются сегменты низким уровнем (логический 0) на выводе схемы управления.

По отношению к схеме управления ток светодиодов является втекающим, так что могут использоваться интегральные схемы, которые имеют выходы с открытым стоком. Изменяя величину питающего индикатор напряжения VDD, можно регулировать яркость свечения.

Как устроен семисегментный индикатор и для чего он применяется

Если в индикаторе соединены вместе катоды (схема с общим катодом), то общий катод подключается к общему проводу схемы, а аноды светодиодов подключаются к схеме управления.

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

Регулировать яркость можно, подключив общий вывод индикатора к источнику смещающего напряжения 0..VDD, рассчитанного на втекающий ток, например к эмиттерному повторителю на транзисторе структуры p-n-p. Увеличивая смещение, будем уменьшать яркость свечения.

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

Как устроен семисегментный индикатор и для чего он применяется

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

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

Например, для индикаторов FYQ-3641Ax/Bx падение напряжения на светодиоде в зависимости от материала, цвета свечения составляет от 1.6 до 2 В при токе 5 мА и от 1.8 до 2.4 В при токе 30 мА (30 мА – максимально допустимый ток через светодиод для данного индикатора в непрерывном режиме).

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

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

При напряжении источника 3.3 В падение напряжения на резисторе составит 3.3-1.8=1.5 В; значит сопротивление резистора R1=1.5 В/5 мА=300 Ом. Если в результате разброса параметров или в результате изменения температуры, или по иным причинам, возможно отклонение напряжения на светодиоде в пределах 1.6..2.0 В (±0.2 В от расчётного значения 1.8 В), это вызовет отклонение тока от расчётного значения не более ±0.7 мА или не более 14%. В большинстве практических случаев это достаточная точность для питания цепей светодиодных индикаторов, хотя ещё следует учесть нестабильность питающего напряжения, неидеальность цифровых ключей, допуск резистора.

При напряжении источника 5 В падение напряжения на резисторе составит 5-1.8=3.2 В; значит сопротивление резистора R2=3.2 В/5 мА=640 Ом, выбираем 620 Ом – ближайшее значение из ряда E24. В этом случае отклонение напряжения на светодиоде ±0.2 В вызовет отклонение тока от расчётной величины порядка ±0.3 мА или не более чем ±7%. Получили точность заданного тока лучшую, чем в первом случае. Это вполне ожидаемый результат – увеличивая напряжение источника и его сопротивление, мы делаем его более близким к идеальному источнику тока.

семисегментный индикатор

Если задаться предельно допустимой точностью тока ±20%, можем получить, что минимальное питающее напряжение составляет 2.8 В, при этом сопротивление ограничивающего ток резистора равно 200 Ом. Для формирования изображения символа на индикаторе используют таблицу, которая ставит в соответствие коду символа набор отображаемых сегментов.

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


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

Быстро конечно не получилось, определенное погружение было. Индикатор выбирал с минимумом интерфейсных цепей, после чего на AliExpress заказал вот такой. Дисплей работает по последовательному интерфейсу по двум цепям: данные DIO и синхронизация CLK. Ну и соответственно ему нужно 5V.

Чтобы не вникать в особенности протокола обмена (как и что на нем зажигается), поискал и готовые исходники программы (драйвера, назовем ее так) для работы с TM1637. Именно этот чип стоит на платке индикатора и делает всю работу.

Дальше сама процедура.

Подключаем DIO и CLK индикатора к любым GPIO выводам STM32: да-да, именно так, никакой UART здесь не нужен. Всю временную последовательность обеспечивают функции драйвера. Подаем на индикатор питание 5V. На этом аппаратное сопряжение завершено.

Теперь, в драйвере ищем строчки

и прописываем там свои обозначения выводов GPIO, к которым вы подключили индикатор.

Кстати, яркостью индикатора тоже можно управлять.

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

где v это само собственное число которое будет отображено, displaySeparator — включать или нет двоеточие в середине дисплея.

Если чисел вам мало и нужно индицировать кракозябры, добавляете их в шаблон segmentMap.

Если вашему приложению на Arduino необходимо отображать только цифры, подумайте об использовании семисегментного индикатора. Семисегментный индикатор имеет семь светодиодов, расположенных в форме восьмерки. Он прост в использовании и экономичен в плане стоимости. На рисунке ниже показан типовой семисегментный индикатор.

Семисегментный индикатор

Семисегментный индикатор

Семисегментные индикаторы бывают двух типов: с общим анодом и общим катодом. Внутренняя структура обоих типов почти одинакова. Разница заключается в полярности светодиодов и общем выводе. В семисегментном индикаторе с общим катодом (такой мы использовали в экспериментах) катоды всех семи светодиодов и светодиода точки подключены к выводам 3 и 8. Чтобы использовать такой индикатор, нам необходимо подключить корпус к выводам 3 и 8 и подать +5В на другие выводы, чтобы отдельные светодиоды загорелись. Следующей схеме показана внутренняя структура семисегментного индикатора с общим катодом:

Семисегментный индикатор с общим катодом

Семисегментный индикатор с общим катодом

Индикатор с общим анодом является полной противоположностью. В индикаторе с общим анодом положительные выводы всех восьми светодиодов соединены вместе и подключены к выводам 3 и 8. Чтобы зажечь отдельный сегмент, вы соединяете его второй вывод с корпусом. На следующей диаграмме показана внутренняя структура семисегментного индикатора с общим анодом:

Семисегментный индикатор с общим анодом

Семисегментный индикатор с общим анодом

Сем сегментов обозначены как a-g, а точка как "dp", как показано на рисунке ниже:

Структура семисегментного индикатора

Структура семисегментного индикатора

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

Включение сегментов индикатора для отображения цифр
Цифраgfedcbaabcdefgabcdefg
00x3F0x7Eвклвклвклвклвклвклвыкл
10x060x30выклвклвклвыклвыклвыклвыкл
20x5B0x6Dвклвклвыклвклвклвыклвкл
30x4F0x79вклвклвклвклвыклвыклвкл
40x660x33выклвклвклвыклвыклвклвкл
50x6D0x5Bвклвыклвклвклвыклвклвкл
60x7D0x5Fвклвыклвклвклвклвклвкл
70x070x70вклвклвклвыклвыклвыклвыкл
80x7F0x7Fвклвклвклвклвклвклвкл
90x6F0x7Bвклвклвклвклвыклвклвкл
A0x770x77вклвклвклвыклвклвклвкл
B0x7C0x1Fвыклвыклвклвклвклвклвкл
C0x390x4Eвклвыклвыклвклвклвклвыкл
D0x5E0x3Dвыклвклвклвклвклвыклвкл
E0x790x4Fвклвыклвыклвклвклвклвкл
F0x710x47вклвыклвыклвыклвклвклвкл

Эксперимент 1

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

Необходимые комплектующие

  • 1 x семисегментный индикатор (общий катод);
  • 1 x Arduino MEGA 2560
  • 1 x макетная плата;
  • перемычки.

Схема соединений

В этой схеме выводы семисегментного индикатора подключены к контактам 2-9 платы Arduino, как показано в таблице ниже. Общие выводы (3 и 8) подключены к GND, а dp остается неподключенным, так как точка не используется в этом эксперименте.

Эксперимент 2

Описание

В этом руководстве мы свяжем семисегментный индикатор с Arduino Mega и посмотрим, как отобразить на индикаторе значения счетчика, уменьшающиеся на 1 каждую секунду.

Необходимые комплектующие

В этом эксперименте используются те же комплектующие, что и в первом случае.

Читайте также: