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

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

Для символа ‘7’ в таблице даны два возможных варианта отображения.

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

Обычно требуется отображение чисел, состоящих более чем из одного разряда. Например, для цифрового вольтметра понадобится хотя бы 4..5 разрядов, а для RLC-метра, отображающего две величины или для частотомера, требуемое количество разрядов может составить 8..10. Количество разрядов в калькуляторе может превышать 12. Проблема в том, что если каждым разрядом управлять индивидуально, то с увеличением их количества, рост числа выводов микроконтроллера и количества проводников для подключения индикатора будет просто катастрофическим. Для управления N разрядами требуется 8*N управляющих линий и 1 общий провод. В случае 5 разрядов, количество управляющих линий составит 40, а в 10-разрядном индикаторе — уже 80. А между тем свободных 80 выходов может просто не быть даже у микроконтроллера в 100-выводном корпусе (с учётом выводов питания, отладки, подключения кварцевых резонаторов и реализации важных альтернативных функций). А в 100-выводных корпусах выпускаются далеко не самые дешёвые микроконтроллеры.

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

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

Как правило, индикаторы, содержащие несколько разрядов, выпускаются именно в расчёте на динамическую индикацию и все необходимые соединения выполнены внутри устройства. N-разрядный индикатор в этом случае имеет 8 выводов для управления сегментами и N выводов для управления включением разрядов (общий анод или катод разряда). Всего требуется 8+N выводов, что намного лучше, чем 8*N+1 при статической индикации.

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

Предположим, что на изображённом выше индикаторе мы хотим вывести цифру «1» в младшем разряде (зажечь сегменты b, c). Для этого на выводе 6 управления младшим разрядом 4 устанавливаем низкий уровень; на выводах 8, 9, 12 управления остальными разрядами устанавливаем высокий уровень; на выводах 4, 7 управления сегментами c и b устанавливаем высокий уровень, а на выводах управления остальными сегментами — низкий (выводы управления сегментами подключаем через токоограничительные резисторы). В результате только светодиоды B, C разряда 4 будут смещены в прямом направлении, через них будет течь ток и они будут светиться. Сегменты B и С остальных разрядов светиться не будут, так как и на их анодах, и катодах установлен высокий уровень, т.е. напряжение смещения отсутствует. Все сегменты разряда 4, кроме b и c не будут гореть, так как на анодах и катодах соответствующих светодиодов установлен низкий уровень, т.е. напряжение смещение и ток через них отсутствуют. Все остальные светодиоды — светодиоды сегментов a, d, e, f, g, dp разрядов 1..3 не будут светиться так как они вообще смещены в обратном направлении (на катоде установлен высокий уровень, на аноде низкий).

Это очень важная особенность схемы с динамической индикацией — в определённые моменты времени на светодиоды индикаторов неизбежно подаётся обратное напряжение. Максимально допустимое обратное напряжение для светодиодов очень невелико, типичное значение — единицы вольт. Для приводимых здесь в качестве примера индикаторов FYQ-3641Ax/Bx, в соответствии с документацией, допускается обратное напряжение 5 В. Это означает, что напряжение на выходах схемы управления этим индикатором не должно превышать 5 В. В противном случае потребуются меры по преобразованию уровней сигналов. При подключении индикатора к микроконтроллерам с напряжением питания до 5 В проблем не возникает.

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

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

  1. Гасятся все разряды индикатора — для предотвращения появления артефактов на выводимом изображении при смене состояния шины управления сегментами; если используется схема с общими катодами, для этого на общие катоды всех разрядов подаётся высокий уровень (лог. 1); в схеме с общими анодами, на аноды подаётся лог. 0.
  2. На шину управления сегментами выдаются сигналы для отображения символа в очередном разряде.
  3. Зажигается очередной разряд.

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

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

Если разряды переключаются с частотой f, то время отображения одного разряда составит максимум 1/f. Максимум — потому что время горения разряда может быть и меньше периода переключения. Мы можем изменять время горения от 0 до 1/f, и тем самым регулировать яркость разряда за счёт эффекта от широтно-импульсной модуляции.

При количестве разрядов N, полное время регенерации изображения на индикаторе в целом составит N*1/f, соответственно частота регенерации F=1/T=f/N. Для того, чтобы не было заметно мерцания изображения, частота регенерации F должна быть не менее 50 Гц, а лучше не менее 100 Гц.

Каждый разряд горит в течении не более чем 1/N от периода регенерации. При быстром переключении разрядов глаз не будет замечать мерцания, но воспринимать он будет усреднённую яркость. Усреднённая за период регенерации, она составит 1/N от величины в случае статической индикации при тех же токах через светодиоды. Поэтому силу тока во время импульсов при динамической индикации потребуется увеличивать по сравнению с силой тока при статической. Естественно, предназначенные для динамической индикации индикаторы рассчитаны на это — они имеют достаточно большой максимально допустимый импульсный ток, в несколько раз превышающий максимальный средний ток. Сложнее обстоит дело с управляющей индикатором схемой. Не каждый микроконтроллер сможет обеспечить достаточный ток для управления сегментами, и тем более не каждый сможет непосредственно управлять включением разрядов — ток через общий вывод разряда может превышать ток сегмента в 8 раз, если горят все элементы разряда. Но это не большая проблема — подключить индикатор к микроконтроллеру можно через микросхему-драйвер с мощными выходами или можно использовать ключи на транзисторах.

Вместо обычных повторителей или инверторов для подключения выводов управления разрядами индикатора может использоваться дешифратор n x N или демультиплексор. Помимо увеличения нагрузочной способности, это даёт возможность ещё уменьшить количество занятых управлением индикатором выводов микроконтроллера. На входы дешифратора подаётся двоичный код, и только на одном выходе, определяемом этим двоичным кодом, будет лог. 1, а на всех остальных будет лог. 0 (или, если выходы инверсные, то наоборот). Дешифратор с трёхбитовым входом имеет до 2**3=8 выходов и может использоваться до 8-разрядных индикаторов включительно, а с 4-битовым входом может переключать до 16 разрядов. Демультиплексор осуществляет коммутирование входного сигнала E на один из выходов, задаваемых адресными входами и полностью эквивалентен дешифратору при E=1, а при E=0 на всех выходах будет лог. 0 (или 1, если выходы инверсные).

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

Читать еще:  Aurora pro inter tig 200 pulse mosfet

Например, FYQ-3641A8 (четырёхразрядный, красный цвет свечения) обеспечивает хорошую видимость символов при токе в импульсе всего 2 мА на сегмент. Это позволяет использовать индикатор совместно с микроконтроллерами STM32F100xx непосредственно, без драйверов (максимальный ток вывода микроконтроллера составляет 25 мА, этого более чем достаточно даже для управления включением разрядов, так как максимальный ток общего вывода для разряда в данном случае не превышает 8*2 мА=16 мА).

Индикаторы с большим количеством разрядов (существенно большим, чем 8) используются реже, но следует иметь в виду существование второго варианта динамической индикации, который выгодно использовать для таких многоразрядных устройств. Можно осуществлять «развёртку» не по разрядам индикатора, а по сегментам. Это означает, что сначала зажигаются сегменты ‘A’ во всех разрядах, где они должны гореть. В следующий интервал времени зажигаются сегменты ‘B’ в нужных разрядах, и т.д. по всем 8 элементам. При таком способе соотношение между периодом отображения одного элемента и периодом полной регенерации индикатора всегда 1/8, независимо от «длины» индикатора. В этом случае ток одного разряда будет либо нулевым, либо равным току одного элемента I. Ток в линиях управления сегментами может достигать N*I, где N — количество разрядов, I — ток одного сегмента; максимальной величины ток достигает, когда один и тот же сегмент горит во всех разрядах.

Пример программы

В качестве примера здесь будет приведена программа, выводящая информацию на 4-разрядный семисегментный индикатор FYQ-3641A (имеет общий катод). Для управления индикатором используется микроконтроллер STM32F100RBT6B в составе оценочной платы STM32VLDISCOVERY.

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

Для предельного упрощения программы было бы удобно подключить индикатор к микроконтроллеру так, чтобы и линии управления сегментами, и линии управления разрядами индикатора образовывали непрерывные диапазоны битов в пределах своего порта ввода-вывода. Например, можно было бы подключить линии управления сегментами A, B, . G, DP к выводам PC0, PC1, . PC6, PC7, а линии DIG1, DIG2, DIG3, DIG4 для управления разрядами, допустим, к PA0, PA1, PA2, PA3. Тогда код управления индикатором получается действительно очень простым:

Однако, в действительности такой вариант обычно неприемлем по нескольким причинам. В реальном устройстве управление индикатором — не единственная задача микроконтроллера и многие выводы будут задействованы для реализации других функций. Это интерфейсы, устройства ADC, DAC, входы/выходы таймеров и др. Эти функции привязаны к конкретным выводам микроконтроллера как альтернативные функции или перемещаемы между выводами, но крайне ограниченно и если они используются, привязанные к этим выводам разряды порта ввода-вывода общего назначения оказываются недоступными. Поэтому маловероятно, что удастся выделить непрерывный диапазон битов под индикатор или даже биты в пределах одного порта.

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

Здесь индикатор будет подключён в соответствии с приведённой ниже схемой. Резисторы в цепях управления разрядами R9..R12 используются только для защиты выводов микроконтроллера от перегрузки в случае ошибочного подключения, короткого замыкания и т.д. в макетируем устройстве. В реальном устройстве их быть не должно (подключение должно быть непосредственным), так как они вызывают изменение яркости свечения при изменении количества включённых сегментов в разряде. При этом номиналы резисторов R1..R8 следует увеличить до 820 Ом.

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

Мир микроконтроллеров

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

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

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

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

Семисегментный светодиодный индикатор , как говорит его название, состоит из семи элементов индикации (сегментов), включающихся и выключающихся по отдельности. Включая их в разных комбинациях, из них можно составить упрощённые изображения арабских цифр.
Сегменты обозначаются буквами от 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 вольт
Формула для расчета:
R= U/I (все значения в этой формуле должны быть в Омах, Вольтах и Амперах)
R= (напряжение питания — рабочее напряжение)/рабочий ток
R= (5-2)/0.01 = 300 Ом

Читать еще:  Effect 2500 противопролежневый матрас отзывы

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

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

На схеме не показано, но между базами транзисторов и выводами порта микроконтроллера необходимо включать резисторы, сопротивление которых зависит от типа транзистора (номиналы резисторов рассчитываются, но можно и попробовать применить резисторы номиналом 5-10 кОм).

Осуществление индикации разрядами осуществляется динамическим путем:
— выставляется двоичный код соответствующей цифры на выходах порта РВ для 1 разряда, затем подается логический уровень на управляющий транзистор первого разряда
— выставляется двоичный код соответствующей цифры на выходах порта РВ для 2 разряда, затем подается логический уровень на управляющий транзистор второго разряда
— выставляется двоичный код соответствующей цифры на выходах порта РВ для 3 разряда, затем подается логический уровень на управляющий транзистор третьего разряда
— итак по кругу
При этом надо учитывать:
— для индикаторов с ОК применяется управляющий транзистор структуры NPN (управляется логической единицей)
— для индикатора с ОА — транзистор структуры PNP (управляется логическим нулем)

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

(24 голосов, оценка: 4,92 из 5)

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

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

Как все начиналось

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

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

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

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

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

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

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

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

Виды и обозначение на схеме

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Рис.1.

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


Рис.2.

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

Светодиодные индикаторы бывают двух типов.
В первом из них все катоды, т.е. отрицательные выводы всех светодиодов, объединены вместе и для них выделен соответствующий вывод на корпусе.
Остальные выводы индикатора соединены к аноду каждого из светодиодов (рис.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-ой вывод подается плюс и минус питания соответственно. Остальные три вывода являются вспомогательными, о них я расскажу чуть позже.

Читать еще:  7 Месяцев коту по человеческим меркам


Рис.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). И в других случаях на индикатор выводится сумма цифр, составляющих эту комбинацию. Приходим к выводу, что входы дешифратора расположены продуманно и имеют очень логичные комбинации.

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

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

Автор: Владимир
Опубликовано 01.01.1970

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

Не вдаваясь в нудные предисловия скажем так:

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

На этом принципе, как вы догадываетесь, построено кино и телевидение. Не слишком занудно?

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

Кстати, индикаторы выглядят примерно вот так:

Уделим пару слов увиденному.

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

Для нумерации сегментов используются латинские буквы от a до h . У всех всех всех 7-сегментных индикаторов в нашем бренном мире, сегменты нумеруются в том порядке, как это показано на рисунке, и никак иначе.

Теперь смотрим на схемы. Во-первых, почему их две? Да потому что индикаторы бывают разные. Бывают – с общим катодом (ОК), бывают – с общим анодом (ОА). Среди буржуйских более распространены, как ни странно, индикаторы с ОА. Но встречаются и с ОК. Так что – нужно быть осторожным, чтоб не спутать. Хотя, нам-то все равно. Нашими индикаторами будет управлять контроллер. А его можно запрограммировать как на работу с ОК так и с ОА. Тут сложностей нет.

У каждого индикатора – 9 ножек. С 1 по 8 – выводы сегментов, 9-я – общий. Допустим, мы хотим отображать 4-разрядное число. Надо 4 индикатора.

Арифметика маленького Пети: 8*4 = 32. То есть, нам потребуется 32 провода (не считая общие) Неслабо? Ничуть. Тем более, учитывая, что у большинства контроллеров количество каналов ввода/вывода как раз равно 32. Как-то меня не очень греет перспектива угрохать все выводы контроллера на индикацию. А вас? Ведь надо ж еще куда-то подключить кнопочки, ручечки, датчички и пр. пр. пр. а мало ли чего? Кстати, у любимого нами AT 90 s 2313 всего 15 каналов ввода/вывода. Как здесь прикажете быть? Вот тут нам и поможет динамическая индикация. Делаем очень просто: подключаем все индикаторы параллельно. Точнее, сажаем выводы сегментов на общую шину. А общие провода оставляем раздельно.

Смотрим небольшой поясняющий мультик:

Мы последовательно подаем напряжение на адресные входы индикаторов, и одновременно выдаем в шину данных 7-сегментный код, соответствующий индикатору, активному в данный момент.

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

Итак, я хочу, чтобы значения цифр, выводимых на индикацию, лежали в ячейках памяти. Поскольку у индикатора 4 разряда – значит цифр тоже будет 4, и соответственно, столько же ячеек памяти. Дабы не заморачиваться, мы объединяем все четыре ячейки в переменную Digit . Итак, пишем:

Написали.
Теперь самое время определиться с портами.

Поскольку у нас на порт B уже повешены светодиоды – наверно не будет большим криминалом повесить туда еще и сегменты индикаторов.

Порт D пока что пустует – ну дык значит посадим туда общие провода. Рисуем схему:

Схему прошивки, как и договаривались, не показываем, но подразумеваем ее наличие.

В данной схеме используется два сдвоенных индикатора C562. Эти индикаторы – с общим катодом (об этом говорит буква C в названии). Будем иметь это ввиду при написании программы.

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

Резисторы в шине данных взяты меньшего номинала, чем были. Зачем? Чтоб ярче светили светодиоды. Поскольку индикация динамическая, то каждый индикатор работает только 1/4 общего времени работы схемы. Глаз это воспринимает как пропорциональное уменьшение яркости свечения (т.е. – тоже в 4 раза.). Чтобы как-то компенсировать этот недостаток, на светодиоды подается завышенный ток (больше максимально допустимого). В статическом режиме этот ток может причинить светодиодам вред. Однако в динамическом режиме, кратковременные воздействия тока не столь фатальны.

Ну вот, вроде все. Теперь пишем программулину дальше.

Очень внимательно читаем программу.

Сначала мы настраиваем прерывания, порты и стек. Это стандартно.
Затем, мы записываем в переменную Digit число 1234.
Потом мы выходим в главный цикл программы. из этого цикла вызывается функция Display , которая, собственно, и занимается динамическим выведением на индикацию числа из переменной Digit . Функция состоит из 4-х похожих кусков. Эти куски различаются лишь номером вызываемой ячейки Digit и разрядом текущего индикатора.
Из каждого кусочка вызывается функция Decoder – 7-сегментный декодер. Этот декодер преобразует значение из ячейки Digit в код 7-сегментного индикатора, и передает этот код обратно функции Display , которая выводит его на индикацию.

Вот так, в общих чертах, все просто и понятно.

Ссылка на основную публикацию
Adblock
detector