Что такое светодиодная индикация

Для чего нужны светодиодные индикаторы?

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

Особенности конструкции и типы

Светодиодные индикаторы состоят из интегральных микросхем, отображающие различную информацию. Рабочее напряжение составляет от 2В до 8В. Они могут быть:

— Сегментными;
— Матричными;
— Линейной шкалы;
— Единичными

Первая разновидность используется чаще всего и является стандартным типом. В зависимости от модели, сборка конструкции может быть выполнена из 1-4 семисегментных групп. От их количества зависят размеры объекта, количество отображаемых символов. Так, одна семисегментная группа будет показывать только одну цифру или букву. Четыре группы используются в электронных часах. Выбирая схему для самодельного использования, покупатель должен обратить внимание на наличие общего анода и катода.
Помимо небольших индикаторов, существуют и те, которые можно увидеть в общественных местах. Для увеличения их яркости, используются последовательно включенные светодиоды, встроенные в каждый отдельный компонент. Чтобы индикатор показывал определенную цифру или символ – подается напряжение в 11,2 Вольта. У элементов есть собственные названия: A, B, C, D, F или G. Работа обусловлена цифровыми регистрами сдвига и дешифраторами.

Шифрование данных и интегральные микросхемы

Такие элементы установлены на плате, контролирующей подачу напряжения. Работа обусловлена обращением к программному коду и задействованию специальных микроконтроллеров. При помощи программирования, устанавливается тайминг, влияющий на отображение компонентов в определенное время.
Интегральная микросхема преобразовывает двоичный и двоично-десятичный код, подаваемый на табло. Распространенными схемами для управления отечественными индикаторами являются К514ИД2 или К176ИД2, в импортных моделях 74HC595. Управление возможно двумя способами:

— Напрямую, через микроконтроллеры;
— При помощи регистров сдвига

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

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

В электронике они используются для визуального контроля. Конструкция состоит из таких элементов:

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

Все электронные приспособления выполняют основные задачи:

1. Визуальное информирование.
2. Обладают законченным конструктивом.
3. Оснащены электронным управлением

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

Заключение

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

Источник

Что такое led индикатор в смартфоне

Евгений Вильдяев

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

Сам я почти не обращаю внимания на эту функцию, есть индикатор — хорошо, нет — и Бог с ним. С чем это связано? Дело в том, что производители почти перестали устанавливать качественные большие световые индикаторы в смартфоны, это просто какой-то кошмар. Вместо большого хорошо различимого «кружочка», какой был в Samsung Galaxy S3, устанавливают малюсенькие, еле различимые «точки», которые и в темноте-то еле разглядишь.

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

Или возьмем другой пример: вы ставите устройство на зарядку на ночь и ложитесь спать. Разумеется, в тёмной комнате индикатор будет гореть красным или зеленым! Конечно, можно установить приложение Flow и попытаться самостоятельно настроить его работу, но, по отзывам моих знакомых, данная программа далеко не на всех смартфонах корректно работает.

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

А как вы относитесь к этому небольшому, но важному элементу в смартфоне? Критично ли его наличие или, наоборот, вы по возможности стараетесь его отключать? Кстати, из интересных решений по части индикатора могу привести в пример Umi IRON Pro, в котором этот элемент перенесли вниз.

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

Читайте также: Как Android-смартфон поможет улучшить качество сна

Оказывается, оснастить индикатором событий можно любой смартфон с AMOLED-экраном. Для этого не понадобится оперативное вмешательство с последующим внедрением вспомогательных компонентов. В это сложно поверить, но с этой задачей прекрасно справится небольшое приложение из Google Play под названием NotifyBuddy.

Чем заменить Always-On Display

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

Читайте также: Как Android Q улучшит производительность бюджетных смартфонов в играх

Читайте также: Как запустить Google Assistant на Galaxy Watch

В отличие от режима Always-On Display, NotifyBuddy не выводит на экран никакой информации, а всего лишь заставляет загораться несколько пикселей, имитируя работу LED-индикатора. Удивительно, но индикация выглядит настолько реалистично, что никто не сможет усомниться в том, что ваш смартфон оснащен соответствующей лампочкой.

Подпишись на наш канал в Яндекс.Дзен. Там ежедневно выходят эксклюзивные материалы, которые не попадают на сайт.

