Модуль индикации что это

Модули индикации

Индикатор уровня на основе платы Arduino DUE с 3,5-дюймовым TFT-дисплем для RPi

Модуль индикации что это. Смотреть фото Модуль индикации что это. Смотреть картинку Модуль индикации что это. Картинка про Модуль индикации что это. Фото Модуль индикации что это

Рассматривается вариант относительно простого и не очень дорогого индикатора уровня выходного сигнала для усилителя (для линейного выхода) на основе китайского клона платы Arduino DUE с 3,5-дюймовым TFT-дисплем для микрокомпьютера Raspberry Pi 2/3 model B. Такой дисплей имеет разрешение 480×320 точек и активные размеры экрана 75×50 мм. Дисплей управляется по последовательной шине SPI, но, несмотря на это, совместно с платой Arduino DUE обладает достаточным быстродействием, высокой яркостью и контрастностью. Подсветка экрана — равномерная, без пятен и засветов, с отличной прорисовкой мелких деталей (очень хорошо читается текст из символов высотой 1,5 мм), приличные углы обзора (имеющаяся фотография в полной мере этого передать не может). На основе используемой графической библиотеки GxTFT нетрудно реализовать и другие подобные проекты, например для «Умного дома», или для автомобиля, где требуется наглядное представление информации от различных датчиков. Можно использовать дисплеи с другими размерами экрана, главное, чтобы они поддерживались указанной библиотекой. В качестве примера в конце статьи предложен вариант многофункционального сервисного блока для УНЧ на основе рассмотренных устройств.

Вариант модуля индикации для Amanero на SSD1322 OLED модуле

Модуль индикации что это. Смотреть фото Модуль индикации что это. Смотреть картинку Модуль индикации что это. Картинка про Модуль индикации что это. Фото Модуль индикации что это

Доработка китайского индикатора уровня GHXAMP с диапазоном 57дБ

Модуль индикации что это. Смотреть фото Модуль индикации что это. Смотреть картинку Модуль индикации что это. Картинка про Модуль индикации что это. Фото Модуль индикации что это

Модуль индикации для Аманеро на светодиодных буквенно-цифровых индикаторах HPDL-1414

Модуль индикации что это. Смотреть фото Модуль индикации что это. Смотреть картинку Модуль индикации что это. Картинка про Модуль индикации что это. Фото Модуль индикации что это

В статье предлагается вариант модуля индикации для Аманеро, работающий на недорогих 4-символьных буквенно-цифровых Smart индикаторах HPDL-1414 под управлением микроконтроллера (МК) ATmega16L. Индикаторы довольно яркие (к сожалению, на фотографиях не удалось отобразить натуральный цвет их свечения), с размерами символов по высоте около 4 мм; они очень хорошо смотрятся под защитным тонированным стеклом.

Программная модернизация модуля индикации для «Аманеро» AH-I6

Предлагаю модернизированный вариант прошивки модуля индикации AH-I6 для «Аманеро», используемого совместно с ЦАП AH-D6 / AH-D5 / AH-D5.5.

Модуль индикации что это. Смотреть фото Модуль индикации что это. Смотреть картинку Модуль индикации что это. Картинка про Модуль индикации что это. Фото Модуль индикации что это

Внешне алгоритм работы модуля AH-I6 практически не изменился. В новой прошивке удалось реализовать обработку нескольких ИК-протоколов путём адаптации соответствующих процедур из библиотеки «Ардуино» IRremote, Version 2.0.1 (June, 2015). Теперь прошивка для микроконтроллера (МК) ATmega88 поддерживает протоколы: NEC, JVC, Samsung, Sony, а для МК ATmega168 — дополнительно протоколы Philips (RC5, RC6) и пока непроверенные: AIWA, LG, SANYO, Mitsubishi, Denon, Whynter. Кроме того, прошивка позволяет использовать в модуле AH-I6 индикаторы OLED, имеющие по сравнению с ЖКИ повышенную контрастность, поэтому отображаемую на них информацию хорошо видно за тонированным защитным стеклом.

Приставка к модулю индикации AH-I6 — эмулятор нажатия кнопок

Описываемое устройство представляет собой приставку к блоку индикации AH-I6 для Аманеро, работающему совместно с ЦАП AH-D5/D6, и предназначено для эмуляции нажатия двух кнопок управления («Питание», «Цифровой фильтр») как вручную, так и удалённо с помощью ИК-пульта, работающего по протоколу NEC или RC5 (протокол пульта определяется прошивкой эмулятора). Это позволяет использовать ИК-управление модулем индикации на основе микроконтроллера ATMega88, который не предусматривает приём и обработку команд с ИК пульта. Эмулятор может быть использован также совместно и с другими устройствами, где требуется дистанционное «нажатие» одной-двух кнопок.
Эмулятор смонтирован на двухсторонней печатной плате размером 22×22 мм и «одевается» на штыревые разъёмы J6 («IR» — через него подаётся питание +5В) и J5 («Buttons» — контакты кнопок) модуля индикации.

