Цифровые сегментные индикаторы. Управление семисегментным индикатором. Особенности семисегментных индикаторов

При таком подходе, для вывода числа с любым количеством разрядов используется всего 2 цифровых выхода Arduino.

Для примера будем выводить на индикаторы количество секунд, прошедших с момента старта работы.

Исходные компоненты

Принцип работы

Семисегментный индикатор - это просто набор обычных светодиодов в одном корпусе. Просто они выложены восьмёркой и имеют форму палочки-сегмента. Можно подключить его напрямую к Arduino, но тогда будет занято 7 контактов, а в программе будет необходимо реализовать алгоритм преобразования числа из двоичного представления в соответствующие «калькуляторному шрифту» сигналы.

Для упрощения этой задачи существует 7-сегментный драйвер. Это простая микросхема с внутренним счётчиком. У неё есть 7 выходов для подключения всех сегментов (a, b, c, d, e, f, g pins), контакт для сбрасывания счётчика в 0 (reset pin) и контакт для увеличения значения на единицу (clock pin). Значение внутреннего счётчика преобразуется в сигналы (включен / выключен) на контакты a-g так, что мы видим соответствующую арабскую цифру.

На микросхеме есть ещё один выход, обозначенный как «÷10». Его значение всё время LOW за исключением момента переполнения, когда значение счётчика равно 9, а его увеличивают на единицу. В этом случае значением счётчика снова становится 0, но выход «÷10» становится HIGH до момента следующего инкремента. Его можно соединить с clock pin другого драйвера и таким образом получить счётчик для двузначных чисел. Продолжая эту цепочку, можно выводить сколь угодно длинные числа.

Микросхема может работать на частоте до 16 МГц, т.е. она будет фиксировать изменения на clock pin даже если они будут происходить 16 миллионов раз в секунду. На той же частоте работает Arduino, и это удобно: для вывода определённого числа достаточно сбросить счётчик в 0 и быстро инкрементировать значение по единице до заданного. Глазу это не заметно.

Подключение

Сначала установим индикаторы и драйверы на breadboard. У всех них ноги располагаются с двух сторон, поэтому, чтобы не закоротить противоположные контакты, размещать эти компоненты необходимо над центральной канавкой breadboard’а. Канавка разделяет breadboard на 2 несоединённые между собой половины.

    16 - к рельсе питания: это питание для микросхемы

    2 «disable clock» - к рельсе земли: мы его не используем

    3 «enable display» - к рельсе питания: это питание для индикатора

    8 «0V» - к рельсе земли: это общая земля

    1 «clock» - через стягивающий резистор к земле. К этому контакту мы позже подведём сигнал с Arduino. Наличие резистора полезно, чтобы избежать ложного срабатывания из-за окружающих помех пока вход ни к чему не подключен. Подходящим номиналом является 10 кОм. Когда мы соединим этот контакт с выходом Arduino, резистор не будет играть роли: сигнал притянет к земле микроконтроллер. Поэтому если вы знаете, что драйвер при работе всегда будет соединён с Arduino, можете не использовать резистор вовсе.

    15 «reset» и 5 «÷10» пока оставим неподключенными, но возьмём на заметку - нам они понадобятся в дальнейшем

Контакты 3 и 8 на индикаторе обозначены как «катод», они общие для всех сегментов, и должны быть напрямую соединены с общей землёй.

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

Соединять необходимо сопоставляя распиновку микросхемы (выходы a-g) и распиновку индикатора (входы a-g)

Повторяем процедуру для второго разряда

Теперь вспоминаем о контакте «reset»: нам необходимо соединить их вместе и притянуть к земле через стягивающий резистор. В последствии, мы подведём к ним сигнал с Arduino, чтобы он мог обнулять значение целиком в обоих драйверах.

Также подадим сигнал с «÷10» от правого драйвера на вход «clock» левого. Таким образом мы получим схему, способную отображать числа с двумя разрядами.

Стоит отметить, что «clock» левого драйвера не стоит стягивать резистором к земле, как это делалось для правого: его соединение с «÷10» само по себе сделает сигнал устойчивым, а притяжка к земле может только нарушить стабильность передачи сигнала.

Железо подготовленно, осталось реализовать несложную программу.

Программирование

7segment.pde #define CLOCK_PIN 2 #define RESET_PIN 3 /* * Функция resetNumber обнуляет текущее значение * на счётчике */ void resetNumber() { // Для сброса на мгновение ставим контакт // reset в HIGH и возвращаем обратно в LOW digitalWrite(RESET_PIN, HIGH) ; digitalWrite(RESET_PIN, LOW) ; } /* * Функция showNumber устанавливает показания индикаторов * в заданное неотрицательное число `n` вне зависимости * от предыдущего значения */ void showNumber(int n) { // Первым делом обнуляем текущее значение resetNumber() ; // Далее быстро «прокликиваем» счётчик до нужного // значения while (n-- ) { digitalWrite(CLOCK_PIN, HIGH) ; digitalWrite(CLOCK_PIN, LOW) ; } } void setup() { pinMode(RESET_PIN, OUTPUT) ; pinMode(CLOCK_PIN, OUTPUT) ; // Обнуляем счётчик при старте, чтобы он не оказался // в случайном состоянии resetNumber() ; } void loop() { // Получаем количество секунд в неполной минуте // с момента старта и выводим его на индикаторы showNumber((millis() / 1000 ) % 60 ) ; delay(1000 ) ; }

Результат

Подключаем контакт 2 с Arduino к контакту clock младшего (правого) драйвера, контакт 3 - к общему reset’у драйверов; разводим питание; включаем - работает!

В сегодняшней статье поговорим о 7-сегментных индикаторах и о том, как их «подружить» с Ардуино. Есть несколько вариантов. Самый простой, безусловно, это зайти на и купить готовый индикатор с интегрированным шилдом (это платка согласования так называется), но мы не ищем лёгких путей, поэтому пойдем путем чуть более сложным. Новички – не пугайтесь, эта статья, как и предыдущие мои статьи ( и ) именно для вас. Пусть гуру пишут для таких же умудренных опытом гуру, а я новичок – пишу для новичков.

Почему именно 7-сегментный индикатор? Ведь существует столько всяких экранов, с большим количеством символов, строк, разнообразных диагоналей и разрешений, черно-белых и цветных, самые доступные из которых стоят пару долларов… А тут: «старенький», до безобразия простой, но требующий огромного количества пинов 7-сегментный индикатор, но все-таки преимущество есть и у этого «старичка». Дело в том, что пользуясь приведенными здесь скетчами можно оживить не только индикатор с высотой цифр 14 мм, но и более серьезные (правда уже самодельные) проекты, и метровые цифры в данном случае далеко не предел. Жителям столиц это может быть не так интересно, а вот население Новокацапетовки или Нижней Кедровки очень порадуется, если на клубе или сельсовете появятся часы, которые еще могут и дату отображать, и температуру, а о создателе этих часов будут говорить очень долго. Но, подобные часы тема отдельной статьи: будет желание у посетителей – напишу. Всё выше написанное можно считать вступлением. Как и прошлая моя статья эта будет состоять из частей, на этот раз из двух. В первой части мы просто «по управляем» индикатором, а во второй – попробуем приспособить его для чего-то хоть немного полезного. Итак, продолжим:

Часть первая. Экспериментально – познавательная

За основу данного проекта взят нам уже хорошо знакомый по предыдущим статьям ARDUINO UNO. Напомню, что приобрести его легче всего можно здесь: или здесь: , кроме этого понадобится 4-разрядный, 7-сегментный индикатор. У меня, в частности GNQ-5641BG-11. Почему именно этот? Да просто потому, что лет 5 назад купил его по ошибке, идти менять было лень, вот он и валялся все это время, ожидая своего часа. Думаю, что подойдет любой с общим анодом (и с общим катодом можно, но придется данные массива и остальные значения портов инвертировать – т.е. менять на обратные), лишь бы не был слишком мощным, чтобы не сжечь Ардуинку. Кроме этого – 4 токоограничивающих резистора, примерно 100 Ом каждый и кусок шлейфа (мне хватило 10 см) на 12 пин (жил) можно «оторвать» от более широкого, что я и сделал. А можно вообще отдельными проводочками подпаяться, проблем не будет. Еще понадобятся штыри на плату (11 шт.) хотя, если аккуратно можно и без них. Эскиз индикатора можно увидеть на рисунке 1, а его схему на рисунке 2. Также отмечу, что на каждый сегментик этого индикатора лучше подавать не более 2.1В (ограничивается 100-Омными резисторами), и в этом случае он будет потреблять не более 20 мА. В случае, если загорится цифра «8» потребление не превысит 7х20=140 мА, что вполне допустимо для выходов Ардуино. Любознательный читатель задаст вопрос: «Но ведь 4 разряда по 140 мА это уже 4х140=560 мА, а это уже многовато!» Отвечу – останется 140. Каким образом? Читайте дальше! Расположение пинов на индикаторе видно на рисунке 3. А подключение делаем согласно таблице 1.


Рис. 1 - Эскиз индикатора


Рис. 2 - Схема индикатора


Рис. 3 - Расположение пинов

Таблица 1

Пин Ардуино Уно

Пин индикатора

Примечание

Сегмент G

Сегмент F

Сегмент E

Сегмент D

Сегмент C

Сегмент B

Сегмент A

Общий анод сегмента № 1, подключать через резистор 100 Ом.

Общий анод сегмента № 2, подключать через резистор 100 Ом.

Общий анод сегмента № 3, подключать через резистор 100 Ом.

Общий анод сегмента № 6, подключать через резистор 100 Ом.



Заливаем простенький скетч, который представляет собой простенькую «считалочку» от 0 до 9:


А теперь немного пояснений. DDRD это регистр порта D (DDRB – соответственно порта В) за «страшным» словом «регистр» всего лишь «спряталась» функция, которая указывает, будет порт своим пином читать что-то (принимать информацию), либо наоборот туда можно будет что-то писать (отдавать информацию). В данном случае строчка DDRD=B11111111; указывает, что все пины порта D выходные, т.е. информация из них будет выходить. Буквочка «В» обозначает, что в регистр записано двоичное (бинарное) число. Нетерпеливый читатель тут же спросит: «А десятичное можно!?!». Спешу успокоить – можно, но об этом чуть позже. Если бы мы хотели половину порта задействовать на вход, а половину на выход можно было бы указать так: DDRD=B11110000; единицы показывают те пины, которые будут отдавать информацию, а нули – те, которые будут эту самую информацию принимать. Основное удобство регистра заключено еще и в том, что не надо прописывать 8 раз все пины, т.е. мы экономим в программе 7 строк. А теперь разберем следующую строку:

PORTB=B001000; // устанавливаем высокий уровень 11 пина порта В

PORTB это регистр данных порта В, т.е. записав в него какое-либо число мы указываем на каком пине порта будет единица, а на каком – ноль. В добавление к комментарию скажу, если взять Ардуино Уно таким образом, чтобы видеть контроллер и цифровые пины были сверху - будет понятна запись в регистр, т.е. какой «ноль» (или «единица»)отвечает за какой пин, т.е. крайний правый ноль порта В отвечает за 8-й пин, а крайний левый – за 13-й (у которого встроенные светодиод). Для порта D соответственно правый за пин 0, левый за пин 7.
Надеюсь после таких развёрнутых пояснений все понятно, а раз понятно предлагаю вернуться к известной нам и горячо любимой с детства десятичной системе счисления. И еще – скетч в 25 строк вроде и небольшой, но для новичка все-таки несколько громоздок. Будем уменьшать.

Заливаем еще более простой скетч, та же самая «считалочка»:


Видео 1 .
Всего 11 строчек! Вот это по-нашему, «по-новичковски»! Прошу обратить внимание вместо двоичных чисел в регистры записаны десятичные. Естественно, для десятичных чисел никаких букв впереди не нужно. Думаю, не лишним будет свести все числа в таблицы.

Таблица 2. Соответствие отображаемого знака данным порта

Общий анод

Общий катод

Двоичная система

Десятичная система

Двоичная система

Десятичная система

Таблица 3. Соответствие отображаемого разряда данным порта

Общий анод

Общий катод

Двоичная система

Десятичная система

Двоичная система

Десятичная система



Внимание! Данные таблиц 2 и 3 справедливы только при распайке согласно таблице 1.
А теперь зальем скетч со «считалочкой» от 0 до 9999:




Рис. 4 - Считалочка

Работу скетча можно посмотреть на Видео 2 .

В этом скетче комментариев больше, чем самого кода. Вопросов возникнуть не должно…. Кроме одного, что это за «цикл мерцания» такой, что, собственно говоря, там мерцает и для чего? А еще переменная для этого какая-то…
А все дело в том, что одноименные сегменты всех четырех разрядов у нас соединены в одной точке. А1, А2, А3 и А4 имеют общий катод; А1, В1,…..G1 общий анод. Так, что подав одновременно на 4 разрядный индикатор «1234» мы получим «8888» и очень удивимся по этому поводу. Чтобы этого не произошло нужно сначала зажечь «1» в своем разряде, потом отключить её, зажечь «2» в своем и т.д. Если делать это очень быстро, то мерцание цифр сольётся, как кадры на киноплёнке и глаз его практически не будет замечать. А максимальное значение переменной мерцания в данном случае управляет скоростью смены цифр на индикаторе. Кстати, именно благодаря этому «мерцанию» и максимальное потребление тока всего 140 мА, вместо 560. А теперь предлагаю перейти к чему-то более полезному.

Часть вторая. Хоть немного полезная

В этой части мы выведем символы с персонального компьютера на 7-сегментный индикатор при помощи ARDUINO MEGA. Почему вдруг возникла идея «поменять лошадей на переправе»? Причин две: первая – до этого в своих статьях я ни разу не рассматривал ARDUINO MEGA; и вторая – в ARDUINO UNO я так и не разобрался, как мне динамически менять местами СОМ порт и порт D. Но я новичок – мне простительно. Приобрести данный контроллер, естественно можно здесь: . Для реализации задуманного пришлось взять паяльник и перепаять шлейф со стороны Ардуино, а также написать новый скетч. Как перепаян шлейф можно посмотреть на Рисунке 5. Все дело в том, что ARDUINO MEGA и ARDUINO UNO имеют разную распиновку портов, да и в Меге портов гораздо больше. Соответствие использованных пинов видно из Таблицы 4.



Рис. 5 - Новая распайка шлейфа

Таблица 4

Порт Мега


Внимание! Данная таблица справедлива только для данного проекта!

Также следует обратить внимание, что порт С у Ардуино Мега «начинается» с 37 пина и далее по убывающей, а порт А – с 22 пина и далее по возрастающей.



Рис. 6 - Общий вид



Небольшие особенности реализации: выводить будем 4 символа. Символы должны быть цифрами. Если ввели «1234» и увидим «1234», если ввели «123456» все равно увидим «1234», если ввели «йцук», «фыва1234», «отиог485909оапоьм» - не увидим ничего. Если ввели «рр2345мм» увидим « 23» т.е. небольшая, встроенная «защита от дурака».

Собственно скетч:



А как работает данная программа можно посмотреть на Видео 3 .



Обзор подготовил Павел Сергеев

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

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

Этому способствуют следующие их качества.

  • Низкая цена. В средствах индикации нет ничего дешевле светодиодных цифровых индикаторов.
  • Разнообразие размеров. Самые маленькие и самые большие индикаторы – светодиодные. Мне известны светодиодные индикаторы с высотой цифры от 2,5 мм, до 32 см.
  • Светятся в темноте. В некоторых приложениях это свойство чуть ли не решающее.
  • Имеют различные цвета свечения. Бывают даже двухцветные.
  • Достаточно малые токи управления. Современные светодиодные индикаторы могут подключаться к выводам микроконтроллеров без дополнительных ключей.
  • Допускают жесткие условия эксплуатации (температурный диапазон, высокая влажность, вибрации, агрессивные среды и т.п.). По этому качеству светодиодным индикаторам нет равных среди других типов элементов индикации.
  • Неограниченный срок службы.

Типы светодиодных индикаторов.

Семисегментный светодиодный индикатор отображает символ с помощью семи светодиодов – сегментов цифры. Восьмой светодиод засвечивает децимальную точку. Так что в семисегментном индикаторе 8 сегментов.

Сегменты обозначаются латинскими буквами от ”A” до ”H”.

Аноды или катоды каждого светодиода объединяются в индикаторе и образуют общий провод. Поэтому существуют индикаторы с общим анодом и общим катодом.

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

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

Статическое управление светодиодным индикатором.

Подключать светодиодные индикаторы к микроконтроллеру необходимо через резисторы, ограничивающие ток.

Расчет резисторов такой же, как для отдельных светодиодов.

R = (U питания - U сегмента) / I сегмента

Для этой схемы: I сегмента = (5 – 1,5) / 1000 = 3,5 мА

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

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

Засветится сегмент, на управляющем выводе которого будет сформирован высокий уровень (5 В).

Мультиплексированный режим управления светодиодными (LED) индикаторами.

Для подключения каждого семисегментного индикатора к микроконтроллеру требуется восемь выводов. Если индикаторов (разрядов) 3 – 4, то задача становится практически не выполнимой. Просто не хватит выводов микроконтроллера. В этом случае индикаторы можно подключить в мультиплексированном режиме, в режиме динамической индикации.

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

Для подключения трех индикаторов потребовалось 11 выводов, а не 24, как при статическом режиме управления.

При динамической индикации в каждый момент времени горит только одна цифра. На общий вывод одного из разрядов подается сигнал высокого уровня (5 В), а на выводы сегментов поступают сигналы низкого уровня для тех сегментов, какие должны светиться в этом разряде. Через определенное время зажигается следующий разряд. На его общий вывод подается высокий уровень, а на выводы сегментов сигналы состояния для этого разряда. И так для всех разрядов в бесконечном цикле. Время цикла называется временем регенерации индикаторов. Если время регенерации достаточно мало, то человеческий глаз не заметит переключения разрядов. Будет казаться, что все разряды светятся постоянно. Для исключения мерцания индикаторов считается, что частота цикла регенерации должно быть не менее 70 Гц. Я стараюсь использовать не менее 100 Гц.

Схема динамической индикации для светодиодов с общим катодом выглядит так.

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

Расчет элементов динамической индикации светодиодных (LED) индикаторов.

Расчет несколько сложнее, чем для статического режима. В ходе расчета необходимо определить:

  • средний ток сегментов;
  • импульсный ток сегментов;
  • сопротивление резисторов сегментов;
  • импульсный ток общих выводов разрядов.

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

Выберем средний ток сегмента 1 мА.

Теперь рассчитаем импульсный ток сегмента. Чтобы обеспечить требуемый средний ток, импульсный ток должен быть в N раз больше. Где N число разрядов индикатора.

I сегм. имп. = I сегм. средн. * N

Для нашей схемы I сегм. имп. = 1 * 3 = 3 мА.

Рассчитываем сопротивление резисторов, ограничивающих ток.

R = (U питания - U сегмента) / I сегм. имп.

R = (5 – 1,5) / 0.003 = 1166 Ом

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

I разряда имп. = I сегм. имп. * 8

Для нашей схемы I разряда имп. = 3 * 8 = 24 мА.

  • сопротивление резисторов выбираем 1,1 кОм;
  • выводы микроконтроллера управления сегментами должны обеспечивать ток не менее 3 мА;
  • выводы микроконтроллера выбора разряда индикатора должны обеспечивать ток не менее 24 мА.

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

Схемы с дополнительными ключами.

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

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

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

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

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

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

Ключи для индикаторов с повышенным напряжением питания .

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

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

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

Между переключением разрядов индикатора на короткое время (1-5 мкс) должны выключаться все сегменты. Это время необходимо на завершение переходных процессов коммутации ключей.

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

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

Рубрика: . Вы можете добавить в закладки.

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

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

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

Семисегментный индикатор состоит из семи светодиодов (отсюда и его название), расположенных прямоугольником, как показано на рисунке. Каждый из семи светодиодов называется сегментом, поскольку при свечении сегмент образует часть цифры (десятичной или 12-ричной Иногда в пределах одного пакета используется 8-й дополнительной светодиод. Он служит для отображения десятичной точки (DP), позволяя, таким образом, отображать если два или более 7-сегментных индикаторов соединены вместе для представления чисел больше десяти.

Каждый из семи светодиодных сегментов дисплея соединен с соответствующей площадкой контактного ряда, расположенного прямо на прямоугольном пластиковом корпусе индикатора. Светодиодные контакты промаркированы метками от a до g, представляющими каждый отдельный сегмент. Другие контакты светодиодных сегментов соединены между собой и образуют общий вывод.

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

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

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

  • Общий катод (ОК) - соединенные между собой катоды всех светодиодных сегментов имеет уровень логического "0" или подключен к общему проводу. Отдельные сегменты высвечиваются подачей на их анодный вывод сигнала "высокого" логического уровня или логической "1" через ограничительный резистор для создания прямого смещения отдельных светодиодов.
  • Общий анод (ОА) - аноды всех светодиодных сегментов объединены и имеют уровень логической "1". Отдельные сегменты индикатора светятся при соединении каждого конкретного катода с землей, логическим "0" или низкопотенциальным сигналом через соответствующий ограничительный резистор.

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

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

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

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

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

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

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

И вот в начале двадцатого века, с появлением электронных ламп появились первые газоразрядные индикаторы

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

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

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

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

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

На рисунке 13 показана усовершенствованная схема счетчика частоты, которая использует блокировку дисплея для преодоления вышеупомянутого дефекта. Эта схема работает следующим образом. Одновременно открывается входной затвор, и счетчики начинают суммировать импульсы входного сигнала. Этот счетчик продолжается ровно через одну секунду, и в течение этого периода четырехбитовые защелки не позволяют выходным сигналам счетчика поступать на драйверы дисплея; при этом дисплей остается стабильным в течение этого периода.

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

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

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

Обратите внимание, что трехзначный частотомер может указывать максимальные частоты 999 Гц при использовании односекундной базы, 99 кГц при использовании 100 мс временной базы, 9 кГц при использовании временной базы 10 мс и 999 кГц при использовании 1 мс временной базы.

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

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

Этот метод можно понять с помощью рисунков 14 и 15. Эти переключатели соединены вместе и обеспечивают действительное действие мультиплексора и должны рассматриваться как быстродействующие электронные переключатели, которые многократно переключаются через позиции 1, 2, и последовательность операций схемы следующая. Предположим сначала, что переключатель находится в положении.

Несколько мгновений спустя переключатель переходит в положение 3, заставляя дисплей 3 отображать число через несколько минут, весь цикл начинает повторяться снова и так далее, добавляя бесконечность. На практике около 50 из этих циклов происходят каждую секунду, поэтому глаз не видит, что дисплеи включаются и выключаются отдельно, но воспринимают их как явно устойчивый дисплей, который показывает номер 327, или какой-либо другой номер продиктован сегментом данные.

Если рассмотреть схему одиночного семисегментного индикатора, то она выглядит вот так:

Как мы видим, семисегментный индикатор может быть как с общим анодом (ОА) , так и с общим катодом (ОК) . Грубо говоря, если семисегментник у нас с общим анодом (ОА), то в схеме мы должны на этот вывод вешать "плюс", а если с общим катодом (ОК) - то "минус" или землю. На какой вывод мы подадим напряжение, такой светодиодик у нас и загорится. Давайте все это продемонстрируем на практике.

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

Если эти терминалы активны высоко, они будут иметь следующие характеристики. Фиг. 18 и 19. На рисунке 18 показана техника гашения пульсаций, используемая для обеспечения подавления начального нуля на четырехзначном дисплее, который считывает количество.

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

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

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

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

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

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

Управление 7-сегментным дисплеем

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

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

Для чего же нам резистор? При подаче на светодиодик напряжения он начинает резко жрать ток при включении. Поэтому в этот момент он может перегореть. Чтобы ограничить ток, последовательно со светодиодом включается в цепь резистор. Более подробно можно прочитать в этой статье.

Подсчет в шестнадцатеричном виде на одном 7-сегментном дисплее

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

Это экономит контакты на корпусе, а затем на контроле. Соответственно, упоминаются дисплеи с общим анодом или общим катодом. Вывод, который соответствует сегменту или десятичной точке, лучше всего извлекать из листа данных для отображения. 7-сегментный дисплей, который рассчитан на обычные 10-20 мА, по-прежнему будет гореть, хотя и слабый. Но для этого не требуется назначение контактов. Далее распределение этого сегмента основано на.

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

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

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

В тестовой программе последовательно отображаются цифры от 0 до 9 на 7-сегментном дисплее. Выходящий номер сохраняется в регистровом счетчике и увеличивается на 1 в пределах цикла. Если регистр достиг значения 10, он снова сбрасывается на 0. После повышения возникает цикл ожидания, который гарантирует, что определенное время пройдет в следующем выпуске. Обычно вы не делаете таких длинных циклов ожидания, но это не про ожидание, а контроль 7-сегментного дисплея. Использовать таймер для этого - это слишком много усилий.

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

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

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

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

В этой статье мы поговорим о цифровой индикации.
Семисегментные светодиодные индикаторы предназначены для отображения арабских цифр от 0 до 9 (рис.1).

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

К сожалению, есть проблема, потому что для отображения необходимо восемь портов - четыре объявления потребуют 32 порта. Но есть несколько путей. Сдвиговые регистры уже описаны в другом учебнике. Это упростило бы создание требуемых 32 выходных линий только с тремя выводами. Принцип управления не отличается от управления одним 7-сегментным дисплеем, только то, как «выходные выводы» приближаются к их значениям, отличается и определяется использованием сдвиговых регистров. На данный момент, однако, должен быть показан другой вариант управления.



Рис.2.

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

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

Одним из аспектов этого типа управления является частота мультиплексирования, то есть полный цикл перехода с одного дисплея на другой. Он должен быть достаточно высоким, чтобы избежать мерцания дисплея. Человеческий глаз вялый, в кинотеатре 24 кадра в секунду, с телевизором, чтобы быть на безопасной стороне, что также неподвижные изображения спокойны, каждый сегмент должен контролироваться не менее 100 Гц, поэтому он подключается, по крайней мере, каждые 10 мс. В исключительных случаях, однако, даже 100 Гц все еще могут мерцать, Например, когда дисплей перемещается быстро или когда возникают помехи с искусственными источниками света, которые работают с переменным током.

Светодиодные индикаторы бывают двух типов.
В первом из них все катоды, т.е. отрицательные выводы всех светодиодов, объединены вместе и для них выделен соответствующий вывод на корпусе.
Остальные выводы индикатора соединены к аноду каждого из светодиодов (рис.3, а). Такая схема называется «схема с общим катодом».
Также существуют индикаторы, у которых светодиоды каждого из сегментов подключены по схеме с общим анодом (рис.3, б).



Рис.3.

Каждый сегмент обозначен соответствующей буквой. На рисунке 4 представлено их расположение.

Рис.4.

В качестве примера рассмотрим двухразрядный семисегментный индикатор GND-5622As-21 красного свечения. Кстати существуют и другие цвета, в зависимости от модели.
С помощью трехвольтовой батарейки можно включать сегменты, а если объединить группу выводов в кучку и подать на них питание, то можно даже отображать цифры. Но такой метод является неудобным, поэтому для управления семисегментными индикаторами используют регистры сдвига и дешифраторы. Также, нередко, выводы индикатора подключаются напрямую к выходам микроконтроллера, но лишь в том случае когда используются индикаторы с низким потреблением тока. На рисунке 5 представлен фрагмент схемы с использованием PIC16F876A.



Рис.5.

Для управления семисегментным индикатором часто используется дешифратор К176ИД2.
Эта микросхема способна преобразовать двоичный код, состоящий из нулей и единиц в десятичные цифры от 0 до 9.

Чтобы понять, как все это работает, нужно собрать простую схему (рис.6). Дешифратор К176ИД2 выполнен в корпусе DIP16. Он имеет 7 выходных вывода (выводы 9 - 15), каждый из которых предназначен для определенного сегмента. Управление точкой здесь не предусмотрено. Также микросхема имеет 4 входа (выводы 2 - 5) для подачи двоичного кода. На 16-й и 8-ой вывод подается плюс и минус питания соответственно. Остальные три вывода являются вспомогательными, о них я расскажу чуть позже.



Рис.6.

DD1 - К176ИД2
R1 - R4 (10 - 100 кОм)
HG1 - GND-5622As-21

В схеме присутствует 4 тумблера (можно любые кнопки), при нажатии на них на входы дешифратора подается логическая единица от плюса питания. Кстати питается сама микросхема напряжением от 3 до 15 Вольт. В данном примере вся схема питается от 9-вольтовой "кроны".

Также в схеме присутствует 4 резистора. Это, так называемые, подтягивающие резисторы. Они нужны, чтобы гарантировать на логическом входе низкий уровень, при отсутствии сигнала. Без них показания на индикаторе могут отображаться некорректно. Рекомендуется использовать одинаковые сопротивления от 10 кОм до 100 кОм.

На схеме выводы 2 и 7 индикатора HG1 не подключены. Если подключить к минусу питания вывод DP, то будет светиться децимальная точка. А если подать минус на вывод Dig.2, то будет светиться и вторая группа сегментов (будет показывать тот же символ).

Входы дешифратора устроены так, что для отображения на индикаторе чисел 1, 2, 4 и 8 требуется нажатие лишь одной кнопки (на макете установлены тумблеры, соответствующие входам D0, D1, D2 и D3). При отсутствии сигнала отображается цифра ноль. При подаче сигнала на вход D0 отображается цифра 1. И так далее. Для отображения других цифр требуется нажатие комбинации тумблеров. А какие именно нужно нажимать нам подскажет таблица 1.


Таблица 1.

Чтобы отобразить цифру "3" необходимо логическую единицу подать на вход D0 и D1. Если подать сигнал на D0 и D2, то отобразится цифра "5" (рис.6).



Рис.6.

Здесь представлена расширенная таблица, в которой мы видим не только ожидаемую цифру, но и те сегменты (a - g), которые составят эту цифру.



Таблица 2.

Вспомогательными являются 1, 6 и 7-ой выводы микросхемы (S, M, К соответственно).

На схеме (рис.6) 6-ой вывод "М" заземлен (на минус питания) и на выходе микросхемы присутствует положительное напряжение для работы с индикатором с общим катодом. Если используется индикатор с общим анодом, то на 6-ой вывод следует подать единицу.

Если на 7-ой вывод "К" подать логическую единицу, то знак индикатора гасится, ноль разрешает индикацию. В схеме данный вывод заземлен (на минус питания).

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

Стоит заметить одну интересную вещь: мы знаем, что тумблер D0 включает цифру "1", а тублер D1 цифру "2". Если нажать оба тумблера, то высветится цифра 3 (1+2=3). И в других случаях на индикатор выводится сумма цифр, составляющих эту комбинацию. Приходим к выводу, что входы дешифратора расположены продуманно и имеют очень логичные комбинации.

Также вы можете посмотреть видео к этой статье.

Вирусы