Приложение: NotifyBuddy — AMOLED Notification Light

Разработчик: XanderApps Категория: Персонализация Цена: Бесплатно Скачать: Google Play

Хотите настроить цвета LED-индикатора для уведомлений на своём смартфоне, но не знаете, как это сделать? Существует несколько способов осуществить эту настройку, сегодня же мы познакомим вас с самым простым и быстрым из них.

Для тех кто не знает, LED-индикатор отвечает за свет, который появляется в верхней фронтальной части телефона и загорается определённым цветом в зависимости от получаемого вами уведомления (WhatsApp или SMS сообщения, звонки и т.д.). Почти на всех смартфонах он многоцветный, хотя существуют и такие, которые не располагают такой привилегией.

Почему так важно настроить LED-индикатор телефона?

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

Как настроить цвета LED-индикатора на Android?

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

Скачав и установив эту утилиту, вам нужно будет предоставить ей права доступа к вашим уведомлениям. Для этого перейдите в Настройки > Мелодии и уведомления > Доступ к уведомлениям и выберите Light Manager.

Сделав это, вы получите доступ ко всем возможным настройкам приложения, позволяющим распределить уведомления в зависимости от их вида (пропущенные вызовы, SMS, MMS, электронная почта, календарь, WhatsApp, Facebook уведомления, сообщения о низком заряде батареи и т.д.).

Как вы можете заметить, каждый вид приложений и уведомлений имеет в своём распоряжении свой собственный цвет, который можно менять и настраивать. Рекламные баннеры убираются за 1,59 €.

Знаете какое-то похожее приложение, позволяющее настраивать LED-индикатор телефона? Не забудьте поделиться им в комментариях!

Light Manager — LED Settings

Теперь вы не пропустите важное уведомление, присвоив каждому их виду свой совственный уникальный цвет.

Источник

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

Светодиоды индикатора могут быть как одноцветными, так и многоцветными. Как правило, одноцветные индикаторы содержат в себе красные, желтые, зеленые или синие светодиоды, а многоцветные — RGB светодиоды.

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

Одноцветные сегментные светодиодные индикаторы позволяют изображать цифры. Пример простейшего индикатора данного типа — bs-c506rd или bs-a506rd — семисегментный индикатор красного цвета, образующий цифру с точкой. Внутри корпуса этого индикатора установлено 8 светодиодов, катоды (bs-C506rd) или аноды (bs-A506rd) которых объединены на одном общем выводе.

Более сложные светодиодные индикаторы — матричные, наподобие BM-20288MD или BM-20288ND. Конкретно в данных моделях содержится 64 светодиода, катоды (BM-20288MD) которых объединены так, что образуют 8 отдельных строк, а аноды — 8 отдельных столбцов. Практически на базе такого индикатора можно изобразить любой символ (букву, цифру, знак или даже небольшую картинку) с разрешением 8х8 точек.

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

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

Читайте также:  Что такое бархатный топ

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

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

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

Принцип динамической индикации

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

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

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

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

Подписывайтесь на наш канал в Telegram!

Просто пройдите по ссылке и подключитесь к каналу.

Не пропустите обновления, подпишитесь на наши соцсети:

Источник

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

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

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

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

Недостатки готовых 7-сегментных модулей

Сначала давайте разделаемся с готовыми модулями. Встречаются модули, построенные либо просто на сдвиговом регистре типа 74HC595 (что не слишком удобный вариант), либо на специальных микросхемах-драйверах TM1637 (интерфейс I 2 C) или MAX7219/MAX7221 (интерфейс SPI). Удобство применения таких драйверов в том, что они сами организуют динамическую индикацию, вам об этом заботиться не надо. Потому такие модули популярны в сочетании с Arduino — схема подключения предельно проста, а об остальном позаботятся готовые библиотеки. Драйверы MAX7219/MAX7221 ко всему еще имеют кучу удобных опций, что разнообразит составление программы управления, не особо ее усложняя. Почему-то львиная часть таких модулей выпускается в конфигурации «для часов» (с дополнительным двоеточием посередке), но несложно приобрести и обычные с десятичными точками и даже восьмиразрядные.

Однако недостаток готовых модулей на этой основе заключается в весьма ограниченном ассортименте конфигураций самих индикаторов. Это связано в основном с нежеланием производителей затовариваться различными версиями одного и того же устройства, которые, возможно, никогда не будут востребованы — например, сочетание шести типоразмеров индикаторов различной высоты знака (в пределах 0,3 – 0,8 дюйма) с шестью цветами свечения (красный, зеленый, желтый, янтарный, синий, белый) дает 36 разновидностей на выбор, что, конечно, не потянет ни один реальный продавец. Даже на Ali найдете хорошо, если три-четыре основных цвета и пару разновидностей по высоте, в вариантах выбора «побольше» и «поменьше». В отечественных интернет-магазинах выбор еще больше ограничен.

И еще малый выбор связан с тем, что драйверы рассчитаны на 5-вольтовое питание, тогда как крупные индикаторы (высота знака 1 дюйм и более) требуют управления более высоким напряжением. Причем просто дополнить перечисленные выше удобные микросхемы-драйверы преобразователями уровня непросто — если попробовать это сделать (для чего потребуется «нарастить» управление и разрядами и сегментами), то схема получается чересчур громоздкой, и само применение этих драйверов вырождается, проще применить другие решения. Если я не ошибаюсь, готовые модули с цифрами большого размера вообще никто не решается производить.

Хочешь сделать хорошо — сделай сам

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

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

Но давайте обо всем по порядку.

Светодиодный драйвер MBI5167

В основе всех вариантов решений, предлагаемых далее, лежит очень удобная микросхема — драйвер линейки из 8 светодиодов MBI5167. Довольно толковый пересказ сведений из даташита можете найти здесь. Приобретение MBI5167 — не проблема, но по указанной ссылке можно найти и заменяющие его аналоги. Выпускается микросхема в двух вариантах планарного корпуса (с шагом 1,27 и 0,64 мм), потому для проб на обычной макетной плате придется приобретать переходник на шаг 2,54.

MBI5167 представляет собой объединение в одном устройстве сразу трех функций: обычного 8-разрядного сдвигового регистра, регистра-защелки его параллельных выходов и линейки раздельных токовых драйверов, к которым подключаются светодиоды. При этом выходы защелки являются управляющими сигналами для токовых драйверов: если в соответствующей позиции стоит единица – драйвер включен (светодиод горит), если ноль — выключен (светодиод гаснет). Напряжение питания светодиода, подключенного к токовому выходу, может быть любым (вплоть до 17 вольт), лишь бы оно превышало прямое падение напряжения на этом светодиоде.

Блок-схема токового драйвера MBI5167

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

Разводка выводов MBI5167

Разводка выводов MBI5167 представлена на рисунке слева. До подключения необходимо сначала решить, какой именно ток вы хотите задать через выходы. Для задания тока служит вывод, обозначенный как R-EXT (вывод 15 микросхемы). Между этим выводом и «землей» подключается резистор Rext (показан на рисунке). Ток через каждый из выводов OUT определяется по формуле: Iout (мА) = 18,6/Rext (кОм). То есть для тока 5 мА нужен резистор 3,74 кОм, 10 мА — 1,87 кОм, для тока 20 мА — 976 Ом (приведены ближайшие к расчетным значения из 1-процентного ряда). Конечно, с такой точностью выдерживать номиналы не имеет смысла (погрешность самих источников тока равна ±3%), так что вполне подойдут 5-процентные резисторы 3,6, 1,8 и 1 кОм.

При составлении схемы придется проверять тепловыделение микросхемы, ведь лишнее напряжение сверх падения на светодиоде сегмента будет падать на источнике тока, а это заставит микросхему MBI5167 нагреваться. Сразу скажем, что для усредненных значений тока в пределах 10 мА и напряжении питания светодиода вплоть до 15 вольт это безопасно. В самом деле, примем грубо, что падение на светодиоде равно 2 вольта. Тогда при питании светодиода, равном 15 вольт, на каждом источнике тока будет падать 13 вольт, при токе 10 мА это приведет к выделению 130 мВт тепла. На семь сегментов это почти ровно ватт, а даташит уверяет, что предельная величина тепловыделения для MBI5167 составляет около 1,5 ватт. Но, как видите, это почти предельные величины, баз запаса, их превышение нежелательно. И если захочется увеличить яркость, то придется уже изобретать более низковольтный источник.

Схема и программа для тестирования MBI5167

Подключение регистра к семисегментному индикатору показано на рисунке выше. Нумерация выводов индикаторов здесь и на схемах далее, естественно, опущена, так как она бывает очень разнообразной — справляйтесь в даташите. Питание микросхемы (выв. Vcc) должно совпадать с питанием управляющего микроконтроллера. Его можно сделать из общего повышенного питания с помощью маломощного стабилизатора, например, типа LP2950-5.0 или LP-2950-3.3. На схеме питание анода индикатора подключено к отдельному питанию Uи, как мы говорили, оно может быть и нестабилизированным.

Для питания индикаторов с одним светодиодом на сегмент (до 0,8 дюйма включительно) при применении MBI5167 достаточно нестабилизированного питания 3-5 вольт, с двумя (1-1,5 дюйма) — 7-9 вольт. Возможностей MBI5167 с запасом хватит до пяти-шести светодиодов на сегмент (трехдюймовые индикаторы и более, прямое падение — до 12 вольт, нестабилизированное питание — около 15 вольт). Ну, наверное, для уличных табло надо индикаторы еще крупнее, но там и решения применяются явно иные.

Читайте также:  Что такое сту в строительстве

Конечно, для индикаторов малых размеров (до 0,8 дюйма) можно и не городить отдельное питание, просто подключив Uи к тем же 5 вольтам, но тогда, наоборот, это питание должно быть хорошо стабилизировано, чтобы броски при переключении сегментов не повлияли на работу контроллера (качества встроенного стабилизатора Arduino может не хватать!). И не забудьте проверить в соответствии с выбранным током через сегмент, выдержит ли 100-миллиамперный стабилизатор подключения 7-8 сегментов, или придется ставить что-то помощнее.

Коды для семисегментного индикатора представлены на рисунке выше. Отметим, что на схеме сегмент a индикатора подключен к младшему биту выходов регистра (OUT0). Потому при обычном порядке написания кода слева направо от a к g (как в таблице), его придется проталкивать через регистр младшим битом вперед. Десятичная точка при этом оказывается в самом младшем бите кода (бите 0), но в старшем выводе регистра (OUT7). То есть коды всех цифр будут содержать нули в младшем разряде, а для засветки точки надо при выводе просто приплюсовать к нужному коду единицу.

Arduino-программа для вывода одной цифры в один разряд носит название Shift_out_7seg_1dig. Вы найдете ее в архиве по ссылке в конце статьи. У Arduino задействованы выводы 10 (данные – dataPin), 11 (перезапись – latchPin) и 12 (такты – clockPin). Вывод данных осуществляется с помощью штатной функции shiftOut().

А теперь перейдем к многоразрядным индикаторам, что гораздо интереснее.

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

Вы будете удивлены, но для построения простейшей статической индикации, причем на индикаторах любого размера, больше ничего не требуется. Каждый семисегментный разряд подключается катодами сегментов к отдельной микросхеме MBI5167. Их удобно соединить в одну длинную линейку, подключив вход SDI следующего разряда к выходу SDO предыдущего. Тогда для управления всей линейкой достаточно трех выводов контроллера: для подачи последовательных данных на вход SDI первого разряда, для подачи тактовых импульсов (входы CLK всех микросхем объединяются) и для подачи импульса перезаписи на входы LE (которые тоже объединяются между собой). Так как микросхема довольно шустрая (подача тактов на вход CLK – до 25 МГц, что на пару порядков превышает частоту, например, шины I2C), то даже с учетом замедленной скорости работы Arduino-функции shiftOut(), никаких задержек при обновлении данных вы не заметите. Скорость вывода с помощью функции shiftOut() (о чем нет никаких официальных сведений!) примерно соответствует реальной скорости переключения вывода с применением digitalWrite() (см. разборки по этому поводу в моей книге, а также в книге Монка). Тактовая частота по выводу CLK получается около 75 кГц, значит передача целого байта займет где-то 120 мкс, с учетом импульса перезаписи по выводу LE.

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

Сказанное иллюстрируется схемой выше, где показано подключение четырех разрядов. Если подобная схема делается с конкретной целью индикации значения температуры в пределах 99,9 градусов по абсолютной величине, то ее можно упростить, если сократить основную часть до трех разрядов, а значок градуса (сегменты a-b-f-g) засветить в четвертом разряде постоянно с помощью подобранных резисторов. Для знака минус в любом случае не имеет смысла ставить целый индикатор (так как знак плюс все равно получить на семигментниках невозможно) — его можно сформировать отдельно с помощью плоского светодиода с подобранной под цвет индикатора длиной волны (не забудьте закрасить у такого светодиода боковые грани черным маркером). То же самое относится к двоеточию в часах, которое для мигания просто запитывается от отдельного вывода контроллера (не забывайте про подбор цвета!).

Схема будет потреблять достаточно большой ток. Обычно можно считать, что необходимый и достаточный ток через один сегмент составляет 5 мА, тогда через четыре разряда по семь сегментов каждый в экстремальном случае (все восьмерки) потечет суммарный ток 5´7´4 = 140 мА. При 10 мА на сегмент он составит уже 280 мА, не считая десятичных точек. Что не такая уж и маленькая величина для маломощных устройств и она может создать проблемы с тепловыделением внутри корпуса. И при сохранении подобранной яркости исправить это с переходом на динамическую индикацию не получится (о динамической индикации см. далее).

Главный недостаток этой схемы — большое число межсоединений, что усложняет и удорожает плату. При традиционных статических схемах с управлением хоть от счетчиков с дешифраторами, хоть непосредственно от выводов контролера, этот недостаток был решающим: в самом деле, для управления 7-ю сегментами в 4-х разрядах по отдельности нужно 28 свободных выводов контроллера. Замена на динамическую индикацию резко уменьшает число управляющих линий — для 4-х разрядов их потребуется уже всего 11 (7 – для сегментов и 4 для разрядов), поэтому там динамический вариант безусловно выигрывал. Способ с регистром сдвига делает ситуацию с управляющими линиями обратной — как мы увидим, для динамической индикации выводов потребуется больше, хотя в сумме и не слишком много. Но в статическом варианте никуда не деваются индивидуальные соединения регистров MBI5167 с катодами каждого из индикаторов, что все равно оставляет плату достаточно громоздкой. А, главное, сдвоенные-строенные-счетвереные индикаторы (которые могут быть и дешевле и компактней отдельных одноразрядных, и, кроме того, резко упрощают разводку платы) здесь применить не получится, они рассчитаны на динамический вариант.

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

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

Динамическая индикация прежде всего позволяет снизить аппаратурные затраты: вместо сдвигового регистра (или дешифратора с защелкой в традиционных схемах без контроллера), устанавливаемого на каждый разряд отдельно, здесь нужен один регистр на все разряды. Уменьшается и число соединений на плате — так как все одноименные сегменты разных разрядов объединяются, то можно просто взять сдвоенные, строенные или счетверенные варианты, где соединения сегментов уже выполнены внутри единого корпуса. Мы не будем здесь касаться вышеупомянутого случая применения готовых драйверов типа MAX7219/MAX7221 или TM1637 — они, конечно, позволяют снизить число необходимых выводов контроллера до минимума (так как организуют динамическую индикацию сами по себе), но, как мы говорили, удобно их применение только в пределах 5-вольтового питания индикаторов.

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

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

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

Транзисторы в этой схеме могут быть любые, только надо учесть, что pnp-ключ управляет суммарным током всех сегментов, а здесь он для достижения той же яркости может в разы превышать оптимальные для статического варианта 5-10 мА на сегмент (см. далее раздел «О яркости индикаторов»). Иными словами, для четырех разрядов pnp-транзистор VT2 должен выбираться с допустимым током не менее 0,5-0,6 А. Указанный на схеме BC327 этому условию удовлетворяет, но если у вас завалялись отечественные, то придется ставить уже что-то из средней мощности — КТ814/816 или еще лучше, КТ973. При маленьких индикаторах и питании 5 В, равным питанию контроллера, преобразователь уровня на npn-транзисторе VT1 можно исключить для упрощения схемы, но не забудьте, что логику управления разрядами при этом необходимо инвертировать: включенному разряду будет соответствовать логический ноль на выходе контроллера.

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

Замечу, что у меня вот уже более 20 лет успешно работают настольные часы с индикаторами в дюйм высотой, где ключи управления и разрядами и сегментами сделаны на советских биполярных транзисторах (которые мне тогда не стоили ничего вообще — как устаревшие, они были списаны при какой-то очередной инвентаризации). Ничего с ними не происходит, так что схемы вполне рабочие. Но помню, как я мучился, впаивая в плату миллион выводных резисторов МЛТ, которые вместе с транзисторами заняли полплаты. Конечно, при наличии драйверов-дешифраторов с токовым выходом сейчас о ключах управления сегментами заботиться не нужно, да и SMD-компоненты заняли бы втрое меньшую площадь, но зачем все это, если есть более современные решения?

MOSFET’ы в качестве ключей куда удобнее, тем более в низкочастотных схемах, где мы вполне можем абстрагироваться от динамических потерь. Кроме того, специально для управления этими самыми MOSFET’ами есть необъятный ассортимент штатных преобразователей уровня, роль которых играют MOSFET-драйверы. А если мы еще правильно выберем сам полевик (по минимуму порогового напряжения VGS), то можем забыть про любые потери, независимо от напряжения питания.

Динамическая индикация на четыре разряда

Соответствующая схема для четырех разрядов приведена на рисунке. В качестве преобразователей уровня здесь использованы сдвоенные драйверы TC4426A с инвертирующим выходом, удобные для p-канальных транзисторов. Указанные на схеме транзисторы IRFD9014 выпускаются в корпусе типа «усеченный DIP» (DIP-4), который одинаково хорошо годится как для макетирования, так для установки на плату, где он занимает не слишком много места. Разумеется, можно выбрать из миллиона других вариантов, в том числе и более дешевых, только при низких напряжениях питания не забывайте про пороговое напряжение — VGS должно быть не больше 2-3 вольт. Как и в случае биполярных ключей, при одинаковом питании контроллера и индикаторов драйверы TC4426A можно исключить (не забыв при этом инвертировать логику управления разрядами), но я бы не советовал это делать: схема будет работать надежнее, если делать все строго по инструкции. Драйверы не нагружают выходы контроллера, а как альтернатива биполярным преобразователям уровня они просто займут меньше места на плате.

Читайте также:  Что такое наруто ова

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

В программе обход разрядов происходит по прерываниям совпадения 8-разрядного Таймера 2. Таймер устанавливается на коэффициент предделителя частоты, равный 1024 (что дает 15625 Гц на входе), с загрузкой в регистр совпадения числа 64 получается частота возникновения прерываний, равная

244 Гц. Каждый разряд 4-разрядного числа горит в течении 1 периода этой частоты, соответственно, частота обновления каждого разряда и всего дисплея получается

61 Гц. Этого достаточно, чтобы не воспринимать глазом мерцание индикаторов. Существенно увеличивать частоту переключения тут незачем — нам еще когда-то надо получать данные и преобразовывать их в отдельные цифры, а также, возможно, производить всякие другие действия. Динамическая индикация, осуществляемая с помощью отдельных микросхем-драйверов, примерно на порядок быстрее (у MAX7219/MAX7221 частота сканирования разрядов

800 Гц), но они заняты только этим и ни на что больше не отвлекаются.

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

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

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

Например, скорость штатного TWI (библиотека Wire) по умолчанию устанавливается на уровне 100 Кбит/с, что дает скорость обмена примерно в 1 байт за 100 микросекунд (учитывая всякие «старты» и «аски»), а в реальности еще меньше, так как какое-то время занимает посылка адресов устройств и регистров. Мы можем считать, что, например, чтение полного содержимого регистров часов типа DS1307, состоящего из 7 байт (Секунды: Минуты: Часы: День: День недели: Месяц: Год) займет около 1 миллисекунды. Это сравнимо с периодом нашей частоты переключения разрядов (244 Гц — около

4 мс), потому нужно довольно внимательно отнестись к правильной организации обмена данными, не сбивающего индикацию. Единичный сбой из-за отложенного прерывания вы не заметите, но если период обновления разрядов дисплея начнет сбиваться регулярно, то изменение или мерцание яркости индикаторов будет заметно на глаз. Причем увеличить скорость обмена (библиотека Wire это позволяет), не всегда возможно: например, каноническая микросхема часов DS1307, как указано в ее описании, «operates in the regular mode (100kHz) only».

Еще хуже дела обстоят с интерфейсом UART. Фиксированные скорости работы из предопределенного ряда значений не всегда позволяют организовать обмен без сбоев на достаточно высокой скорости — слишком велика оказывается ошибка установления битрейта даже при 16-мегагерцовой частоте контроллера. Именно поэтому предпочитаемая «по умолчанию» скорость в различных проектах обычно устанавливается равной 9600 — это компромиссная величина, работающая с достаточной надежностью. Но 9600 бит/с — это вдесятеро меньше, чем у TWI, передача или прием каждого байта занимает около 1 миллисекунды. Увеличить ее, конечно, можно, но без тонких расчетов и оговорок лучше все равно ограничиться величиной 38400, что капитально проблему не решает. То есть при получении данных через UART приходится организацию обмена продумывать очень тщательно.

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

О яркости индикаторов

Максимальный допустимый средний ток одного сегмента индикаторов обычных размеров (0,5-1,5 дюйма) примерно соответствует максимальному току сигнальных светодиодов, т.е. составляет около 30 мА. Обычное значение тока непрерывного свечения сегмента, при котором любой индикатор будет хорошо виден — 5-10 мА (для красных поменьше, для желтых и зеленых — побольше). Причем для увеличения видимого контраста цифры не стоит тупо увеличивать ток через нее — напомним, что у драйверов есть свои ограничения на выделяемую мощность, да и у каждого типа индикаторов, кроме предельно допустимого среднего тока, есть еще и предельная рассеиваемая мощность на сегмент, и чем дальше мы от нее отстоим, тем схема окажется долговечнее.

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

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

При подключении десятичной точки к драйверу с токовым выходом это обстоятельство перестает иметь значение, но зато вылезает досадная ошибка, которую допускают, кажется, абсолютно все производители семисегментников. Круглая точка визуально кажется меньше остальных сегментов (имеющих форму вытянутого параллелограмма или прямоугольника) и при совпадающей яркости теряется на их фоне — издалека и не поймешь, где именно стоит разделитель. Потому совсем не вредно все-таки засветить ее отдельно и подобрать яркость так, чтобы десятичная точка немного выделалась. Эта проблема совершенно отсутствует в разновидностях с запятой вместо точки, или в тех редких случаях, когда точка не круглая, а прямоугольная. Заметим в скобках, что в некоторых ЖК-дисплеях эта проблема стоит еще острее и хоть как-то сгладить ее не получается вообще. Ну не догадываются компании-разработчики дисплеев о необходимости привлекать художников-шрифтовиков (и если бы это было единственное их упущение в части дизайна!).

При динамической индикации на все это накладывается коэффициент заполнения. В нашем случае он равен обратной величине от количества индикаторов (в драйверах типа TM1637 и MAX7219/MAX7221 это не так!). Зависимость видимой яркости от коэффициента заполнения в общем случае нелинейная, но мы можем считать, что в практически значимых пределах она обратно пропорциональна количеству индикаторов. Потому при двух индикаторах подобранный в статическом режиме ток через сегмент следует увеличить вдвое, при четырех — вчетверо. Легко подсчитать, что уже при 4-х индикаторах небольшого размера, если первоначально подобранная величина тока равна 10 мА, мы вроде бы выходим за пределы максимально допустимого тока 30 мА. Но все станет на свои места, если вспомнить, что это максимально допустимый средний ток, а усредненная величина в зависимости от коэффициента заполнения не меняется. Но и пиковый ток, разумеется, ограничен, потому при большом количестве индикаторов для них будет лучше, если вы разделите индикаторы на группы не более 4-5 штук в каждой.

Управление яркостью

У драйверов есть специальные команды управления яркостью, регулирующие относительную длительность включенного состояния разряда. У TM1637 8 градаций яркости, у MAX7219/MAX7221 по 16. В реальности такое количество ступеней совершенно излишнее — обычно имеют значение три величины (низкая-средняя-высокая), но вот сами эти величины для разных типов дисплеев могут отличаться, и еще зависеть от плотности фильтров, устанавливаемых, как мы говорили, для увеличения контраста.

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

В случае статической индикации чисто программной регулировки не добиться, придется переключать токозадающие резисторы Rext во всех разрядах одновременно. Это не очень сложно сделать с помощью КМОП-коммутаторов (например, 74HC4066, старинных 590КН2 или маломощных электронных реле), только довольно сильно загромождает схему.

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

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

Источник

Информационный сайт