Вид устройства сверху, снизу и с ИК-приёмником, показанным в качестве демонстрации:

Модуль индикации что это. Смотреть фото Модуль индикации что это. Смотреть картинку Модуль индикации что это. Картинка про Модуль индикации что это. Фото Модуль индикации что этоМодуль индикации что это. Смотреть фото Модуль индикации что это. Смотреть картинку Модуль индикации что это. Картинка про Модуль индикации что это. Фото Модуль индикации что этоМодуль индикации что это. Смотреть фото Модуль индикации что это. Смотреть картинку Модуль индикации что это. Картинка про Модуль индикации что это. Фото Модуль индикации что это

ИК-приёмник подключается к эмулятору 3 проводами через разъём DS1066-03.

Модуль индикации для аманеро

При создании проекта ЦАП-а хотелось получить законченную конструкцию. Так в дополнение к адаптеру для аманеро v1.4 решено было разработать модуль индикации.

Модуль индикации что это. Смотреть фото Модуль индикации что это. Смотреть картинку Модуль индикации что это. Картинка про Модуль индикации что это. Фото Модуль индикации что это

Модуль выводит на экран информацию о текущей частоте дискретизации, используя пины F0-F3 на аманеро. Но стоит отметить, что их функциональность была добавлена только в свежих прошивках аманеро. На китайских клона со старой прошивкой, опция «Enable F0, F1, F2, F3» (включаемая в oemtools) может оказаться нерабочей. Для работы модуля требуется включение F0-F3.

Источник

Модуль индикации для аманеро

При создании проекта ЦАП-а хотелось получить законченную конструкцию. Так в дополнение к адаптеру для аманеро v1.4 решено было разработать модуль индикации.

Модуль индикации что это. Смотреть фото Модуль индикации что это. Смотреть картинку Модуль индикации что это. Картинка про Модуль индикации что это. Фото Модуль индикации что это

Модуль выводит на экран информацию о текущей частоте дискретизации, используя пины F0-F3 на аманеро. Но стоит отметить, что их функциональность была добавлена только в свежих прошивках аманеро. На китайских клона со старой прошивкой, опция «Enable F0, F1, F2, F3» (включаемая в oemtools) может оказаться нерабочей. Для работы модуля требуется включение F0-F3.

К сожалению информация о частоте дискретизации для DSD режима в документации combo 384 оказалась не описана. Но опытным путем было установлено, что все же вся информация доступна на пинах F0-F3.

У меня получилась следующая таблица

Для управления дисплеем я использовал микроконтроллер atmega88/168. Дополнительно на плате был предусмотрен дополнительный разъем для подключения «конфига цап», что позволило еще управлять режимами цифрового фильтра. Управление реализовано на 2-ух кнопках (разъем J5 Buttons). Вторая из них это кнопка питания, а первая — кнопка выбора цифрового фильтра (переключение идет по кругу из 4-х доступных режимов). Состояние последнего выбранного режима запоминается в постоянной памяти микроконтроллера. Для старшей версии микроконтроллера atmega168 предусматривается реализация прошивки с поддержкой ИК пультов (в разработке).

В прошивке предусмотрена возможность отключить функцию управления ЦФ ЦАП-а, если она не требуется (в случае использования индикации отдельно со сторонним ЦАП-ом). Для этого достаточно просто установить джампер вместо кнопки (разъем J5 Buttons pins 1-2) и перезапустить модуль. Информация о типе выбранного цифрового фильтра выводиться на экран не будет.

Аналогично можно отказаться от функции кнопки включения.

Схема модуля индикации

Модуль индикации что это. Смотреть фото Модуль индикации что это. Смотреть картинку Модуль индикации что это. Картинка про Модуль индикации что это. Фото Модуль индикации что это

Печатная плата модуля индикации

Модуль выполнен на двусторонней печатной плате размером 100х37мм. Ниже представлен 3D-вид печатной платы с обоих сторон.

Модуль индикации что это. Смотреть фото Модуль индикации что это. Смотреть картинку Модуль индикации что это. Картинка про Модуль индикации что это. Фото Модуль индикации что это

Модуль индикации что это. Смотреть фото Модуль индикации что это. Смотреть картинку Модуль индикации что это. Картинка про Модуль индикации что это. Фото Модуль индикации что это

В качестве дисплея я использовал наиболее распространенный LCD 1602A, который может отображать ASCII символа в 2 строки (16 знаков в 1 строке) каждый символ в виде матрицы 5х7 пикселей.

Сам дисплей легко крепиться к плате с контроллером.

Модуль индикации что это. Смотреть фото Модуль индикации что это. Смотреть картинку Модуль индикации что это. Картинка про Модуль индикации что это. Фото Модуль индикации что это

Разъем INDICATOR и подключение

Разъем J3 используется для подключения к адаптеру для аманеро v1.4. Можно, конечно, подключить индикацию и напрямую к amanero без всякого адаптера.

Распиновка разъема следующая:

Контакт 1 — F3 (входящий с amanero)

Контакт 2 — F2 (входящий с amanero)

Контакт 3 — F1 (входящий с amanero)

Контакт 4 — F0 (входящий с amanero)

Контакт 5 — флаг DSD потока на выходе. (входящий с amanero)

Контакт 6 — mute. (входящий с amanero)

Контакты 7 — GND, земля.

Контакты 8 — +3.3В. (в логике управления и индикации не используется)

Контакты 9 — connect (выходной управляющий сигнал, cлужит для перевода ЦАП-а в активный режим (применительно к AH-D5/6). Если уровень «0» — ЦАП переходит в спящий режим. Таким образом реализуется функция включения / выключения

Подключить индикацию можно к более ранней версии адаптера к amanero v1.3, но с некоторым неудобствами. Так как в нем отсутствую последние 2 пина — 9 и 10 (разведен разъем 2х4, распиновка которого совпадает с младшими пинами 1-8 модуля индикации). При подключении к нему модуля индикации, предлагается подать питание на разъем J2 EXT_POWER, а сигнал (Контакты 9 ) включения ЦАП предлагается завести отдельным проводом на разъем «usb ready» адаптера и запаять перемычку в положение opt2 на самом адаптере.

Питание модуля индикации

При использовании совместно с платой адаптера к amanero, в случае внешнего питания amanero, питающее напряжение +5в поступает на модуль индикации с J3 INDICATOR pin 10.

В случае, если адаптер используется без внешнего питания +5В (если amanero питается от USB), то потребуется на модуль индикации подать свое питание, гальванически не связанное с питанием самого ЦАП-а.

Следует отметить, что у модуль связан гальванически с грязной цифровой землей модуля amanero, поэтому связывать его землю с чистой землей ЦАП-а нельзя, если используется гальваническая развязка. Это следует учесть для тех, кто будет собирать цап в металлическом корпусе.

Внимание, при прошивке модуля индикации, разъем J3 (TO AMANERO) должен быть отключен. Для работы модуля необходимо включить на модуле amanero F0-F3. Сам МК надо сконфигурировать на частоту 1Мгц (при 8Мгц могут наблюдаться ироглифы на дисплее).

Выражаю благодарность Владимиру (Pushok62) за большую работу проделанную за меня по написанию полнофункциональной прошивки с поддержкой ИК-пультов. Кроме того, эта прошивка позволяет использовать в модуле AH-I6 OLED индикаторы, имеющие по сравнению с ЖКИ повышенную контрастность.

Часть 3. Плата адаптер для USB модуля Amanero для подключения к ЦАП AH-D5 / AH-D6. Собставенно сама плата к которой и подключается предложенный модуль индикации.

Ниже во вложении можно скачать

Прошивать модуль следует при отключенном разъеме J3 (To Amanero)

Источник

Модуль индикации что это

Основное назначение модулей индикации ЭНМИ — отображение параметров режима электрической сети, измеряемых преобразователями ЭНИП‑2 и многофункциональными измерительными устройствами ESM. ЭНМИ не является средством измерения: представляет собой средство индикации и метрологической поверке не подлежит.

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

ЭНМИ‑3 являются простейшими модулями индикации для ЭНИП-2. Основное их достоинство — широкий температурный диапазон.

Модули индикации ЭНМИ‑4 и ЭНМИ‑5 на основе ЖК-экранов позволяют отображать измеряемые параметры в разнообразной форме. ЭНМИ-4 предоставляет следующие режимы отображения данных: цифровые формы, барграфы, табличные формы, мнемосхема присоединения. На цветном сенсорном экране ЭНМИ-5 измерения могут отображаться в режиме имитации стрелочного прибора, в цифровом виде, на диаграммах (векторная диаграмма и диаграмма мощности). ЭНМИ-5 также обеспечивает управление дискретными выходами ЭНИП-2, а также может служить панелью для ЭНМВ-1.

Для отображения данных ESM предназначены модули индикации ЭНМИ-5 и ЭНМИ-7. Последний обладает компактным корпусом и благодаря применению OLEDдисплея может применяться вместе с ESM в широком температурном диапазоне.

ЭНМИ и ЭНИП‑2 могут быть конструктивно объединены в случаях, когда требуется установить ЭНИП-2 как щитовой прибор. Совмещенный конструктив легко монтируется в подготовленное отверстие в дверце отсека КРУ или на панели ОПУ.

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

Источник

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

Речь в этой статье пойдет о цифровых или цифробуквенных дисплеях для индикации различных показаний, которые часто так и называют индикаторами. Здесь мы остановимся только на одной их разновидности — светодиодных (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, чтобы не приходилось давить на кнопку после каждого перебоя в питании.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *