Что представляет собой 7-сегментный индикатор. Как он устроен. Какие бывают типы индикаторов. Как подключить 7-сегментный индикатор к микроконтроллеру. Какие существуют способы управления индикатором. Как рассчитать токоограничивающие резисторы.
Устройство и принцип работы 7-сегментного индикатора
7-сегментный индикатор представляет собой электронное устройство для отображения цифровой информации. Он состоит из 7 светодиодных сегментов, расположенных в форме цифры 8. Каждый сегмент может включаться независимо, что позволяет формировать изображения цифр от 0 до 9.
Основные компоненты 7-сегментного индикатора:
- 7 светодиодных сегментов (A-G)
- Десятичная точка (DP)
- Общий вывод (анод или катод)
- Выводы для подключения каждого сегмента
Принцип работы заключается в том, что путем включения определенной комбинации сегментов формируется изображение нужной цифры. Например, для отображения цифры 1 включаются сегменты B и C.
Типы 7-сегментных индикаторов
Существует два основных типа 7-сегментных индикаторов:

1. С общим анодом
В индикаторах с общим анодом все аноды светодиодов объединены и подключаются к положительному питанию. Для включения сегмента на его катод подается низкий уровень (0).
2. С общим катодом
В индикаторах с общим катодом объединены катоды светодиодов, которые подключаются к земле (GND). Для включения сегмента на его анод подается высокий уровень (1).
Важно правильно определить тип индикатора перед подключением, так как схемы управления для них различаются.
Подключение 7-сегментного индикатора к микроконтроллеру
Для подключения 7-сегментного индикатора к микроконтроллеру необходимо:
- Подключить общий вывод индикатора к питанию (для общего анода) или земле (для общего катода)
- Подключить выводы сегментов через токоограничивающие резисторы к пинам микроконтроллера
- Рассчитать и установить токоограничивающие резисторы для каждого сегмента
Формула для расчета сопротивления токоограничивающего резистора:
R = (Vcc — Vf) / If
где:
- R — сопротивление резистора
- Vcc — напряжение питания
- Vf — прямое падение напряжения на светодиоде
- If — рабочий ток светодиода
Способы управления 7-сегментным индикатором
Существует два основных способа управления 7-сегментным индикатором:

1. Статическое управление
При статическом управлении на каждый сегмент подается отдельный управляющий сигнал. Этот способ прост в реализации, но требует большого количества выводов микроконтроллера.
2. Динамическая индикация (мультиплексирование)
При динамической индикации используется быстрое переключение между разрядами индикатора. Это позволяет управлять несколькими разрядами, используя меньшее количество выводов микроконтроллера.
Преимущества динамической индикации:
- Экономия выводов микроконтроллера
- Возможность управления многоразрядными индикаторами
- Снижение энергопотребления
Программирование 7-сегментного индикатора
Для программирования 7-сегментного индикатора обычно используются следующие подходы:
- Создание массива с кодами цифр
- Использование битовых операций для формирования комбинаций сегментов
- Применение готовых библиотек для работы с индикаторами
Пример кода для вывода цифры на индикатор с общим катодом:
«`cpp // Определение пинов для сегментов int segments[] = {2, 3, 4, 5, 6, 7, 8}; // Коды цифр (0-9) для индикатора с общим катодом byte digits[] = { 0b00111111, // 0 0b00000110, // 1 0b01011011, // 2 0b01001111, // 3 0b01100110, // 4 0b01101101, // 5 0b01111101, // 6 0b00000111, // 7 0b01111111, // 8 0b01101111 // 9 }; void setup() { // Настройка пинов на выход for (int i = 0; i < 7; i++) { pinMode(segments[i], OUTPUT); } } void loop() { // Вывод цифры 5 displayDigit(5); delay(1000); } void displayDigit(int digit) { byte segmentState = digits[digit]; for (int i = 0; i < 7; i++) { digitalWrite(segments[i], bitRead(segmentState, i)); } } ```Области применения 7-сегментных индикаторов
7-сегментные индикаторы широко используются в различных электронных устройствах для отображения числовой информации:
- Часы и таймеры
- Измерительные приборы
- Бытовая техника
- Индикаторы на промышленном оборудовании
- Электронные табло и счетчики
Несмотря на развитие других технологий отображения информации, 7-сегментные индикаторы остаются популярными благодаря своей простоте, надежности и низкой стоимости.
Преимущества и недостатки 7-сегментных индикаторов
Преимущества:
- Простота конструкции и управления
- Низкая стоимость
- Высокая яркость и контрастность
- Широкий угол обзора
- Возможность работы при низких температурах
Недостатки:
- Ограниченный набор отображаемых символов
- Относительно высокое энергопотребление (по сравнению с ЖК-дисплеями)
- Необходимость использования токоограничивающих резисторов
- Сложность отображения нестандартных символов
Несмотря на некоторые ограничения, 7-сегментные индикаторы остаются востребованными в различных областях электроники благодаря своей надежности и простоте использования.
Цифровые индикаторы
Существует несколько способов отображения показаний цифрового измерительного прибора, начиная от простейшей неоновой лампы и кончая светоизлучающими диодами (СИД) и жидкокристаллическими индикаторами (ЖКИ). Обычно отображается от четырех до восьми разрядов десятичных чисел. Максимальное число, отображаемое четырехразрядным индикатором, равно 9999, тогда как для восьмиразрядного индикатора это число равно 99999999. В недорогих измерительных устройствах используется так называемый 3,5-разрядный индикатор. В индикаторе этого типа в старшем разряде (крайнем слева) может высвечиваться только либо 0, либо 1. Таким образом, максимальное число, отображаемое на индикаторе этого типа, равно 1999.
Основными типами индикаторов являются индикатор на светоизлучающих диодах (СИД) и жидкокристаллический индикатор (ЖКИ). Каждый разряд индикатора состоит из семи сегментов; это минимальное количество сегментов, необходимое для представления десятичных цифр от нуля до девяти. Сегменты обозначаются латинскими буквами от а до g(рис. 35.1). Таблица на рис. 35.2 иллюстрирует, с помощью каких сегментов формируется изображение каждой цифры. Жидкокристаллические индикаторы потребляют очень малую мощность (порядка микроватт) и применяются в портативных измерительных приборах. Для работы СИД-индикаторов нужен больший ток, и они потребляют большую мощность (порядка милливатт). Эти индикаторы широко применяются в стационарных цифровых вольтметрах, где потребляемая мощность не имеет первостепенного значения. С другой стороны, показания СИД-индикаторов можно видеть в темноте, в то время как для ЖКИ требуется внешняя подсветка экрана.
Рис. 35.2.
Управление работой СИД-индикатора
На рис. 35.3 показана схема управления работой семисегментного СИД-индикатора. Светодиод преобразует электрический ток в свет. Таким образом, чтобы сегмент индикатора светился, через светодиод, образующий этот сегмент, должен протекать ток. Как видно из рисунка, один вывод каждого диода подключен к одной общей для всех диодов точке. Здесь использована схема с общим анодом. Если присоединить к общей точке катоды всех диодов, то получится схема с общим катодом.
Каждый семисегментный индикатор формирует лишь один разряд всего десятичного числа, отображаемого многоразрядным индикатором. Каждый разряд имеет восемь выводов: один вывод для каждого сегмента и один общий вывод. В некоторых случаях для отображения десятичной точки добавляется девятый вывод.
Для управления сегментами индикатора выходной сигнал декадного счетчика нужно сначала преобразовать в соответствующую форму. Выходной сигнал счетчика выдается в виде двоично-десятичного кода, который представляют 4 двоичных разряда. Этот код должен быть преобразован в соответствующий сигнал — код семисегментного индикатора — для включения нужных сегментов. Это преобразование осуществляется с помощью дешифратора.
Показанный на схеме блок транзисторных ключей (блок коммутации тока) обычно выполняется в виде одного интегрального модуля. Функции дешифратора и коммутатора могут быть объединены в одной ИС; примерами являются ИС 7447 для индикаторов с общим анодом и ИС 7448 для индикаторов с общим катодом. На рис. 35.4 показан двухразрядный индикаторный модуль, в который входят два декадных счетчика, два модуля дешифратора/коммутатора и два семисегментных индикатора с общим анодом.
Рис. 35.3.
Управление работой ЖКИ
В жидкокристаллических индикаторах используется уникальная взаимосвязь между электрическими и оптическими характеристиками некоторых жидкостей, которые способны сохранять свою кристаллическую структуру. Оптические свойства этих жидких кристаллов позволяют использовать их в устройствах индикации. Жидкие кристаллы не излучают свет в отличие от СИД, а лишь изменяют свою рассеивающую способность, поэтому индикаторы этого типа работают при очень малых токах и потребляют очень малую мощность. Благодаря этому управлять работой ЖКИ могут непосредственно МОП- и КМОП-элементы.
Каждый сегмент ЖКИ имеет два вывода, или пластины: переднюю и заднюю. Задние пластины всех сегментов имеют общее электрическое соединение. Жидкокристаллические индикаторы всегда работают от переменного напряжения, чтобы избежать электролитического осаждения и обеспечить максимальное время жизни индикатора.
Рис. 35.4.
Рис. 35.5.
Для управления работой ЖКИ-сегмента на его заднюю пластину постоянно подается последовательность тактовых прямоугольных импульсов с частотой следования 40 Гц (рис. 35.5). Выключение сегмента осуществляется путем подачи на переднюю пластину последовательности прямоугольных импульсов, совпадающей по фазе с тактирующей последовательностью, а включение — путем подачи на переднюю пластину аналогичного сигнала в противофазе. Когда тактовый и управляющий сигналы противофазны, амплитуды их суммируются, и амплитуда полного напряжения на ЖКИ вдвое превышает амплитуду тактового сигнала, что обеспечивает включение сегмента (рис. 35.5(б)).
Управление работой ЖКИ можно, например, осуществить с помощью логического элемента Исключающее ИЛИ, как показано на рис. 35.6.
Рис. 35.6.
Таблица истинности логического элемента Исключающее ИЛИ имеет следующий вид:
А |
В |
С |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
Из таблицы истинности видно, что если на управляющем входе А установлен логический 0, сигнал на выходе С повторяет тактовый сигнал (40 Гц) на входе В, т. е. находится в фазе с ним. Сигнал с выхода С подается на переднюю пластину сегмента ЖКИ. Синфазный с ним тактовый сигнал непосредственно подается на заднюю пластину сегмента. В результате электрический потенциал, а, следовательно, и электрическое поле между пластинами оказываются равными нулю, и сегмент выключен.
Когда на управляющем входе А установлена логическая 1, сигнал на выходе С логического элемента оказывается в противофазе с сигналом на входе В. Теперь на переднюю и заднюю пластины сегмента подаются противофазные сигналы, амплитуды которых суммируются и дают удвоенную амплитуду электрического поля (по отношению к амплитуде поля при действии одного тактового сигнала). Сегмент включен.
В данном видео рассказывается о знакосинтезирующих жидкокристаллических индикаторах:
Добавить комментарий
Семисегментный светодиодный одноразрядный индикатор as. Большие цифровые индикаторы из светодиодов
Наверняка вы уже видели индикаторы — «восьмёрки». Это и есть семисегментный светодиодный индикатор, который служит для отображения цифр от 0 до 9, а также децимальной точки (DP — Decimal point) или запятой.
Конструктивно такое изделие представляет собой сборку светодиодов. Каждый светодиод сборки засвечивает свой знакосегмент.
В зависимости от модели сборка может состоять из 1 — 4 семисегментных групп. Например, индикатор АЛС333Б1 состоит из одной семисегментной группы, которая способна отображать всего лишь одну цифру от 0 до 9.
А вот светодиодный индикатор KEM-5162AS уже имеет две семисегментных группы. Он является двухразрядным. Далее на фото показаны разные светодиодные семисегментные индикаторы.
Также существуют индикаторы с 4-мя семисегментными группами — четырёхразрядные (на фото — FYQ-5641BSR-11). Их можно использовать в самодельных электронных часах.
Как обозначаются семисегментные индикаторы на схемах?
Так как семисегментный индикатор — это комбинированный электронный прибор, то изображение его на схемах мало отличается от его внешнего вида.
Стоит только обратить внимание на то, что каждому выводу соответствует конкретный знакосегмент, к которому он подключен. Также имеется один или несколько выводов общего катода или анода — в зависимости от модели прибора.
Особенности семисегментных индикаторов.
Несмотря на кажущуюся простоту этой детали и у неё есть особенности.
Во-первых, светодиодные семисегментные индикаторы бывают с общим анодом и с общим катодом. Данную особенность следует учитывать при его покупке для самодельной конструкции или прибора.
Вот, например, цоколёвка уже знакомого нам 4-ёх разрядного индикатора FYQ-5641BSR-11 .
Как видим, аноды у светодиодов каждой цифры объединены и выведены на отдельный вывод. Катоды же у светодиодов, которые принадлежат к знакосегменту (например, G ), соединены вместе. От того, какую схему соединений имеет индикатор (с общим анодом или катодом) зависит очень многое. Если взглянуть на принципиальные схемы приборов с применением семисегментных индикаторов, то станет ясно, почему это так важно.
Кроме небольших индикаторов есть большие и даже очень большие. Их можно увидеть в общественных местах, обычно в виде настенных часов, термометров, информеров.
Чтобы увеличить размеры цифр на табло и одновременно сохранить достаточную яркость каждого сегмента, используется несколько светодиодов, включенных последовательно. Вот пример такого индикатора — он умещается на ладони. Это FYS-23011-BUB-21 .
Один его сегмент состоит из 4 светодиодов, включенных последовательно.
Чтобы засветить один из сегментов (A, B, C, D, E, F или G), нужно подать на него напряжение в 11,2 вольта (2,8V на каждый светодиод). Можно и меньше, например, 10V, но яркость тоже уменьшится. Исключение составляет децимальная точка (DP), её сегмент состоит из двух светодиодов. Для неё нужно всего 5 — 5,6 вольт.
Также в природе встречаются двухцветные индикаторы. В них встраиваются, например, красные и зелёные светодиоды. Получается, что в корпус встроено как бы два индикатора, но со светодиодами разного цвета свечения. Если подать напряжение на обе цепи светодиодов, то можно получить жёлтый цвет свечения сегментов. Вот схема соединений одного из таких двухцветных индикаторов (SBA-15-11EGWA).
Если коммутировать выводы 1 (RED ) и 5 (GREEN ) на «+» питания через ключевые транзисторы, то можно менять цвет свечения отображаемых чисел с красного на зелёный. А если же одновременно подключить выводы 1 и 5, то цвет cвечения будет оранжевым. Вот так можно баловаться с индикаторами .
Управление семисегментными индикаторами.
Для управления семисегментными индикаторами в цифровых устройствах используют регистры сдвига и дешифраторы. Например, широко распространённый дешифратор для управления индикаторами серии АЛС333 и АЛС324 — микросхема К514ИД2 или К176ИД2 . Вот пример .
А для управления современными импортными индикаторами обычно используются регистры сдвига 74HC595 . По идее, управлять сегментами табло можно и напрямую с выходов микроконтроллера. Но такую схему используют редко, так как для этого требуется задействовать довольно много выводов самого микроконтроллера. Поэтому для этой цели применяются регистры сдвига. Кроме этого, ток, потребляемый светодиодами знакосегмента, может быть больше, чем ток, который может обеспечить рядовой выход микроконтроллера.
Для управления большими семисегментными индикаторами, такими как, FYS-23011-BUB-21 применяются специализированные драйверы, например, микросхема MBI5026 .
Что внутри семисегментного индикатора?
Ну и немного вкусненького. Любой электронщик не был бы таковым, если бы не интересовался «внутренностями» радиодеталей. Вот что внутри индикатора АЛС324Б1.
Чёрные квадратики на основании — это кристаллы светодиодов. Тут же можно разглядеть золотые перемычки, которые соединяют кристалл с одним из выводов. К сожалению, этот индикатор уже работать не будет, так как были оборваны как раз эти самые перемычки . Но зато мы можем посмотреть, что скрывается за декоративной панелькой табло.
Доброго времени суток! После моего затяжного и вынужденного перерыва, продолжим освоение курса «Программирование Ардуино». В одном из наших предыдущих уроков, мы уже работали с последовательностью светодиодов, теперь пора переходить к следующему этапу обучения. Темой сегодняшней статьи будет – 7-сегментный индикатор.
Знакомство с 7-сегментным индикатором будет состоять из двух частей. В первой части мы поверхностно «пробежимся» по теоретической составляющей, поработаем с «железом» и напишем простенькие программки.
Прошлый раз мы работали с последовательностью из 8 светодиодов, сегодня их также будет 8 (7 – светодиодных полосок и 1 точка). В отличии от предыдущей последовательности, элементы этого набора не выстроенные в ряд (друг за дружкой), а расположены в определённом порядке. Благодаря чему используя лишь один компонент можно вывести 10 цифр (от 0 до 9).
Еще одно существенное отличие, что выделяет данный индикатор на фоне простых светодиодов. У него общий катод (вернее две равноценные ножки 3 и 8, на который заведен катод). Достаточно всего лишь соединить один из катодов с землей (GND ). Аноды у всех элементов индикатора индивидуальные.
Небольшое отступление. Все выше сказанное относится к 7-сегментным индикаторам с общим катодом. Однако существуют индикаторы с общим анодом. Подключение таких индикаторов имеет существенные отличия, поэтому прошу не путать «грешное с праведным». Необходимо четко понимать, какой именно тип семисегментника у вас в руках!
Кроме отличий между простыми светодиодами и 7-сегментными индикаторами, есть и общие черты. Например: индикаторы, как и светодиоды, можно смонтировать в ряд (последовательность) для отображения двух-, трёх-, четырехзначных чисел (разрядов). Однако не советую сильно заморачиваться по поводу самостоятельной сборки сегментных наборов. В продаже «рядом» с одноразрядными индикаторами, продаются и многоразрядные.
Надеюсь, вы не забыли об необходимости использования токоограничивающих резисторов при подключении светодиодов. Это же относится и к индикаторам: на каждый элемент индикатора должен быть подключен свой резистор. 8 элементов (7 + 1) – 8 резисторов.
У меня под рукой оказался семисегментник с маркировкой 5161AS (общий катод). Распиновка контактов:
Принципиальная схема
Как говорил ранее, для того, чтобы включить сегмент «А» подключим к любому общему контакту (3 или 8) «землю», а на вывод 7 подадим 5В питания. Если индикатор с общим анодом, то на анод подаём 5В, а на вывод сегмента «землю»!
Соберём тестовый стенд. Соединяем провода по порядку, начиная с первой ножки, которая идёт на 2-й вывод платы Ардуино. Землю подключим к 8 выводу индикатора.
После того, как стенд собран можно приступать к написанию прошивки.
Для проверки индикатора запустим написанную программу. Выберем элемент «А» и помигаем им.
Теперь помигаем цифрой 2. Для этого включим еще несколько элементов.
Чтобы вывести одну цифру, нужно написать n-число строчек кода. Затруднительно, не находите.
Есть другой путь. Для того, чтобы вывести любую цифру на индикаторе, сначала её нужно представить в виде определенной последовательности бит.
Таблица соответствия.
Если у дисплея общий анод, то 1 нужно заменить на 0, а 0 – на 1!
Столбец hex – представление цифры в байтовом виде (более детально поговорим об этом во второй части).
Число в двоичной системе счисления записывается следующим образом: 0b00000000. 0b – двоичная система. Нули означают, что все светодиоды выключены.
При подключении мы задействовали выводы с 2 по 9. Чтобы включить 2 вывод записываем в него единицу = 0b00000001. За точку отвечает четвёртый бит справа. За чёрточку посередине индикатора отвечает самый последний бит.
Давайте напишем пример вывода цифры 0.
Для уменьшения количества набранных строк воспользуемся циклом, который позволяет «перебрать» все 8 бит. Переменной Enable_segment присваивается значение считываемого бита. После этого текущий вывод устанавливается в соответствующий режим (наличия или отсутствия сигнала ).
Примечание: функция bitRead() считывает состояние указанного бита и возвращает значение состояния (0 или 1). bitRead(x, n) где, x — число, бит которого необходимо считать; n — номер бита, состояние которого необходимо считать. Нумерация начинается с младшего значащего бита (крайнего правого) с номером 0.
И в завершении первой части напишем небольшой счетчик.
В уроке узнаем о схемах подключения семисегментных светодиодных индикаторов к микроконтроллерам, о способах управления индикаторами.
Светодиодные семисегментные индикаторы остаются одними из самых популярных элементов для отображения цифровой информации.
Этому способствуют следующие их качества.
- Низкая цена. В средствах индикации нет ничего дешевле светодиодных цифровых индикаторов.
- Разнообразие размеров. Самые маленькие и самые большие индикаторы – светодиодные. Мне известны светодиодные индикаторы с высотой цифры от 2,5 мм, до 32 см.
- Светятся в темноте. В некоторых приложениях это свойство чуть ли не решающее.
- Имеют различные цвета свечения. Бывают даже двухцветные.
- Достаточно малые токи управления. Современные светодиодные индикаторы могут подключаться к выводам микроконтроллеров без дополнительных ключей.
- Допускают жесткие условия эксплуатации (температурный диапазон, высокая влажность, вибрации, агрессивные среды и т.п.). По этому качеству светодиодным индикаторам нет равных среди других типов элементов индикации.
- Неограниченный срок службы.
Типы светодиодных индикаторов.
Семисегментный светодиодный индикатор отображает символ с помощью семи светодиодов – сегментов цифры. Восьмой светодиод засвечивает децимальную точку. Так что в семисегментном индикаторе 8 сегментов.
Сегменты обозначаются латинскими буквами от ”A” до ”H”.
Аноды или катоды каждого светодиода объединяются в индикаторе и образуют общий провод. Поэтому существуют индикаторы с общим анодом и общим катодом.
Светодиодный индикатор с общим анодом.
Светодиодный индикатор с общим катодом.
Статическое управление светодиодным индикатором.
Подключать светодиодные индикаторы к микроконтроллеру необходимо через резисторы, ограничивающие ток.
Расчет резисторов такой же, как для отдельных светодиодов.
R = (U питания — U сегмента) / I сегмента
Для этой схемы: I сегмента = (5 – 1,5) / 1000 = 3,5 мА
Современные светодиодные индикаторы достаточно ярко светятся уже при токе 1 мА. Для схемы с общим анодом засветятся сегменты, на управляющих выводах которых микроконтроллер сформирует низкий уровень.
В схеме подключения индикатора с общим катодом меняется полярность питания и сигналов управления.
Засветится сегмент, на управляющем выводе которого будет сформирован высокий уровень (5 В).
Мультиплексированный режим управления светодиодными (LED) индикаторами.
Для подключения каждого семисегментного индикатора к микроконтроллеру требуется восемь выводов. Если индикаторов (разрядов) 3 – 4, то задача становится практически не выполнимой. Просто не хватит выводов микроконтроллера. В этом случае индикаторы можно подключить в мультиплексированном режиме, в режиме динамической индикации.
Выводы одноименных сегментов каждого индикатора объединяются. Получается матрица светодиодов, подключенных между выводами сегментов и общими выводами индикаторов. Вот схема мультиплексированного управления трех разрядным индикатором с общим анодом.
Для подключения трех индикаторов потребовалось 11 выводов, а не 24, как при статическом режиме управления.
При динамической индикации в каждый момент времени горит только одна цифра. На общий вывод одного из разрядов подается сигнал высокого уровня (5 В), а на выводы сегментов поступают сигналы низкого уровня для тех сегментов, какие должны светиться в этом разряде. Через определенное время зажигается следующий разряд. На его общий вывод подается высокий уровень, а на выводы сегментов сигналы состояния для этого разряда. И так для всех разрядов в бесконечном цикле. Время цикла называется временем регенерации индикаторов. Если время регенерации достаточно мало, то человеческий глаз не заметит переключения разрядов. Будет казаться, что все разряды светятся постоянно. Для исключения мерцания индикаторов считается, что частота цикла регенерации должно быть не менее 70 Гц. Я стараюсь использовать не менее 100 Гц.
Схема динамической индикации для светодиодов с общим катодом выглядит так.
Меняется полярность всех сигналов. Теперь на общий провод активного разряда подается низкий уровень, а на сегменты, которые должны светиться – высокий уровень.
Расчет элементов динамической индикации светодиодных (LED) индикаторов.
Расчет несколько сложнее, чем для статического режима. В ходе расчета необходимо определить:
- средний ток сегментов;
- импульсный ток сегментов;
- сопротивление резисторов сегментов;
- импульсный ток общих выводов разрядов.
Т.к. разряды индикаторов светятся по очереди, то яркость свечения определяет средний ток. Мы должны выбрать его исходя из параметров индикатора и требуемой яркости. Средний ток будет определять яркость свечения индикатора на уровне, соответствующем статическому управлению с таким же постоянным током.
Выберем средний ток сегмента 1 мА.
Теперь рассчитаем импульсный ток сегмента. Чтобы обеспечить требуемый средний ток, импульсный ток должен быть в N раз больше. Где N число разрядов индикатора.
I сегм. имп. = I сегм. средн. * N
Для нашей схемы I сегм. имп. = 1 * 3 = 3 мА.
Рассчитываем сопротивление резисторов, ограничивающих ток.
R = (U питания — U сегмента) / I сегм. имп.
R = (5 – 1,5) / 0.003 = 1166 Ом
Определяем импульсные токи общих выводов разрядов. Одновременно светиться могут 8 сегментов, значит надо импульсный ток одного сегмента умножить на 8.
I разряда имп. = I сегм. имп. * 8
Для нашей схемы I разряда имп. = 3 * 8 = 24 мА.
- сопротивление резисторов выбираем 1,1 кОм;
- выводы микроконтроллера управления сегментами должны обеспечивать ток не менее 3 мА;
- выводы микроконтроллера выбора разряда индикатора должны обеспечивать ток не менее 24 мА.
При таких значениях токов индикатор может быть подключен непосредственно к выводам платы Ардуино, без использования дополнительных ключей. Для ярких индикаторов, таких токов вполне достаточно.
Схемы с дополнительными ключами.
Если индикаторы требуют больший ток, то необходимо использовать дополнительные ключи, особенно для сигналов выбора разрядов. Общий ток разряда в 8 раз больше тока одного сегмента.
Схема подключения светодиодного индикатора с общим анодом в мультиплексированном режиме с транзисторными ключами выбора разрядов.
Для выбора разряда в этой схеме необходимо сформировать сигнал низкого уровня. Соответствующий ключ откроется и подаст питание на разряд индикатора.
Схема подключения светодиодного индикатора с общим катодом в мультиплексированном режиме с транзисторными ключами выбора разрядов.
Для выбора разряда в этой схеме необходимо сформировать сигнал высокого уровня. Соответствующий ключ откроется и замкнет общий вывод разряда на землю.
Могут быть схемы, в которых необходимо использовать транзисторные ключи и для сегментов, и для общих выводов разрядов. Такие схемы легко синтезируются из двух предыдущих. Все показанные схемы используются при питании индикатора напряжением равным питанию микроконтроллера.
Ключи для индикаторов с повышенным напряжением питания .
Бывают индикаторы больших размеров, в которых каждый сегмент состоит из нескольких светодиодов, соединенных последовательно. Для питания таких индикаторов требуется источник с напряжением большим, чем 5 В. Ключи должны обеспечивать коммутацию повышенного напряжения с управлением от сигналов уровней микроконтроллера (обычно 5 В).
Схема ключей, замыкающих сигналы индикатора на землю, остается неизмененной. А ключи питания должны строиться по другой схеме, например, такой.
В этой схеме активный разряд выбирается высоким уровнем управляющего сигнала.
Между переключением разрядов индикатора на короткое время (1-5 мкс) должны выключаться все сегменты. Это время необходимо на завершение переходных процессов коммутации ключей.
Конструктивно выводы разрядов могут быть объединены как в одном корпусе многоразрядного индикатора, а может быть собран многоразрядный индикатор из отдельных одноразрядных. Более того, можете собрать индикатор из отдельных светодиодов, объединенных в сегменты. Так обычно поступают, когда необходимо собрать индикатор очень больших размеров. Все приведенные выше схемы будут справедливы и для таких вариантов.
В следующем уроке подключим семисегментный светодиодный индикатор к плате Ардуино, напишем библиотеку для управления им.
Рубрика: . Вы можете добавить в закладки.В этой статье мы поговорим о цифровой индикации.
Семисегментные светодиодные индикаторы предназначены для отображения арабских цифр от 0 до 9 (рис.1).
Такие индикаторы бывают одноразрядные, которые отображают только одно число, но семисегментных групп, объединенных в один корпус может быть и больше (многоразрядные). В этом случае цифры разделяются децимальной точкой (рис.2)
Рис.2.
Индикатор называется семисегментным из-за того, что отображаемый символ строится из отдельных семи сегментов. Внутри корпуса такого индикатора находятся светодиоды, каждый из которых засвечивает свой сегмент.
Буквы и другие символы на таких индикаторах отображать проблематично, поэтому для этих целей используются 16-сегментные индикаторы.
Светодиодные индикаторы бывают двух типов.
В первом из них все катоды, т.е. отрицательные выводы всех светодиодов, объединены вместе и для них выделен соответствующий вывод на корпусе.
Остальные выводы индикатора соединены к аноду каждого из светодиодов (рис.3, а). Такая схема называется «схема с общим катодом».
Также существуют индикаторы, у которых светодиоды каждого из сегментов подключены по схеме с общим анодом (рис.3, б).
Рис.3.
Каждый сегмент обозначен соответствующей буквой. На рисунке 4 представлено их расположение.
Рис.4.
В качестве примера рассмотрим двухразрядный семисегментный индикатор GND-5622As-21 красного свечения. Кстати существуют и другие цвета, в зависимости от модели.
С помощью трехвольтовой батарейки можно включать сегменты, а если объединить группу выводов в кучку и подать на них питание, то можно даже отображать цифры. Но такой метод является неудобным, поэтому для управления семисегментными индикаторами используют регистры сдвига и дешифраторы. Также, нередко, выводы индикатора подключаются напрямую к выходам микроконтроллера, но лишь в том случае когда используются индикаторы с низким потреблением тока. На рисунке 5 представлен фрагмент схемы с использованием PIC16F876A.
Рис.5.
Для управления семисегментным индикатором часто используется дешифратор К176ИД2.
Эта микросхема способна преобразовать двоичный код, состоящий из нулей и единиц в десятичные цифры от 0 до 9.
Чтобы понять, как все это работает, нужно собрать простую схему (рис.6). Дешифратор К176ИД2 выполнен в корпусе DIP16. Он имеет 7 выходных вывода (выводы 9 — 15), каждый из которых предназначен для определенного сегмента. Управление точкой здесь не предусмотрено. Также микросхема имеет 4 входа (выводы 2 — 5) для подачи двоичного кода. На 16-й и 8-ой вывод подается плюс и минус питания соответственно. Остальные три вывода являются вспомогательными, о них я расскажу чуть позже.
Рис.6.
DD1 — К176ИД2
R1 — R4 (10 — 100 кОм)
HG1 —
GND-5622As-21
В схеме присутствует 4 тумблера (можно любые кнопки), при нажатии на них на входы дешифратора подается логическая единица от плюса питания. Кстати питается сама микросхема напряжением от 3 до 15 Вольт. В данном примере вся схема питается от 9-вольтовой «кроны».
Также в схеме присутствует 4 резистора. Это, так называемые, подтягивающие резисторы. Они нужны, чтобы гарантировать на логическом входе низкий уровень, при отсутствии сигнала. Без них показания на индикаторе могут отображаться некорректно. Рекомендуется использовать одинаковые сопротивления от 10 кОм до 100 кОм.
На схеме выводы 2 и 7 индикатора HG1 не подключены. Если подключить к минусу питания вывод DP, то будет светиться децимальная точка. А если подать минус на вывод Dig.2, то будет светиться и вторая группа сегментов (будет показывать тот же символ).
Входы дешифратора устроены так, что для отображения на индикаторе чисел 1, 2, 4 и 8 требуется нажатие лишь одной кнопки (на макете установлены тумблеры, соответствующие входам D0, D1, D2 и D3). При отсутствии сигнала отображается цифра ноль. При подаче сигнала на вход D0 отображается цифра 1. И так далее. Для отображения других цифр требуется нажатие комбинации тумблеров. А какие именно нужно нажимать нам подскажет таблица 1.
Таблица 1.
Чтобы отобразить цифру «3» необходимо логическую единицу подать на вход D0 и D1. Если подать сигнал на D0 и D2, то отобразится цифра «5» (рис.6).
Рис.6.
Здесь представлена расширенная таблица, в которой мы видим не только ожидаемую цифру, но и те сегменты (a — g), которые составят эту цифру.
Таблица 2.
Вспомогательными являются 1, 6 и 7-ой выводы микросхемы (S, M, К соответственно).
На схеме (рис.6) 6-ой вывод «М» заземлен (на минус питания) и на выходе микросхемы присутствует положительное напряжение для работы с индикатором с общим катодом. Если используется индикатор с общим анодом, то на 6-ой вывод следует подать единицу.
Если на 7-ой вывод «К» подать логическую единицу, то знак индикатора гасится, ноль разрешает индикацию. В схеме данный вывод заземлен (на минус питания).
На первый вывод дешифратора подана логическая единица (плюс питания), что позволяет отображать преобразованный код на индикатор. Но если подать на данный вывод (S) логический ноль, то входы перестанут принимать сигнал, а на индикаторе застынет текущий отображаемый знак.
Стоит заметить одну интересную вещь: мы знаем, что тумблер D0 включает цифру «1», а тублер D1 цифру «2». Если нажать оба тумблера, то высветится цифра 3 (1+2=3). И в других случаях на индикатор выводится сумма цифр, составляющих эту комбинацию. Приходим к выводу, что входы дешифратора расположены продуманно и имеют очень логичные комбинации.
Также вы можете посмотреть видео к этой статье.
Существуют такие параметры, для которых было бы удобнее выдавать объективную информацию, чем просто индикацию. Например, температура воздуха на улице или время на будильнике. Да, все это можно было бы сделать на светящихся лампочках или светодиодах. Один градус – один горящий светодиод или лампочка и тд. Но считать эти светлячки – ну уж нет! Но, как говорится, самые простые решения – самые надежные. Поэтому, долго не думая, разработчики взяли простые светодиодные полосы и расставили их в нужном порядке.
В начале двадцатого века с появлением электронных ламп появились первые газоразрядные индикаторы
С помощью таких индикаторов можно было вывести цифровую информацию в арабских цифрах. Раньше именно на таких лампах делали различную индикацию для приборов и других электронных устройств. В настоящее время газоразрядные элементы почти уже нигде не применяются. Но ретро – это всегда модно, поэтому, многие радиолюбители собирают для себя и своих близких прекрасные часы на газоразрядных индикаторах .
Минус газоразрядных ламп – кушают много электроэнергии. Про долговечность можно и поспорить. У нас в университете до сих пор в лабораторных кабинетах эксплуатируются частотомеры на газоразрядных индикаторах.
Семисегментные индикаторы
С появлением светодиодов ситуация кардинально изменилась в лучшую сторону. Светодиоды сами по себе потребляют маленький ток. Если расставить их в нужном положении, то можно высвечивать абсолютно любую информацию. Для того, чтобы высветить все арабские цифры, достаточно всего семь светящихся светодиодных полос – сегментов, выставленных определенным образом:
Почти ко всем таким семисегментным индикаторам добавляют также и восьмой сегмент – точку, для того, чтобы можно было показать целое и дробное значение какого-либо параметра
По идее у нас получается восьми сегментный индикатор, но по-старинке его также называют семисегментным.
Что получается в итоге? Каждая полоска на семисегментном индикаторе засвечивается светодиодом или группой светодиодов. В результате, засветив определенные сегменты, мы можем вывести цифру от 0 и до 9, а также буквы и символы.
Виды и обозначение на схеме
Существуют одноразрядные, двухразрядные, трехразрядные и четырехразрядные семисегментные индикаторы. Более четырех разрядов я не встречал.
На схемах семисегментный индикатор выглядит примерно вот так:
В действительности же, помимо основных выводов, каждый семисегментный индикатор также имеет общий вывод с общим анодом (ОА) или общим катодом (ОК)
Внутренняя схема семисегментного индикатора с общим анодом будет выглядеть вот так:
а с общим катодом вот так:
Если семисегментный индикатор у нас с общим анодом (ОА), то в схеме мы должны на этот вывод подавать “плюс” питания, а если с общим катодом (ОК) – то “минус” или землю.
Как проверить семисегментный индикатор
У нас имеются в наличии вот такие индикаторы:
Для того, чтобы проверить современный семисегментный индикатор, нам достаточно мультиметра с функцией прозвонки диодов. Для начала ищем общий вывод – это может быть или ОА или ОК. Здесь только методом тыка. Ну а далее проверяем работоспособность остальных сегментов индикатора по схемам выше.
Как вы видите ниже на фото, у нас загорелся проверяемый сегмент. Таким же образом проверяем и другие сегменты. Если все сегменты горят, то такой индикатор целый и его можно использовать в своих разработках.
Иногда напряжения на мультиметре не хватает для проверки сегмента. Поэтому, берем блок питания , и выставляем на нем 5 Вольт. Чтобы ограничить ток через сегмент, проверяем через резистор на 1-2 Килоома.
Таким же образом проверяем индикатор от китайского приемника
В схемах семисегментные индикаторы соединяются с резисторами на каждом выводе
В нашем современном мире семисегментные индикаторы заменяются жидко-кристаллическими индикаторами, которые могут высвечивать абсолютно любую информацию
но для того, чтобы их использовать, нужны определенные навыки в схемотехнике таких устройств. Поэтому, семисегментные индикаторы до сих пор находят применение, благодаря дешевизне и простоте использования.
Максимально универсальный семисегментный дисплей. Часть первая — Hardware / Хабр
Случилось так, что по наследству мне досталась целая коробка семисегментных индикаторов с гордой надписью «Комплект часы». Давно хотелось пустить её содержимое в дело, а когда дошли руки — оказалось, что внутри целый зоопарк разномастных индикаторов, разных размеров, цветов, с общим катодом и с общим анодом. По количеству штук так двадцать. И чтобы не пилить «очередные часы» пришла идея сделать, собственно, сабж — максимально универсальный семисегментный дисплей.
Что из этого получилось — под катом.
Disclaimer
Описанные ниже устройства являются довольно нишевыми, сделаны мною just for fun, но примененный подход может быть использован для решения аналогичной задачи универсализации там, где это потребуется. Текст разбавлю пояснениями для начинающих. Основная цель — спроектировать единую плату под все имеющиеся индикаторы и различные идеи их использования.
Статья получилась объемная, так что я разделил hardware и software части. К вашему вниманию часть первая — hardware.
Постановка задачи
Что я понимаю под максимальной универсальностью? Спроектировать модуль, с помощью которого или его комбинаций можно создать любой (или практически любой, в разумных пределах) дисплей для отображение информации с использованием этих самых семисегментных индикаторов. В голову приходит сразу с десяток применений — часы, конечно же, куда без них; туда же таймеры, счетчики чего угодно; термометры; табло для разных игр; дисплеи для отображения цифровой информации — курсов валют, индексов бирж и т.п. В общих чертах задача абсолютно тривиальная, но усложняется зоопарком типов индикаторов. В наличии одноразрядные китайские индикаторы с размером цифры 2.3 дюйма (тип
FJ23101, четыре светодиода на сегмент) и 3 дюйма (тип
CL-30011, пять светодиодов на сегмент), разных цветов и с различным типом подключения — с общим катодом и с общим анодом. Чтобы покрыть использование всех этих типов пришлось посидеть над схемой и разводкой, которая давала бы возможность без изменения топологии печатной платы управлять разными индикаторами. Поискав вечерок в интернете мне не удалось найти универсальных решений или схем, что и стало поводом для написания данной статьи.
По приведенным примерам использования становится понятно, что модуль должен поддерживать различную разрядность, от одной цифры для простых счетчиков событий, до шести для индексов некоторых финансовых бирж. Я решил ограничиться двумя цифрами для большего трехдюймового размера и тремя для меньшего, с возможностью подключения еще одного модуля в виде slave-а.
При выборе управляющей части долго думать не пришлось, выбор сразу пал на готовые модули ESP-07 на контроллере ESP8266 от Espressif. Дешевизна и простота использования этих модулей, возможность легкого подключения к Интернету, обширная комьюнити разработчиков и элементарность программирования этого контроллера отмели все другие варианты.
Приступим к деталям
Начнем с питания семисегментных индикаторов большого размера, где каждый сегмент представляет собой цепочку из нескольких последовательно включенных светодиодов. Такие дисплеи уже не получится зажечь «цифровыми» уровнями напряжения, так как падение на цепочке светодиодов больше этого значения. Конкретное значение указывается в даташите на дисплей, оно зависит от характеристик светодиодов, цвета и их количества и может варьироваться от 6 до 12 Вольт. Ток через каждый сегмент также превышает допустимые значения тока через отдельный пин для большинства контроллеров и составляет от 20 до 50 мА. Соответственно, нужно использовать напряжение 12 Вольт и коммутирующие ключи для управления сегментами и общими выводами. Также не стоит забывать о динамической индикации — последовательном переключении разрядов с частотой превышающей частоту восприятия глаза человека. Это позволяет значительно снизить энергопотребление практически без потери визуальной яркости дисплея.
Общее питание было решено брать от порта USB, как наиболее универсального стандарта на данный момент. После непродолжительного гугления я выбрал готовый модуль повышающего DC-DC преобразователя на МТ3608. Он компактный, дешевый (<0.5$), регулируемый, с достаточно высоким КПД — всё что нужно для наших целей. От резервного питания отказался, так как под рукой есть Интернет, где можно получить актуальную информацию в любой момент.
Питание цифровой части обеспечит линейный low-dropout стабилизатор LM1117-3.3, классическое решение для нетребовательных применений.
Теперь по транзисторным ключам.
Для управления индикатором с общим катодом на сегменты нужно подавать плюс питания, общий контакт, катод, подключить к земле. Для данных целей удобно использовать микросхемы источников тока (source drivers IC), как пример UDN2981. На картинке ниже подключение индикатора к драйверу и упрощенная схема одной ячейки для лучшего понимания пути прохождения тока. Стоит заметить, что в классической схеме должны быть токоограничивающие резисторы в цепи каждого сегмента, они упущены по причинам использования другого метода ограничения тока — МАХ7219 имеет изменять скважность управляющих импульсов, что в сумме с возможность регулировки напряжения питания индикаторов даст необходимый результат.
Для индикаторов с общим анодом — наоборот, общий контакт подключается к плюсу питания, а сегменты коммутируются на землю. В плане управления индикаторы с общим анодом более простые, так как не требуют коммутации высокого напряжения, по этой причине они более распространены. Для управления сегментами удобно использовать микросхему-массив
составных транзисторовДарлингтона (Darlington Transistor Arrays), например всеми любимую
ULN2803.
Значительным преимуществом перед UDN2981 является стоимость, которая в разы меньше. На картинке ниже подключение индикатора к драйверу и упрощенная схема одной ячейки.
Можно заметить, что верхние части схем очень схожи. Пара драйверов UDN2981 и ULN2803 подобрана неспроста. Относительно ножек вход/выход они pin-to-pin совместимы. Это дает возможность сделать универсальное посадочное место на плате добавив всего несколько перемычек под запайку для ножек питания. Бинго!
Чтобы упростить задачу динамической индикации я решил не изобретать велосипед, не городить 595-е сдвиговые регистры, а взять надежное и проверенное решение — специализированный драйвер семисегментного дисплея MAX7219. Эта микросхема умеет хранить во внутренней памяти до восьми цифр и самостоятельно коммутировать разряды с заранее установленной яркостью. По этой причине и не нужны резисторы последовательно с каждым сегментом. Управляется драйвер по шине SPI. Как по мне, микросхема имеет всего один недостаток — высокую стоимость. Имела. Пришли китайцы и наклепали полный функциональный аналог со стоимостью в несколько центов. Название такое же, правда маркировка отличается, отсутствует оригинальный логотип Maxim. В работе отличий не замечено, временные диаграммы такие же, не греется, отказов пока не было. Но для ответственных применений все-таки рекомендую ставить дорогой оригинал.
Вот такой набор MAX7219-MATRIX-KIT можно купить на Ali и в локальных магазинах для ардуинщиков по цене в четыре раза ниже оригинального драйвера MAX7219. Да-да, вы меня правильно поняли, набор с матрицей, платой и рассыпухой. Дешевле. В четыре раза. Выбор очевиден же?
Пока всё звучит очень хорошо и просто, берём драйвер дисплея, который всё делает за нас, в зависимости от типа индикатора ставим нужные ключи и вуа-ля! Все почти так и есть, кроме одного «но». MAX7219 рассчитан на работу с дисплеями с общим катодом с напряжением сегмента до 5В и никак иначе. Что это дает в сухом остатке? Перебирая разряды индикаторов драйвер подключает их на землю, поддерживая высокий уровень на катодах остальных разрядов. А теперь вернемся к схемам выше и проанализируем, что будет в случае с индикатором с общим анодом.
Нетрудно понять, что мы получим инверсию — нужный разряд будет выключен, все остальные — активные. Вместо динамической индикации на дисплее будет сплошной засвет от соседних разрядов. Чтобы избежать такой ситуации между контроллером и драйвером нужно добавить микросхему инвертирующую логические уровни. Так как максимальное количество разрядов шесть, гуглим «hex inverter» и тут же находим 74hc04. Отлично, а для общего катода вместо микросхемы сделаем перемычки или можно использовать pin-to-pin совместимую микросхему-буфер 74als34/74as34 (hex noninverter, но обязательно с выходом push-pull, открытый коллектор/сток типа 74hc07/74als35 работать не будет из-за отсутствия подтяжки к питанию).
В итоге имеем финальные схемы подключения индикаторов. Для общего катода все просто — драйвер плюс ключи способные подавать на сегменты повышенное напряжение. В даташите на MAX7219 приводится схема подключения индикаторов размера 2.3 дюйма и все это запитано от 5 Вольт, но мои экземпляры наотрез отказались работать при таком низком напряжении, сегмент начинал слабо светиться при подаче 7.2В (1.8В на светодиод). Катоды подключены напрямую к MAX7219, контроллер может прокачивать через себя от 320мА на каждый канал (>45мА на сегмент), чего с головой достаточно для данных типоразмеров индикаторов.
Для общего анода все немного сложнее. Тут уже нужно использовать разнотипные ключи для верхнего и для нижнего плечей плюс инвертирующий буфер для управления разрядами. Инвертирование сигналов для сегментов получаем автоматически при использовании ULN2803.
Как видим, со стороны драйвера MAX7219 и управляющего всем этим ESP8266 нет никакой разницы какой именно тип индикатора установлен в модуле, модифицировать прошивку не требуется.
Замечу, что при использовании внешних драйверов встроенное в контроллер ограничение тока сегментов (которое задается резистором на входе Iset) корректно работать не будет, поэтому интенсивность будем регулировать напряжением питания при максимальной скважности от MAX7219. Драйвер позволяет устанавливать интенсивность скважностью встроенного ШИМ генератора от 1/32 до 31/32 с шагом 1/16.
Для управляющей части на ESP8266 ничего выдумывать не нужно, берем типовое включение модуля, заводим линии SPI на MAX7219, UART для прошивки на внешний разъем. Дополнительно решил добавить преобразователь протокола UART в virtual COM port через USB, его устанавливать необязательно, но места на плате предостаточно, пускай будет такая возможность. Как преобразователь я выбрал СН340, как максимально простое и бюджетное решение. В версии чипа СН340G преобразователь даже не требует частотозадающего кварца, он уже встроен в конвертер, а из обвеса всего пара конденсаторов, проще не бывает.
Полная схема в хорошем качестве тут.
Со схемой определились, теперь можно приступать к топологии печатной платы. Как я уже упоминал, все эти заморочки именно через плату. Хотелось заказать партию плат на нормальном производстве под все вышеперечисленные устройства и не дорабатывать их по месту напильником и скальпелем. После непродолжительных размышлений на плате вырисовались аж целых восемь посадочных мест под семисегментные индикаторы:
- По одному для 2.3″ и 3″ по центру платы — для дисплея с одной цифрой
- По два для 2.3″ и 3″ — для дисплея с двумя цифрами
- Три для 2.3″ — соответственно, для дисплея с тремя цифрами
По краям платы расположены контакты расширения — для подключения справа от ведущего еще одного аналогичного ведомого модуля, но без схемы управления и питания, только индикаторы.
Такая комбинация позволяет расширить разрядность до шести цифр, а так же комбинируя расположение и размер индикаторов изготовить табло для различных, предположим, настольных игр и, конечно же, часы! На контакты продублированы сигналы управления всеми сегментами и выведены линии подключения 3 и 4 разряда для трехдюймовок, и 4, 5 и 6 разряд для двухдюймовок.
Дополнительно, два оставшихся свободных канала MAX7219 подключены к двум цепочкам дискретных светодиодов, расположенных над и под индикаторами. Их, например, можно будет использовать для фоновой подсветки, так сказать эффект ambilight.
Размер платы выбран таким образом, чтобы она не выходила за края индикаторов. В таком случае можно скомбинировать дисплей с одинаковыми расстояниями между цифрами для бо́льших и 6ти-разрядный для меньших индикаторов.
По углам платы расположены четыре отверстия под болт М3 для крепления модуля к несущей конструкции.
Микросхемы, если это было возможно, выбраны в выводных корпусах DIP, так как вопрос миниатюризации для данного устройства не актуален, а на плате они выглядят уже почти стимпанково, на фоне привычных BGA монстров. Это придает особого шарма, как у ламповых усилителей.
Посадочное место под модуль ESP-07 также pin-to-pin совместимо с модулями ESP-12S/E/F.
Плата проектировалась за два вечера, по этой причине использовался простой принцип разводки как у автороутеров — разделение горизонтальных и вертикальных линий на разные слои. В итоге плата получилась двухсторонняя, несложная и визуально красивая.
Плата была отправлена в производство как раз в канун китайского Весеннего Фестиваля и карантинных мер в КНР. Рассматривал три популярные площадки для изготовления мелкосерийных прототипов — PCBway, Seeed и JLCpcb. На последней стоимость получилась на 20 долларов дешевле (при партии в 20 шт) и значимым плюсом для меня было то, что фабрика не закрывалась на праздничную неделю. Суммарная стоимость составила 44 доллара, с учетом доставки 21$ и купона на скидку -5$. В пересчете на плату — чуть больше 2 долларов за штуку. Несмотря на разгар эпидемии коронавируса, от отправки gerber-ов на фабрику к моменту получения прошел 21 день. Качество плат на высоте.
За время пока в Китае изготавливались платы, в местном рекламном агентстве были заказаны основы из прозрачного акрила, куда можно закрепить платы и светорассеиватель. Теперь можно посмотреть, что получилось из задуманного.
Вот так выглядит вариант платы, запаянной под индикаторы с общим катодом. На фото указаны названия микросхем и обведены перемычки под запайку.
А вот так — под индикаторы с общим анодом.
На фото ниже различные комбинации индикаторов разных размеров. Как вы можете понять, их также можно удвоить, добавив slave-модуль.
Далее осталось только написать скрипт под конкретную реализацию, чем и займемся в следующей части.
Всем спасибо за внимание!
P.S.: Если кто-то заинтересовался проектом — пишите в личку, осталось еще с десяток плат или могу выслать gerber-файлы.
Как работать с драйверами индикаторов MAX7219 и MAX7221 — radiohlam.ru
Сегодня мы поговорим об очень удобных и полезных микрухах — драйверах MAX7219 и MAX7221. Эти драйвера позволяют управлять семисегментными индикаторами (с общим катодом), светодиодными линейками или просто отдельными светодиодами. Максимум к ним можно подключить по 64 светодиода (ну или, соответственно, по восемь семисегментных индикаторов). Сами драйвера управляются по интерфейсу SPI (режим 0), поддерживая частоту работы интерфейса до 10 МГц. Надо сказать, что драйвер MAX7219 не полностью соответствует нормам SPI (в отличии от MAX7221), но тем не менее его прекрасно можно по SPI программировать, главное — чётко помнить в чём же всё таки заключается несоответствие (позднее расскажу об этом и ещё некоторых отличиях этих микросхем).
Распиновка и назначение ног.
1 — DIN. Последовательный ввод данных. Данные загружаются в 16-ти разрядный сдвиговый регистр по переднему фронту тактового сигнала.
2,3,5-8,10,11 — DIG0-DIG7. Выводы для подключения общих катодов индикаторов. В MAX7219 эти линии при отключении подтягиваются к плюсу, а в MAX7221 переходят в высокоомное состояние (в Z-состояние).
4,9 — GND. Сюда подключается «ноль» питания. Для правильной работы микрухи — к «нулю» должны быть подключены оба вывода.
12 — LOAD у MAX7219 и CS у MAX7221. У MAX7219 данные загружаются в сдвиговый регистр независимо от состояния сигнала LOAD. Запоминаются и поступают к дальнейшей обработке последние 16 принятых бит. Происходит это по переднему фронту сигнала LOAD (то есть только в момент переключения сигнала LOAD из 0 в 1). У MAX7221 данные загружаются в приёмный сдвиговый регистр только когда сигнал CS находится в состоянии низкого уровня (то есть только когда микросхема «выбрана», если говорить в терминах интерфейса SPI). Запоминаются и поступают к обработке также последние 16 принятых бит, происходит это также по переднему фронту сигнала CS.
13 — CLK. Вход тактирования. Как я уже сказал, микросхемы совместимы с SPI Mode 0, т.е. в отсутствии передачи на линии тактирования низкий уровень, по переднему фронту сигнала CLK происходит считывание данных со входа, по заднему — сдвиг (подробнее о том, как это работает — почитайте теорию SPI по ссылке в начале статьи).
14-17, 20-23 — SEG A-SEG G, DP. Выводы для подключения сегментов семисегментных индикаторов. В MAX7219 эти линии при отключении подтягиваются к GND, а в MAX7221 переходят в высокоомное состояние (в Z-состояние).
18 — ISET. К этому выводу подключается резистор (вторая нога резистора — к плюсу), позволяющий задавать пиковый ток сегмента и таким образом устанавливать яркость свечения сегментов. Минимальное сопротивление этого резистора должно быть 9,53 кОм, что примерно соответствует току сегмента 40мА. Ток, текущий через ISET номинально в 100 раз меньше пикового тока сегмента. Из даташита совершенно непонятно, одинаково ли падение напряжения на этом резисторе, но если считать, что оно одинаково, то это даст такую формулу для расчёта резистора: R=9,53*40/Ipk, где Ipk — требуемый пиковый ток сегмента. Подключив к этой ноге переменный резистор — можно регулировать яркость свечения сегментов.
19 — V+. Сюда подключается «+» питания.
24 — DOUT. Последовательный вывод данных. На этом выводе появляются принятые на входе DIN данные c задержкой в 16 с половиной тактов. Почему именно 16.5, а не 16 или 17? Потому что в SPI первая половина такта (после переднего фронта для MODE 0) — чтение, вторая половина такта (задний фронт для режима MODE 0) — сдвиг, а данные появятся на выходе только после сдвига. С помощью DOUT можно каскадно соединить несколько драйверов, при этом выход (DOUT) первого драйвера подключается ко входу (DIN) второго драйвера, выход второго — ко входу третьего и т.д.
Управляется MAX7219/MAX7221 через специальные регистры. Данные, как я уже говорил, загружаются в микросхему по SPI, в виде 16-ти битных пакетов (помните, на входе 16-ти битный сдвиговый регистр), старшим битом вперёд. В пакетах содержится адрес регистра, к которому обращаются, и данные, которые в него нужно загрузить.
Формат пакета:
Карта регистров:
Имя регистра | Адрес регистра | |||||
---|---|---|---|---|---|---|
bin | hex | |||||
D15-D12 | D11 | D10 | D9 | D8 | ||
No-op | XXXX | 0 | 0 | 0 | 0 | X0h |
Digit 0 | XXXX | 0 | 0 | 0 | 1 | X1h |
Digit 1 | XXXX | 0 | 0 | 1 | 0 | X2h |
Digit 2 | XXXX | 0 | 0 | 1 | 1 | X3h |
Digit 3 | XXXX | 0 | 1 | 0 | 0 | X4h |
Digit 4 | XXXX | 0 | 1 | 0 | 1 | X5h |
Digit 5 | XXXX | 0 | 1 | 1 | 0 | X6h |
Digit 6 | XXXX | 0 | 1 | 1 | 1 | X7h |
Digit 7 | XXXX | 1 | 0 | 0 | 0 | X8h |
Decode Mode | XXXX | 1 | 0 | 0 | 1 | X9h |
Intensity | XXXX | 1 | 0 | 1 | 0 | XAh |
Scan Limit | XXXX | 1 | 0 | 1 | 1 | XBh |
Shutdown | XXXX | 1 | 1 | 0 | 0 | XCh |
Display Test | XXXX | 1 | 1 | 1 | 1 | XFh |
После подачи питания все регистры сброшены и MAX7219 / MAX7221 находится в остановленном состоянии. Прежде чем использовать драйвер — сначала нужно его настроить (записать в нужные регистры нужные данные).
Данные, записанные в регистрах «Digit0»-«Digit7» определяют состояния сегментов соответствующих семисегментных индикаторов. В зависимости от выбранного режима («No decode», «BCD code B»), эти данные могут интерпретироваться двумя способами.
В режиме «No decode» каждый бит данных в соответствующем регистре «Digit X» определяет состояние одного из сегментов семисегментного индикатора «X» (0 — сегмент погашен, 1 — сегмент горит). Карта сегментов и соответствующие им биты указаны на рисунке справа.
В режиме «BCD code B» 7 младших бит данных, записанных в регистре «Digit X», кодируют отображаемый на семисегментном индикаторе символ, в соответствии с таблицей ниже, а старший бит данных кодирует состояние сегмента DP (0 — сегмент погашен, 1 — сегмент горит).
Таблица кодировки режима «BCD code B»:
Символ | Данные в регистре Digit X | Состояние сегментов индикатора | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
D6-D4 | D3 | D2 | D1 | D0 | A | B | C | D | E | F | G | |
0 | XXX | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
1 | XXX | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
2 | XXX | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
3 | XXX | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 |
4 | XXX | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
5 | XXX | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
6 | XXX | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 |
7 | XXX | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
8 | XXX | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
9 | XXX | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
— | XXX | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
E | XXX | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 |
H | XXX | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 |
L | XXX | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 |
P | XXX | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 |
пусто | XXX | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Режим выбирается индивидуально для каждого из регистров «Digit 0» — «Digit 7», установкой в 0 («No decode») или 1 («BCD code B») соответствующего бита регистра «Decode Mode».
Данные в регистре «Intensity» определяют средний ток сегмента (в долях от пикового тока, заданного резистором на ноге «ISET») в соответствии с таблицей ниже:
Доля от Ipk | D4 — D7 | D3 | D2 | D1 | D0 | HEX код | |
---|---|---|---|---|---|---|---|
MAX7219 | MAX7221 | ||||||
1/32 | 1/16 | XXXX | 0 | 0 | 0 | 0 | X0h |
3/32 | 2/16 | XXXX | 0 | 0 | 0 | 1 | X1h |
5/32 | 3/16 | XXXX | 0 | 0 | 1 | 0 | X2h |
7/32 | 4/16 | XXXX | 0 | 0 | 1 | 1 | X3h |
9/32 | 5/16 | XXXX | 0 | 1 | 0 | 0 | X4h |
11/32 | 6/16 | XXXX | 0 | 1 | 0 | 1 | X5h |
13/32 | 7/16 | XXXX | 0 | 1 | 1 | 0 | X6h |
15/32 | 8/16 | XXXX | 0 | 1 | 1 | 1 | X7h |
17/32 | 9/16 | XXXX | 1 | 0 | 0 | 0 | X8h |
19/32 | 10/16 | XXXX | 1 | 0 | 0 | 1 | X9h |
21/32 | 11/16 | XXXX | 1 | 0 | 1 | 0 | XAh |
23/32 | 12/16 | XXXX | 1 | 0 | 1 | 1 | XBh |
25/32 | 13/16 | XXXX | 1 | 1 | 0 | 0 | XCh |
27/32 | 14/16 | XXXX | 1 | 1 | 0 | 1 | XDh |
29/32 | 15/16 | XXXX | 1 | 1 | 1 | 0 | XEh |
31/32 | 15/16 | XXXX | 1 | 1 | 1 | 1 | XFh |
В регистре «Scan Limit» можно выбрать обслуживаемые драйвером семисегментные индикаторы. Они определяются четырьмя младшими битами загруженного в этот регистр байта. Количество обслуживаемых драйвером индикаторов связано с их частотой обновления. Если задействованы все 8 семисегментных индикаторов, то частота обновления составляет 800 Гц, если меньше, то 8*800/N (N — количество задействованных индикаторов). Поскольку количество обслуживаемых индикаторов влияет на яркость, то не рекомендуется показывать пустые старшие символы простым отключением их от обслуживания в регистре «Scan Limit».
Таблица (обслуживаемые индикаторы, в зависимости от значения в регистре «Scan Limit»):
Номера обслуживаемых индикаторов | Данные в регистре «Scan Limit» | ||||
---|---|---|---|---|---|
D3 — D7 | D2 | D1 | D0 | HEX | |
0 | XXXXX | 0 | 0 | 0 | X0h |
0,1 | XXXXX | 0 | 0 | 1 | X1h |
0,1,2 | XXXXX | 0 | 1 | 0 | X2h |
0,1,2,3 | XXXXX | 0 | 1 | 1 | X3h |
0,1,2,3,4 | XXXXX | 1 | 0 | 0 | X4h |
0,1,2,3,4,5 | XXXXX | 1 | 0 | 1 | X5h |
0,1,2,3,4,5,6 | XXXXX | 1 | 1 | 0 | X6h |
0,1,2,3,4,5,6,7 | XXXXX | 1 | 1 | 1 | X7h |
Регистр «Display test» позволяет провести тестирование исправности сегментов всех подключенных семисегментных индикаторов. При установки младшего бита этого регистра в 1 — драйвер включает все сегменты всех подключенных индикаторов. Чтобы прекратить тест и вернуться в нормальное состояние — нужно записать в младший бит регистра «Display test» ноль.
Регистр «No-op» используется при каскадном подключении драйверов. Для того, чтобы обратиться, например, к третьему драйверу в цепочке, не влияя на работу первых двух, — нужно для первых двух обратиться к регистру «No-op». Поскольку адрес этого регистра равен нулю, то сделать это очень просто: сначала за 16 тактов отправляем данные для третьего регистра, потом устанавливаем линию данных в ноль и отщёлкиваем ещё 2 раза по 16 тактов. В результате первый отправленный пакет будет загружен в третий регистр, а следующие два пакета (загруженные в первый и второй регистры) будут иметь адрес ноль, то есть будут обращаться к регистру «No-op».
А теперь небольшой пример того, как к этим драйверам подключать семисегментные индикаторы. Вместо семисегментных индикаторов могут быть просто диоды (собственно, семисегментный индикатор с общим катодом — это и есть всего лишь восемь светодиодов, у которых объединены катоды). Схема подключения семисегментных индикаторов к драйверу:
Пример готовой платы (лицевая панель контроллера ICPCon) с пятью семисегментными индикаторами и драйвером MAX7219:
Вот и всё. Реализацию SPI на микроконтроллере можно посмотреть по ссылке ниже.
— Программа для контроллера SPI-шлюза.
Замена девятиразрядного семисегментного светодиодного индикатора АЛС318А
Автор pcbdesigner.ru На чтение 4 мин Опубликовано Обновлено
В одной из своих работ столкнулся с семисегментным девятиразрядным индикатором АЛС318, пришлось добывать всю необходимую информацию, копаясь в нескольких источниках.
Учитывая древность данного компонента, было решено заменить его на более современные и доступные индикаторы. Но для всего этого необходимо было познакомиться с его конституцией (геометрическими размерами корпуса), цоколевкой, наконец, распиновкой контактных площадок.
Представленный ниже текст посвящается всем тем, кто только знакомится с семисегментными индикаторами, тем, кому интересно, что это за зверь АЛС318, наконец, всем любителям и собирателям древностей.
Как уже было сказано выше, индикатор АЛС318 – девятиразрядный светодиодный индикатор, излучающий в видимом диапазоне и относящийся к светоизлучающим диодам (LED – light emitting diode). АЛС318А (АЛС318Б, АЛС318В, АЛС318Г) отображает цифровую информацию (включая некоторые буквы алфавита) посредством набора отдельных элементов – семисегментных индикаторов. Девять семисегментных индикаторов составляют девять разрядов данного светодиодного индикатора.
Общая принципиальная схема внутренних соединений семисегментного индикатора представлена на рисунке 1. Каждый из семисегментных индикаторов состоит из отдельных сегментов, получивших условные обозначения буквами латинского алфавита: A, B, C, D, E, F, G.
Рисунок 1 – Внутренняя разводка кристалла семисегментного светодиодного индикатора. Соответствие сегментов их условно-буквенному обозначению.В отдельных случаях к семи сегментам индикатора добавляют точку (это позволяет расширить диапазон представляемой информации), условно обозначаемую буквой латинского алфавита H.
Общая принципиальная электрическая схема внутренних соединений семисегментного индикатора с точкой представлена на рисунке 2.
Рисунок 2 – Внутренняя разводка кристалла семисегментного индикатора с децимальной разделительной точкой. Соответствие сегментов индикатора и децимальной разделительной точки их условно-буквенному обозначению.В тех случаях, когда в одном компоненте требуется совместить несколько, разводка кристаллов осуществляется в соответствии с матричной схемой, при этом общие катоды каждого кристалла имеют общие выводы, а аноды одноименных элементов различных кристаллов объединены общей шиной. Ниже, на рисунке 3, в качестве примера, представлена разводка кристаллов двухразрядного семисегментного индикатора. Указанная схема допускает только мультиплексный режим питания прибора.
Рисунок 3 – Схема соединений двух разрядов семисегментных индикаторовНо, вернемся к нашему семисегментному индикатору АЛС.
АЛС318 представляет собой индикатор монолитной конструкции в одном корпусе прибора которого размещено девять индикаторов, имеющих общие входы для одноименных сегментов нескольких цифр.
Внутренняя разводка кристаллов представлена на рисунке 4, условно графическое обозначение с цоколевкой представлено на рисунке 5, а общий вид самого компонента на рисунке 6.
Рисунок 4 – внутренняя разводка кристаллов семисегментного девятиразрядного индикатора АЛС318 Рисунок 5 – условно-графическое обозначение семисегментного девятиразрядного знакосинтезирующего индикатора АЛС318. Цоколёвка выводов индикатора. Рисунок 6 – Внешний вид семисегментного индикатора АЛС318.Учитывая относительно высокую информативность светодиодного индикатора АЛС318, а также с целью снижения энергопотребления при сохранении яркостных характеристик индикатора, наиболее целесообразен метод управления индикатором в мультиплексном режиме (режиме последовательного стробирования цифр).
Принимая во внимание инерционность зрения для обеспечения восприятия информации без миганий, необходимо частоту возобновления информации для индикаторов, размещаемых на неподвижных объектах поддерживать на уровне 100 Гц. Для приборов индикации, размещаемых на подвижных объектах, подверженных вибрациям, частота возобновления информации должна поддерживаться на уровне, в 5 раз превышающем уровень вибрации. Однако, с точки зрения рационального соотношения уровня сложности схем управления и удобства считывания для объектов, подверженных вибрациям с частотой до 2 кГц, вполне приемлема частота обновления информации 350-375 Гц.
Габаритные и присоединительные размеры девятиразрядного семисегментного индикатора АЛС318 изображены на рисунке 7, схема подключения к параллельному порту компьютера – на рисунке 8.
Рисунок 7 – Габаритные и присоединительные размеры девятиразрядного индикатора АЛС318 Рисунок 8 – Принципиальная электрическая схема подключения индикатора АЛС318 к порту компьютераЗамена индикатора АЛС318 на привычные семисегментные светодиодные индикаторы.
После знакомства с устройством, характеристиками, способом подключения и методом управления индикатором АЛС318 – пришло время вспомнить ради чего всё это затевалось.
Идея по альтернативной замене семисегментному индикатору АЛС318 была заимствована с сайта радиолюбителя Непорожнева Антона (UB4ACJ). В качестве семисегментных индикаторов выбраны трехразрядные семисегментные индикаторы KEM-3361, внутренняя схема разводки кристалла которых представлена на рисунке 9.
Рисунок 9 – Внутренняя разводка кристаллов трехразрядного индикатора KEM3361Принципиальная электрическая схема альтернативного подключения семисегментных индикаторов на замену АЛ318 изображена на рисунке 10, внешний вид переходной печатной платы – на рисунках 11 и 12.
Рисунок 10 – Принципиальная электрическая схема замены индикатора АЛС318 на аналоги Рисунок 11 – Трассировка платы замены семисегментного индикатора АЛС318 на индикаторы KEM-3361. Рисунок 12 – Внешний вид платы замены индикатора АЛС318 на трёхразрядные семисегментные индикаторыОстались вопросы?! По приведенной ссылке можно ознакомиться с документацией на семисегментный девятиразрядный знакосинтезирующий индикатор АЛС318.
|
Двухцветный семисегментный индикатор. Управление семисегментным индикатором. Статическое управление светодиодным индикатором
Наверняка вы уже видели индикаторы — «восьмёрки». Это и есть семисегментный светодиодный индикатор, который служит для отображения цифр от 0 до 9, а также децимальной точки (DP — Decimal point) или запятой.
Конструктивно такое изделие представляет собой сборку светодиодов. Каждый светодиод сборки засвечивает свой знакосегмент.
В зависимости от модели сборка может состоять из 1 — 4 семисегментных групп. Например, индикатор АЛС333Б1 состоит из одной семисегментной группы, которая способна отображать всего лишь одну цифру от 0 до 9.
А вот светодиодный индикатор KEM-5162AS уже имеет две семисегментных группы. Он является двухразрядным. Далее на фото показаны разные светодиодные семисегментные индикаторы.
Также существуют индикаторы с 4-мя семисегментными группами — четырёхразрядные (на фото — FYQ-5641BSR-11). Их можно использовать в самодельных электронных часах.
Как обозначаются семисегментные индикаторы на схемах?
Так как семисегментный индикатор — это комбинированный электронный прибор, то изображение его на схемах мало отличается от его внешнего вида.
Стоит только обратить внимание на то, что каждому выводу соответствует конкретный знакосегмент, к которому он подключен. Также имеется один или несколько выводов общего катода или анода — в зависимости от модели прибора.
Особенности семисегментных индикаторов.
Несмотря на кажущуюся простоту этой детали и у неё есть особенности.
Во-первых, светодиодные семисегментные индикаторы бывают с общим анодом и с общим катодом. Данную особенность следует учитывать при его покупке для самодельной конструкции или прибора.
Вот, например, цоколёвка уже знакомого нам 4-ёх разрядного индикатора FYQ-5641BSR-11 .
Как видим, аноды у светодиодов каждой цифры объединены и выведены на отдельный вывод. Катоды же у светодиодов, которые принадлежат к знакосегменту (например, G ), соединены вместе. От того, какую схему соединений имеет индикатор (с общим анодом или катодом) зависит очень многое. Если взглянуть на принципиальные схемы приборов с применением семисегментных индикаторов, то станет ясно, почему это так важно.
Кроме небольших индикаторов есть большие и даже очень большие. Их можно увидеть в общественных местах, обычно в виде настенных часов, термометров, информеров.
Чтобы увеличить размеры цифр на табло и одновременно сохранить достаточную яркость каждого сегмента, используется несколько светодиодов, включенных последовательно. Вот пример такого индикатора — он умещается на ладони. Это FYS-23011-BUB-21 .
Один его сегмент состоит из 4 светодиодов, включенных последовательно.
Чтобы засветить один из сегментов (A, B, C, D, E, F или G), нужно подать на него напряжение в 11,2 вольта (2,8V на каждый светодиод). Можно и меньше, например, 10V, но яркость тоже уменьшится. Исключение составляет децимальная точка (DP), её сегмент состоит из двух светодиодов. Для неё нужно всего 5 — 5,6 вольт.
Также в природе встречаются двухцветные индикаторы. В них встраиваются, например, красные и зелёные светодиоды. Получается, что в корпус встроено как бы два индикатора, но со светодиодами разного цвета свечения. Если подать напряжение на обе цепи светодиодов, то можно получить жёлтый цвет свечения сегментов. Вот схема соединений одного из таких двухцветных индикаторов (SBA-15-11EGWA).
Если коммутировать выводы 1 (RED ) и 5 (GREEN ) на «+» питания через ключевые транзисторы, то можно менять цвет свечения отображаемых чисел с красного на зелёный. А если же одновременно подключить выводы 1 и 5, то цвет cвечения будет оранжевым. Вот так можно баловаться с индикаторами .
Управление семисегментными индикаторами.
Для управления семисегментными индикаторами в цифровых устройствах используют регистры сдвига и дешифраторы. Например, широко распространённый дешифратор для управления индикаторами серии АЛС333 и АЛС324 — микросхема К514ИД2 или К176ИД2 . Вот пример .
А для управления современными импортными индикаторами обычно используются регистры сдвига 74HC595 . По идее, управлять сегментами табло можно и напрямую с выходов микроконтроллера. Но такую схему используют редко, так как для этого требуется задействовать довольно много выводов самого микроконтроллера. Поэтому для этой цели применяются регистры сдвига. Кроме этого, ток, потребляемый светодиодами знакосегмента, может быть больше, чем ток, который может обеспечить рядовой выход микроконтроллера.
Для управления большими семисегментными индикаторами, такими как, FYS-23011-BUB-21 применяются специализированные драйверы, например, микросхема MBI5026 .
Что внутри семисегментного индикатора?
Ну и немного вкусненького. Любой электронщик не был бы таковым, если бы не интересовался «внутренностями» радиодеталей. Вот что внутри индикатора АЛС324Б1.
Чёрные квадратики на основании — это кристаллы светодиодов. Тут же можно разглядеть золотые перемычки, которые соединяют кристалл с одним из выводов. К сожалению, этот индикатор уже работать не будет, так как были оборваны как раз эти самые перемычки . Но зато мы можем посмотреть, что скрывается за декоративной панелькой табло.
Светодиод (или светоизлучающий диод) представляет собой оптический диод, излучающий световую энергию в виде «фотонов», если он смещен в прямом направлении. В электронике мы называем этот процесс электролюминесценцией. Цвет видимого света, излучаемого СИД, лежит в диапазоне от синего до красного и определяется спектральной излучаемого света, которая, в свою очередь, зависит от различных примесей, которые добавляются в полупроводниковые материалы в процессе их производства.
Светодиоды имеют много преимуществ по сравнению с традиционными лампами и светильниками, и, пожалуй, самым главным из них является их небольшой размер, долговечность, различные цвета, дешевизна и легкая доступность, способность легко взаимодействовать с различными другими электронными компонентами в цифровых схемах.
Но главное преимущество светодиодов состоит в том, что благодаря их малому размеру, некоторые из них могут быть сосредоточены в одном компактном корпусе, образуя так называемый семисегментный индикатор.
Семисегментный индикатор состоит из семи светодиодов (отсюда и его название), расположенных прямоугольником, как показано на рисунке. Каждый из семи светодиодов называется сегментом, поскольку при свечении сегмент образует часть цифры (десятичной или 12-ричной Иногда в пределах одного пакета используется 8-й дополнительной светодиод. Он служит для отображения десятичной точки (DP), позволяя, таким образом, отображать если два или более 7-сегментных индикаторов соединены вместе для представления чисел больше десяти.
Каждый из семи светодиодных сегментов дисплея соединен с соответствующей площадкой контактного ряда, расположенного прямо на прямоугольном пластиковом корпусе индикатора. Светодиодные контакты промаркированы метками от a до g, представляющими каждый отдельный сегмент. Другие контакты светодиодных сегментов соединены между собой и образуют общий вывод.
Итак, прямое смещение, поданное на соответствующие контакты светодиодных сегментов в определенном порядке, заставит некоторые сегменты светиться, а остальные останутся затемненными, что позволяет высветить нужный символ шаблона числа, которое будет отображено на дисплее. Это и позволяет нам представлять каждую из десяти десятичных цифр от 0 до 9 на 7-сегментном индикаторе.
Общий вывод, как правило, используется для определения типа 7-сегментного дисплея. Каждый светодиод дисплея имеет два соединительных вывода, один их которых называется «анод», а другой, соответственно, носит название «катод». Поэтому светодиодный семисегментный индикатор может иметь два типа схемотехнического исполнения — с общий катодом (ОК) и с общим анодом (ОА).
Разница между этими двумя типами дисплеев заключается в том, что в конструкции с ОК катоды всех 7 сегментов непосредственно соединены друг с другом, а в схеме с общим (ОА) анодом между собой соединены аноды всех 7 сегментов. Обе схемы работают следующим образом.
- Общий катод (ОК) — соединенные между собой катоды всех светодиодных сегментов имеет уровень логического «0» или подключен к общему проводу. Отдельные сегменты высвечиваются подачей на их анодный вывод сигнала «высокого» логического уровня или логической «1» через ограничительный резистор для создания прямого смещения отдельных светодиодов.
- Общий анод (ОА) — аноды всех светодиодных сегментов объединены и имеют уровень логической «1». Отдельные сегменты индикатора светятся при соединении каждого конкретного катода с землей, логическим «0» или низкопотенциальным сигналом через соответствующий ограничительный резистор.
В целом семисегментные индикаторы с общим анодом более популярны, так как многие логические схемы могут потребовать больше тока, чем способен отдать источник питания. Также отметим, что дисплей с общим катодом не является прямой заменой в цепи для дисплея с общим анодом. И наоборот — это равноценно включению светодиодов в обратном направлении, и, следовательно, излучение света не произойдет.
Хотя 7-сегментный индикатор можно рассматривать как единый дисплей, он все-таки состоит из семи отдельных светодиодов в рамках одного пакета, и как таковые эти светодиоды нуждаются в защите от перегрузки по току. Светодиоды излучают свет только тогда, когда они смещены в прямом направлении, а количество излучаемого ими света пропорционально прямому току. Это означает только то, что интенсивность свечения светодиода возрастает примерно линейно с увеличением тока. Так что, во избежание повреждения светодиода, этот прямой ток должен контролироваться и ограничиваться до безопасного значения внешним ограничительным резистором.
Такие семисегментные индикаторы называются статическими. Существенным их недостатком является большое количество выводов в пакете. Для устранения этого недостатка применяются схемы динамического управления семисегментными индикаторами.
Семисегментный индикатор завоевал большую популярность среди радиолюбителей, поскольку он удобен в использовании и легок для восприятия.
В этой статье мы поговорим о цифровой индикации.
Семисегментные светодиодные индикаторы предназначены для отображения арабских цифр от 0 до 9 (рис.1).
Такие индикаторы бывают одноразрядные, которые отображают только одно число, но семисегментных групп, объединенных в один корпус может быть и больше (многоразрядные). В этом случае цифры разделяются децимальной точкой (рис.2)
Рис.2.
Индикатор называется семисегментным из-за того, что отображаемый символ строится из отдельных семи сегментов. Внутри корпуса такого индикатора находятся светодиоды, каждый из которых засвечивает свой сегмент.
Буквы и другие символы на таких индикаторах отображать проблематично, поэтому для этих целей используются 16-сегментные индикаторы.
Светодиодные индикаторы бывают двух типов.
В первом из них все катоды, т.е. отрицательные выводы всех светодиодов, объединены вместе и для них выделен соответствующий вывод на корпусе.
Остальные выводы индикатора соединены к аноду каждого из светодиодов (рис.3, а). Такая схема называется «схема с общим катодом».
Также существуют индикаторы, у которых светодиоды каждого из сегментов подключены по схеме с общим анодом (рис.3, б).
Рис.3.
Каждый сегмент обозначен соответствующей буквой. На рисунке 4 представлено их расположение.
Рис.4.
В качестве примера рассмотрим двухразрядный семисегментный индикатор GND-5622As-21 красного свечения. Кстати существуют и другие цвета, в зависимости от модели.
С помощью трехвольтовой батарейки можно включать сегменты, а если объединить группу выводов в кучку и подать на них питание, то можно даже отображать цифры. Но такой метод является неудобным, поэтому для управления семисегментными индикаторами используют регистры сдвига и дешифраторы. Также, нередко, выводы индикатора подключаются напрямую к выходам микроконтроллера, но лишь в том случае когда используются индикаторы с низким потреблением тока. На рисунке 5 представлен фрагмент схемы с использованием PIC16F876A.
Рис.5.
Для управления семисегментным индикатором часто используется дешифратор К176ИД2.
Эта микросхема способна преобразовать двоичный код, состоящий из нулей и единиц в десятичные цифры от 0 до 9.
Чтобы понять, как все это работает, нужно собрать простую схему (рис.6). Дешифратор К176ИД2 выполнен в корпусе DIP16. Он имеет 7 выходных вывода (выводы 9 — 15), каждый из которых предназначен для определенного сегмента. Управление точкой здесь не предусмотрено. Также микросхема имеет 4 входа (выводы 2 — 5) для подачи двоичного кода. На 16-й и 8-ой вывод подается плюс и минус питания соответственно. Остальные три вывода являются вспомогательными, о них я расскажу чуть позже.
Рис.6.
DD1 — К176ИД2
R1 — R4 (10 — 100 кОм)
HG1 —
GND-5622As-21
В схеме присутствует 4 тумблера (можно любые кнопки), при нажатии на них на входы дешифратора подается логическая единица от плюса питания. Кстати питается сама микросхема напряжением от 3 до 15 Вольт. В данном примере вся схема питается от 9-вольтовой «кроны».
Также в схеме присутствует 4 резистора. Это, так называемые, подтягивающие резисторы. Они нужны, чтобы гарантировать на логическом входе низкий уровень, при отсутствии сигнала. Без них показания на индикаторе могут отображаться некорректно. Рекомендуется использовать одинаковые сопротивления от 10 кОм до 100 кОм.
На схеме выводы 2 и 7 индикатора HG1 не подключены. Если подключить к минусу питания вывод DP, то будет светиться децимальная точка. А если подать минус на вывод Dig.2, то будет светиться и вторая группа сегментов (будет показывать тот же символ).
Входы дешифратора устроены так, что для отображения на индикаторе чисел 1, 2, 4 и 8 требуется нажатие лишь одной кнопки (на макете установлены тумблеры, соответствующие входам D0, D1, D2 и D3). При отсутствии сигнала отображается цифра ноль. При подаче сигнала на вход D0 отображается цифра 1. И так далее. Для отображения других цифр требуется нажатие комбинации тумблеров. А какие именно нужно нажимать нам подскажет таблица 1.
Таблица 1.
Чтобы отобразить цифру «3» необходимо логическую единицу подать на вход D0 и D1. Если подать сигнал на D0 и D2, то отобразится цифра «5» (рис.6).
Рис.6.
Здесь представлена расширенная таблица, в которой мы видим не только ожидаемую цифру, но и те сегменты (a — g), которые составят эту цифру.
Таблица 2.
Вспомогательными являются 1, 6 и 7-ой выводы микросхемы (S, M, К соответственно).
На схеме (рис.6) 6-ой вывод «М» заземлен (на минус питания) и на выходе микросхемы присутствует положительное напряжение для работы с индикатором с общим катодом. Если используется индикатор с общим анодом, то на 6-ой вывод следует подать единицу.
Если на 7-ой вывод «К» подать логическую единицу, то знак индикатора гасится, ноль разрешает индикацию. В схеме данный вывод заземлен (на минус питания).
На первый вывод дешифратора подана логическая единица (плюс питания), что позволяет отображать преобразованный код на индикатор. Но если подать на данный вывод (S) логический ноль, то входы перестанут принимать сигнал, а на индикаторе застынет текущий отображаемый знак.
Стоит заметить одну интересную вещь: мы знаем, что тумблер D0 включает цифру «1», а тублер D1 цифру «2». Если нажать оба тумблера, то высветится цифра 3 (1+2=3). И в других случаях на индикатор выводится сумма цифр, составляющих эту комбинацию. Приходим к выводу, что входы дешифратора расположены продуманно и имеют очень логичные комбинации.
Также вы можете посмотреть видео к этой статье.
Или термометров с большими цифрами, трудно найти подходящие индикаторы (типа АЛС), а иногда нужен такой размер, которого вообще нет в продаже. Для этого часто каждый элемент (сегмент) цифр собирают из нескольких обычных круглых светодиодов. Мы предлагаем более совершенный и удобный вариант такого решения, с использованием микросхемы 74HC595. В проекте получились знаки почти 10 сантиметров высоты, что могут быть видны на большие расстояния. При необходимости, большое количество цифр может быть последовательно связана друг с другом через специализированный разъем.
Принципиальная схема
Эта схема представляет собой контроллер одной цифры 7-сегментного дисплея, используя большой набор из 5 светодиодов на сегмент и регистр сдвига для легкого управления микроконтроллером через вход. Каждый из светодиодов, используемых в этом проекте, диаметром 5 мм.
Микросхема ULN2003 помогает усилить ток, протекающий через светодиоды. Резисторы R1 — R8 токоограничивающие для светодиодов, которые в схеме соединены последовательно.
Доброго времени суток! После моего затяжного и вынужденного перерыва, продолжим освоение курса «Программирование Ардуино». В одном из наших предыдущих уроков, мы уже работали с последовательностью светодиодов, теперь пора переходить к следующему этапу обучения. Темой сегодняшней статьи будет – 7-сегментный индикатор.
Знакомство с 7-сегментным индикатором будет состоять из двух частей. В первой части мы поверхностно «пробежимся» по теоретической составляющей, поработаем с «железом» и напишем простенькие программки.
Прошлый раз мы работали с последовательностью из 8 светодиодов, сегодня их также будет 8 (7 – светодиодных полосок и 1 точка). В отличии от предыдущей последовательности, элементы этого набора не выстроенные в ряд (друг за дружкой), а расположены в определённом порядке. Благодаря чему используя лишь один компонент можно вывести 10 цифр (от 0 до 9).
Еще одно существенное отличие, что выделяет данный индикатор на фоне простых светодиодов. У него общий катод (вернее две равноценные ножки 3 и 8, на который заведен катод). Достаточно всего лишь соединить один из катодов с землей (GND ). Аноды у всех элементов индикатора индивидуальные.
Небольшое отступление. Все выше сказанное относится к 7-сегментным индикаторам с общим катодом. Однако существуют индикаторы с общим анодом. Подключение таких индикаторов имеет существенные отличия, поэтому прошу не путать «грешное с праведным». Необходимо четко понимать, какой именно тип семисегментника у вас в руках!
Кроме отличий между простыми светодиодами и 7-сегментными индикаторами, есть и общие черты. Например: индикаторы, как и светодиоды, можно смонтировать в ряд (последовательность) для отображения двух-, трёх-, четырехзначных чисел (разрядов). Однако не советую сильно заморачиваться по поводу самостоятельной сборки сегментных наборов. В продаже «рядом» с одноразрядными индикаторами, продаются и многоразрядные.
Надеюсь, вы не забыли об необходимости использования токоограничивающих резисторов при подключении светодиодов. Это же относится и к индикаторам: на каждый элемент индикатора должен быть подключен свой резистор. 8 элементов (7 + 1) – 8 резисторов.
У меня под рукой оказался семисегментник с маркировкой 5161AS (общий катод). Распиновка контактов:
Принципиальная схема
Как говорил ранее, для того, чтобы включить сегмент «А» подключим к любому общему контакту (3 или 8) «землю», а на вывод 7 подадим 5В питания. Если индикатор с общим анодом, то на анод подаём 5В, а на вывод сегмента «землю»!
Соберём тестовый стенд. Соединяем провода по порядку, начиная с первой ножки, которая идёт на 2-й вывод платы Ардуино. Землю подключим к 8 выводу индикатора.
После того, как стенд собран можно приступать к написанию прошивки.
Для проверки индикатора запустим написанную программу. Выберем элемент «А» и помигаем им.
Теперь помигаем цифрой 2. Для этого включим еще несколько элементов.
Чтобы вывести одну цифру, нужно написать n-число строчек кода. Затруднительно, не находите.
Есть другой путь. Для того, чтобы вывести любую цифру на индикаторе, сначала её нужно представить в виде определенной последовательности бит.
Таблица соответствия.
Если у дисплея общий анод, то 1 нужно заменить на 0, а 0 – на 1!
Столбец hex – представление цифры в байтовом виде (более детально поговорим об этом во второй части).
Число в двоичной системе счисления записывается следующим образом: 0b00000000. 0b – двоичная система. Нули означают, что все светодиоды выключены.
При подключении мы задействовали выводы с 2 по 9. Чтобы включить 2 вывод записываем в него единицу = 0b00000001. За точку отвечает четвёртый бит справа. За чёрточку посередине индикатора отвечает самый последний бит.
Давайте напишем пример вывода цифры 0.
Для уменьшения количества набранных строк воспользуемся циклом, который позволяет «перебрать» все 8 бит. Переменной Enable_segment присваивается значение считываемого бита. После этого текущий вывод устанавливается в соответствующий режим (наличия или отсутствия сигнала ).
Примечание: функция bitRead() считывает состояние указанного бита и возвращает значение состояния (0 или 1). bitRead(x, n) где, x — число, бит которого необходимо считать; n — номер бита, состояние которого необходимо считать. Нумерация начинается с младшего значащего бита (крайнего правого) с номером 0.
И в завершении первой части напишем небольшой счетчик.
led — Как определить распиновку 7-сегментного дисплея, когда данные для него недоступны онлайн?
led — Как определить распиновку 7-сегментного дисплея, когда данные для него недоступны онлайн? — Обмен электротехнического стекаСеть обмена стеков
Сеть Stack Exchange состоит из 178 сообществ вопросов и ответов, включая Stack Overflow, крупнейшее и пользующееся наибольшим доверием онлайн-сообщество, где разработчики могут учиться, делиться своими знаниями и строить свою карьеру.
Посетить Stack Exchange- 0
- +0
- Авторизоваться Подписаться
Electrical Engineering Stack Exchange — это сайт вопросов и ответов для профессионалов в области электроники и электротехники, студентов и энтузиастов.Регистрация займет всего минуту.
Зарегистрируйтесь, чтобы присоединиться к этому сообществуКто угодно может задать вопрос
Кто угодно может ответить
Лучшие ответы голосуются и поднимаются наверх
Спросил
Просмотрено 2k раз
\ $ \ begingroup \ $Я нашел в своем наборе инструментов односимвольный 7-сегментный светодиодный дисплей с необычной распиновкой.Есть один, но я не могу понять, и я даже погуглил номер детали, но безрезультатно.
Номер детали, напечатанный сбоку, — «MAN4840A350G82», и моя камера была достаточно хороша для меня, чтобы показать вам фотографии того, как контакты расположены на каждой стороне дисплея. Других лейблов нет.
Если я не могу найти распиновку в Google, я должен просто предположить какую-то общую распиновку?
Я хочу иметь возможность использовать этот дисплей в схеме, созданной с помощью eagle (да, я использую версию 4.17), но я не хочу выбирать не тот светодиодный дисплей.
Как определить, что представляет каждый вывод на этом дисплее?
Создан 21 июл.
\ $ \ endgroup \ $ 6 \ $ \ begingroup \ $Тестер диодов, батарейка типа «таблетка» или батарея большего размера с соответствующим резистором (1 кОм или около того).Составьте карту каждой комбинации булавок вручную. Поскольку это не мультиплексный дисплей, он должен быть одним катодом или анодом, а несколько другим.
Создан 21 июля ’16 в 18: 582016-07-21 18:58
Прохожий66.3k66 золотых знаков7575 серебряных знаков182182 бронзовых знака
\ $ \ endgroup \ $ 1 \ $ \ begingroup \ $Подайте питание через пары контактов, пока не загорится сегмент.Теперь просто перемещайте один датчик за раз, пока не загорится другой сегмент. Общий штифт между первым и вторым сегментами является общим анодом или общим катодом. Вы должны быть в состоянии определить, является ли это общим анодом или общим катодом. Затем просто проверьте все контакты (с помощью соответствующего щупа на общем соединении), пока не узнаете, какие сегменты к каким контактам подключены.
Создан 21 июля ’16 в 19: 012016-07-21 19:01
\ $ \ endgroup \ $ 1 \ $ \ begingroup \ $Они, как правило, довольно стандартные.Найдите что-то с одинаковым количеством контактов в тех же местах на корпусе того же размера, и это, вероятно, будет такая же распиновка, даже если это другой бренд.
Испытательный источник низкого напряжения с соответствующим ограничением (5 В, 300 Ом, например) и тыкает в булавки.
В зависимости от того, откуда он взялся (т. Е. Если это еда на вынос), он мог быть частично мертв или полностью мертв. Также не редкость иметь узор, который включает в себя элементы (десятичная точка или знак), которые не загораются на некоторых моделях в линейке.
Создан 20 авг.
Экнервал5,4531515 серебряных знаков2323 бронзовых знака
\ $ \ endgroup \ $ \ $ \ begingroup \ $Распиновку можно найти здесь.Я нашел это по артикулу MANXXX, который устарел, и по текущей перекрестной ссылке от Liton.
Хотя, если бы это не было стандартной деталью, проверка с помощью резистора 1 кОм, подключенного последовательно к источнику питания 5 В, выполняется быстро и легко и позволяет проверить работоспособность.
У вас впечатляюще плохая камера — то, что дети называют «картошкой».
Создан 19 окт.
Спехро Пефани305k1212 золотых знаков264264 серебряных знака
\ $ \ endgroup \ $ \ $ \ begingroup \ $У меня такой же дисплей, как на твоей картинке.Я использую цифровой вольтметр, чтобы получить распиновку. На стороне с двумя контактами на каждом конце средний контакт — GND. Держите отрицательный щуп цифрового вольтметра на этом контакте, используйте красный щуп +, чтобы коснуться других контактов, и вы увидите, что каждый сегмент загорается, когда вы переходите от контакта к контакту. Сбоку есть еще один контакт GND с 3 контактами и 2 контактами на другом конце. Сторона, на которой расположены 3 контакта, третий вывод, отсчитываемый от конца к середине, является другим GND.
Создан 12 мар.
\ $ \ endgroup \ $ Электротехнический стек Exchange лучше всего работает с включенным JavaScriptВаша конфиденциальность
Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Принимать все файлы cookie Настроить параметры
Электроника— Нужна помощь в выяснении распиновки семисегментного дисплея
Без изображения дисплея придется угадывать.Всего с 12 контактами у вас, скорее всего, будет: 8 контактов для 7 сегментов и десятичной точки и 4 ОБЩИХ анода или катода — деталь, которую вам придется открыть для себя. Для этого процесса требуется источник питания, который может безопасно зажигать светодиоды. Подойдет мультиметр в режиме проверки диодов, поскольку обычно на щупах имеется около 2 В и некоторое внутреннее сопротивление, которого достаточно, чтобы загореться светодиоды на дисплее, хотя они не будут очень яркими. Я постараюсь перечислить минимальное количество шагов, необходимых для определения распиновки этим методом.
Используя мультиметр, установленный в режим проверки диодов, поместите красный щуп на любой контакт (хотя лучше начинать с краев). Теперь лениво пропустите (т.е. установите контакт) черный щуп через оставшиеся контакты. Если дисплей представляет собой дисплей с общим анодом , вы должны увидеть, что все сегменты конкретной цифры (а не различных цифр ) загорятся последовательно.
В противном случае продолжайте пропускать черный датчик через контакты, пока не загорится какой-либо сегмент.Удерживайте черный щуп на том штыре, от которого сегмент включился. Теперь пропустите красный зонд через другие контакты. Если последовательно загораются все сегменты конкретной цифры, это указывает на отображение с общим катодом .
Другая возможность состоит в том, что ни один сегмент не загорается вообще, несмотря на шаги 1 и 2. Замените красный датчик, если он неподвижен, на черный датчик. Пропустите красный зонд через оставшиеся штыри. Если загораются все сегменты конкретной цифры, то дисплей представляет собой дисплей с общим катодом .
С другой стороны, если ни один сегмент цифры не загорается последовательно при пропускании красного датчика через контакты, но хотя бы один сегмент любой цифры горит, удерживайте красный датчик на его текущем контакте и запустите черный датчик. вместо этого через другие контакты. Если последовательно загораются все сегменты цифры, значит, у вас дисплей с общим анодом .
Обратите внимание на то, что штифт оставался постоянным в любом из описанных выше случаев.
Теперь, когда вы знаете, какой у вас дисплей, вам необходимо определить распиновку для сегментов и общих анодов / катодов. Возьмите бумагу и ручку, чтобы обозначить каждую булавку ее функцией. Создайте таблицу с номерами контактов в одном столбце (контакты 1–12) и функциями контактов (которые вы узнаете) во втором столбце.
- На этом изображении показаны метки сегментов. Во время описанного выше тестирования один зонд (PROBE A) устойчиво удерживался на одном штифте, в то время как другой (PROBE B) был пропущен через другие штифты.Это привело к тому, что все сегменты цифра для включения. Контакт, постоянно подключенный к ДАТЧИКУ A, является ОБЩИМ контактом для цифра, сегменты которой загорелись. Итак, в вашей таблице Pin xx = COMMON для Digit yy .
- Чтобы получить ОБЩИЙ для других цифр, переместите ДАТЧИК A на другой контакт и проведите ДАТЧИКОМ B через другие контакты, пока другая цифра не будет сегменты включались последовательно. Контакт, подключенный к ДАТЧИКУ A, является ОБЩИЙ для этой цифры. Включите это в свою таблицу. Повторяйте, пока не определили ОБЩЕЕ для каждой цифры.
- Наконец, чтобы получить штыри сегмента A — G и DP, поместите ДАТЧИК A на любой из ОБЩИХ, которые есть в вашей таблице, и запустите ДАТЧИК B через другие штыри. Каждый раз, когда загорается сегмент, контакт, подключенный к ДАТЧИКУ B, должен быть связан с меткой этого сегмента в вашей таблице. Например. если сегмент C загорается, когда ДАТЧИК B находится на контакте 10, тогда в таблице должно быть что-то вроде контакт 10 = C . Продолжайте, пока не определите все штыри сегмента.
pt35c Аннотация: стандартный 6-контактный разъем JTAG PT35c транзистор PT31C MPC680 pl25a транзистор pt31C PT33C LVDS дисплей 30-контактный разъем PB36C | Оригинал | ORT8850 J39J38 CON11 CON10 CON14 ORT8850 J35J34 pt35c стандартный 6-контактный разъем JTAG Транзистор PT35c PT31C MPC680 pl25a транзистор pt31C PT33C 30-контактный разъем дисплея LVDS PB36C | |
1999 — QFN «100 pin» УПАКОВКА Аннотация: PIN32 BGA 176 корпус шариков IC-288 280-контактный BGA | Оригинал | ||
lm317 to92 Лист данных Аннотация: LM317 SOT223 uc3843 понижающий lm317 so8 LM317 sot23 uc3843 понижающий преобразователь постоянного тока lm317 TO92 AMC76382 РЕГУЛЯТОР SOT89 ld317 | Оригинал | AIC1722 AIC1730 AIC1526-0CN AMC7638 AMC8878 AMC3526LM AIC1526-1CN AMC3526HM AIC1526-0CS AMC3526LDM lm317 to92 Лист данных LM317 SOT223 uc3843 уйти в отставку lm317 so8 LM317 сот23 uc3843 dc понижающий преобразователь постоянного тока lm317 TO92 AMC76382 РЕГУЛЯТОР SOT89 ld317 | |
pc111 оптрон Аннотация: оптопара PC123 qtc 2630 qtc 2531 optocoupler qtc 2631 qtc 2531 PC817 SOP-4 qtc 2731 PC113 optocoupler pc120 optocoupler | Оригинал | PC120 PS2701-1 Labo-89 SFS-EN-60-950 НЕК-ЭН-60-950 A21409 24 часа pc111 оптопара Оптопара PC123 qtc 2630 qtc 2531 оптопара qtc 2631 qtc 2531 PC817 СОП-4 qtc 2731 Оптрон PC113 pc120 оптопара | |
Розетка WSON 6×8 Аннотация: LEAPER-48 leaper LP48-WSON8-5 ae001 vQFP 128 pin Socket bga TSOP 48 socket LP48-TSOP-56M-R tSSOP 56 socket LP48-SDIP-42PIN | Оригинал | 20-контактный AA001 LP-PLCC-20-PAL20 32-контактный AA006 LP-PLCC-1M32 LP-PLCC-1M32S Розетка WSON 6×8 ЛАПЕР-48 прыгун LP48-WSON8-5 ae001 vQFP 128-контактный разъем bga TSOP 48 розетка LP48-TSOP-56M-R ЦСОП 56 розетка LP48-SDIP-42PIN | |
2000 — PQFP 176 Абстракция: 26CV12 16V8 18V10 20V8 22LV10 MQUAD TQFP 100 розетка 6192FF | Оригинал | 28-контактный pDS4102-28P2SAB » pDS4102-xxxx 16VP8 18V10 20VP8 22V10 26CV12 PQFP 176 16V8 20V8 22LV10 MQUAD Разъем TQFP 100 6192FF | |
2009 — MCP6522 Резюме: MCP3424 MCP3428 MCAL MCP3425 КОД ОБРАЗЦА В C MCP3426 Руководство по выбору продукта Микрочип TC7107 MCP4728 TC1121 | Оригинал | DS21060S DS21060S * MCP6522 MCP3424 MCP3428 MCAL КОД ОБРАЗЦА MCP3425 НА С MCP3426 Руководство по выбору продуктов Микрочип TC7107 MCP4728 TC1121 | |
Нет в наличии Аннотация: абстрактный текст недоступен | Оригинал | T3002 | |
pc111 оптрон Аннотация: qtc 2531 qtc 2630 qtc 2731 qtc 2530 qtc 2631 Lh2571 PC123 оптопара PC923 эквивалент 74ol6000 эквивалент | Оригинал | UL1577 PS71XX-1A PS71XX-2A E72422 VDE0884 BS415 / EC55 BS7002 / EC950 СС-441-01-55 pc111 оптопара qtc 2531 qtc 2630 qtc 2731 qtc 2530 qtc 2631 Lh2571 Оптопара PC123 Эквивалент PC923 74ol6000 эквивалент | |
Нет в наличии Аннотация: абстрактный текст недоступен | OCR сканирование | EPE6117L 79C984A 79C985 EPE6271S 79C850 79C971 79C875 EPF8019GM | |
1999 — КЕРАМИЧЕСКИЙ ПЛОСКИЙ УПАКОВКА 20pin Аннотация: абстрактный текст недоступен | Оригинал | 24-контактный, 20-контактный, 22-контактный, 28-контактный, 16-контактный, 18-контактный, 32-контактный, КЕРАМИЧЕСКИЙ ПЛОСКИЙ УПАКОВКА 20pin | |
2002 — MCP604SL Аннотация: MCP602SN MCP6022 эквивалентный входной идентификатор mic520930 Impala 2002 MCP6022 «перекрестная ссылка» эквивалент MCP617 TC105333 эквивалент lm331 эквивалент MCP6022 | Оригинал | A8405SLH-27 A8405SLH-28 A8405SLH-30 A8405SLH-33 A8405SLH-36 A8405SLH-40 A8405SLH-50 A8188SLT-yy A8205SLH-27 A8205SLH-28 MCP604SL MCP602SN Идентификатор входа эквивалентного MCP6022 mic520930 Импала 2002 MCP6022 «перекрестная ссылка» Эквивалент MCP617 TC105333 эквивалент lm331 Эквивалент MCP6022 | |
2010 — КОД ОБРАЗЦА MCP3425 В C Аннотация: PWM 2000 mcp3426 MCP6522 TC6504 Руководство по выбору продуктов TC6501 TC624 TC623 TC621 | Оригинал | DS21060T DS21060T * КОД ОБРАЗЦА MCP3425 НА С ШИМ 2000 mcp3426 MCP6522 TC6504 Руководство по выбору продуктов TC6501 TC624 TC623 TC621 | |
2003 — допуск j12 Аннотация: 30-контактный соединительный кабель LVDS Разъем LVDS 30-контактный MDR 26-контактный LVDS-разъем 40-контактный разъем NAME 30-контактный IDC MDR 68-контактная конфигурация MDR 14-контактный разъем LVDS Назначение контактов CLINK3V485 | Оригинал | DS90CR485 / 486 DS90CR485 / 486 48 бит, CLINK3V48BT-133 CLINK3V485 / 486 допуск j12 30-контактный соединительный кабель LVDS Разъем LVDS 30 контактов MDR 26-контактный Разъем LVDS 40 контактов НАЗВАНИЕ разъем 30 pin IDC Конфигурация 68 контактов MDR MDR 14-контактный Назначение контактов разъемов lvds CLINK3V485 | |
2013 — idc2x1 Реферат: разъем samtec QSH-090-01 | Оригинал | 180-контактный P7-P16 П7-П16, 180-контактный idc2x1 разъем samtec QSH-090-01 | |
1999 — цоп 48 пин тип2 Аннотация: керамический корпус с шагом 50 мил. Монтаж корпуса BGA и QFP. 64-контактная микросхема FOUR SIDE 48-контактная микросхема qfj 84-контактная QFN. | Оригинал | ||
ктк 2601 Аннотация: оптрон qtc 2531 pc111 qtc 2631 qtc 2530 qtc 2630 qtc 2731 оптрон PC123 qtc 2531 оптрон QTC 3700 | Оригинал | 2013-B 24 часа qtc 2601 qtc 2531 pc111 оптопара qtc 2631 qtc 2530 qtc 2630 qtc 2731 Оптопара PC123 qtc 2531 оптопара QTC 3700 | |
Продукты для решетчатых розеток Аннотация: LFE3-95EA | Оригинал | PN-Q208-GDX160V PN-FB208 / GX160V pDS4102-FB208-C1) PA-FB388 / GX240VA PN-T48 / CLK5510V PN-T100 / CLK5520V PN-S64-CLK5410D Модель300 Решетчатые розетки LFE3-95EA | |
2001 — ЭП20К400Э Аннотация: ep1k10 pci epm9320 64/44-PIN | Оригинал | 250 МГц 25 ГГц3 20KAPEX 20KCAPEX 10KFLEX 10KAFLEX 10KEFLEX 6000 Гибкий-LVDSIP 3000MAX 3000AMAX EP20K400E ep1k10 pci epm9320 64/44-PIN | |
Кабель HDMI1.4 19-контактный разъем Аннотация: «HDMI-разъем» HDMI-кабель РАЗЪЕМ hdmi тип d od32 hdmi «тип C» кабель | OCR сканирование | 34AWG 32AWG 36AWG FZHANG01 SD-68786-001 кабель hdmi 1,4 19-контактный разъем «Разъем HDMI» РАЗЪЕМ для кабеля HDMI hdmi типа d od32 кабель hdmi «тип C» | |
tda7050 smd Аннотация: Клавиатура TDA7050 3 * 4 предусилитель звука OM5300 | OCR сканирование | OM53QO B3CL580 83CL580 OM5300 tda7050 smd TDA7050 клавиатура 3 * 4 OM5300 предусилитель звука | |
RGB14 Реферат: конденсатор СТС1 АН5870К | Оригинал | AN5870K AN5870K RGB14 конденсатор CTC1 | |
41-контактный разъем Аннотация: абстрактный текст недоступен | OCR сканирование | ДЛ1-156П ДЛМ1-156П DLD1-156P DL2-96P ДЛМ2-96П DLD2-96P DLM6-360RC 41-контактный разъем | |
решетка im4a3 Аннотация: im4a3-64 im4a3 решетка Im4a3 128/64 im4a3-128 / 64 IM4A3-256 tqfp 44 socket iM4A3-128 im4a3-192 128-PIN PQFP | Оригинал | 28-контактный pDS4102-28P2SAB » pDS4102-xxxx решетка im4a3 im4a3-64 im4a3 решетка Im4a3 128/64 im4a3-128 / 64 IM4A3-256 tqfp 44 сокет iM4A3-128 im4a3-192 128-контактный PQFP | |
68-контактный разъем PLCC, вид снизу Аннотация: 28-контактный разъем plcc 32-контактный разъем plcc разъем plcc 68 PLCC вид снизу 84-контактный разъем PLCC разъем plcc 32-контактный разъем plcc вид снизу AK84PLCC-PGA 84-контактный разъем PGA AK32PLCC-PGA | Оригинал | AK48TSOP-DIP 68-контактный разъем PLCC, вид снизу 28-контактный разъем plcc 32-контактный разъем plcc гнездо plcc 68 вид снизу PLCC 84-контактный разъем PLCC гнездо plcc 32-контактный разъем plcc вид снизу AK84PLCC-PGA 84-контактный разъем PGA AK32PLCC-PGA |
Все о 7-сегментном дисплее »Сделай сам Usthad
7-сегментный дисплей с управлением от ArduinoЧто такое 7-сегментный дисплей
7-сегментные дисплеи на самом деле представляют собой всего лишь семь светодиодов, выстроенных по определенной схеме.В данном случае это знакомая нам цифра «8». Каждый из семи светодиодов называется сегментом, потому что при его включении сегмент образует часть отображаемой числовой цифры (как десятичной, так и шестнадцатеричной). Дополнительный 8-й светодиод иногда используется для индикации десятичной точки.
Типы 7-сегментного дисплея
На рынке доступны два типа семисегментных дисплеев. Эти дисплеи могут использоваться в зависимости от типа приложения.Две конфигурации семи сегментных дисплеев обсуждаются ниже.
- Дисплей с общим анодом
- Дисплей с общим катодом
7-сегментный дисплей с общим катодом
Общий катод 7-сегментный рабочийВ этом типе дисплея все катодные соединения светодиодных сегментов соединены вместе с логическим 0 или землей. Отдельные сегменты подсвечиваются путем подачи сигнала логической 1 или ВЫСОКОГО уровня через токоограничивающий резистор для прямого смещения отдельных клемм анода от a до g.
7-сегментный дисплей с общим анодом
Общий анод 7-сегментный рабочийВ этом типе дисплея все анодные соединения светодиодных сегментов соединены вместе с логической 1. Отдельные сегменты освещаются путем подачи сигнала логического 0 или НИЗКОГО сигнала через токоограничивающий резистор на катод конкретный отрезок от a до g.
Распиновка 7-сегментного дисплея
Теперь давайте рассмотрим конфигурацию сегментов, чтобы мы знали, какие контакты светятся, какие сегменты.Распиновка 7-сегментного дисплея следующая.
Распиновка 7-сегментного дисплея.Контакты COM соединены внутри и образуют общий контакт. Этот вывод должен быть подключен к GND (общий катод) или 5V (общий анод) в зависимости от типа дисплея.
Как работает 7-сегментный дисплей?
В зависимости от отображаемой десятичной цифры загорается конкретный набор светодиодов. Например, чтобы отобразить числовую цифру 4, нам нужно будет зажечь четыре светодиодных сегмента, соответствующих b, c, f и g.Таким образом, различные цифры от «0 до 9» и символы от «A до F» могут отображаться с использованием 7-сегментного дисплея, как показано.
Артикул:
1. https://www.elprocus.com/types-of-7-segment-displays-and-controlling-ways/
2. https://lastminuteengineers.com/seven-segment-arduino-tutorial/
Распиновка, работа и приложения 7-сегментного дисплея
В этом руководстве мы сделаем базовое введение в 7-сегментный дисплей.Они обычно используются для отображения цифр от 0 до 9, а также нескольких алфавитов (обычно от A до F).
Что такое 7-сегментный дисплей?
Это наиболее распространенное устройство, используемое для отображения цифр и алфавита. Вы можете видеть, как устройства с 7-сегментным дисплеем в телешоу ведут обратный отсчет до «0». Использование светодиодов в дисплеях сделало его более популярным.
С помощью этого дисплея двоичная информация может отображаться в десятичной форме. Его широкий спектр применения — в микроволновых печах, калькуляторах, стиральных машинах, радиоприемниках, цифровых часах и т. Д.
Дисплеи состоят из светодиодов (светоизлучающих диодов) или ЖК-дисплеев (жидкокристаллический дисплей). Светодиод представляет собой диод с P-N переходом, который излучает энергию в виде света, в отличие от обычного диода с P-N переходом, который излучает в виде тепла.
Жидкокристаллические дисплеи (LCD) используют свойства жидких кристаллов для отображения. ЖК-дисплей не будет излучать свет напрямую. Эти светодиоды или ЖК-дисплей используются для отображения необходимых цифр или букв. Одиночный 7 сегментов или количество сегментов, расположенных в порядке, соответствует нашим требованиям.
Конфигурация выводов 7-сегментного дисплея
Обычно эти типы дисплеев доступны в 10-выводном корпусе. Схема контактов этого дисплея показана на рисунке выше. Это электронная схема, состоящая из 10 контактов.
Из 10 контактов 8 являются контактами для светодиодов, а 2 других контакта в середине являются общими контактами, и они имеют внутреннее короткое замыкание. В зависимости от того, является ли общий вывод катодом или анодом, его можно назвать общим катодом или общим анодным дисплеем соответственно.
Их можно приобрести у разных поставщиков. Они имеют форму прямоугольной коробки, аналогичную форме IC, но большего размера.
Номер контакта | Имя контакта | Описание |
---|---|---|
1 | e | Управляет левым нижним светодиодом 7-сегментного дисплея |
2 | d -самый светодиод 7-сегментного дисплея | |
3 | общий | Подключен к земле / Vcc в зависимости от типа дисплея |
4 | c | Управляет правым нижним светодиодом 7-сегментного дисплей |
5 | DP | Управляет светодиодом десятичной точки 7-сегментного дисплея |
6 | b | Управляет верхним правым светодиодом 7-сегментного дисплея |
7 | a | Управляет самым верхним светодиодом 7-сегментного дисплея |
8 | Общий | Подключен к земле / Vcc в зависимости от типа дисплея |
9 | f | Управляет верхним левым светодиодом 7-сегментного дисплея |
10 | g | Управляет средним светодиодом 7-сегментного дисплея |
ОбязательноЛист данных 7-сегментного дисплея
Структурный вид 7-сегментного дисплея
При виде сверху 8 сегментов можно увидеть в виде цифры «8».
Здесь 7 вызываемых сегментов светодиодов присвоены алфавиту от A до G. Прямое смещение конкретного сегмента или светодиода излучает световую энергию, таким образом освещая часть числа. Есть еще один сегмент, обозначенный как H, используемый для отображения точки.
Десятичная точка или точка используется для представления десятичной точки в числах. Например, для отображения 5.5 точка используется для обозначения десятичной точки в этой цифре.
Как правило, в корпусе светодиодов либо все катоды, либо все аноды сегментов объединены в общий вывод.Таким образом, каждый дисплей будет иметь 7 контактов, используемых для отображения цифр, один общий контакт и другой контакт для десятичной / точечной точки
Нижний вид дисплея показан ниже. Вид снизу сегмента показывает 10 контактов сегмента. Это катодные или анодные выводы светодиодов, присутствующих в 7 сегментах. С помощью этих штырей подсвечиваются 7 сегментов.
Внутренняя структура 7-сегментного дисплея
Внутренняя структура дисплея слишком сложна. Внутри устройство будет иметь светодиоды SMD.Его можно разделить на две части: внутреннюю схему и дисплей. Внутренняя схема будет иметь светодиоды, расположенные в прямоугольной форме. Эти две части окружены стеклом, керамикой и пластиком для их защиты.
Работа 7-сегментного дисплея
Работает путем включения необходимых светодиодов на цифре. Управление дисплеем осуществляется с помощью выводов, которые оставлены свободно. При прямом смещении этих выводов в последовательности будет отображаться конкретная цифра или алфавит.В зависимости от типа 7 сегментов выводы сегментов имеют высокий логический уровень или логический ноль, а также аналогично общим выводам.
Например, для отображения цифры «1» необходимо включить сегменты «b» и «c», а остальные сегменты — выключить. Для отображения двух цифр используются два 7 сегмента.
В зависимости от того, является ли общий вывод анодом или катодом, 7 сегментов делятся на следующие типы.
Типы 7-сегментного дисплея
Существуют следующие два типа 7-сегментного дисплея.
- Общий анод (CA)
- Общий катод (CC)
Общий анод
В случае с общим анодом все аноды 8 светодиодов подключены к общей клемме, а катоды остаются свободными. Таким образом, чтобы зажечь светодиод, эти катоды должны быть подключены к логической «0», а анод — к логической «1».
a | b | c | d | e | f | 0 | 0 | 0 | 0 | 0 | 1 | 0 | ||||
1 | 0 | 0 | 1 | 1 | 1 | 90380 | 1 | 0 | 0 | 1 | 0 | 2 | ||||
0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 4 | ||
0 | 1 | 0 | 0 | 1 | 0 | 0 | 5 | |||||||||
0 | 1 | 0 | 0 | 0 | 0 | 0 | 6 | 9017 | 1 | 1 | 1 | 1 | 7 | |||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 9 |
Для отображения нуля в этом сегменте необходимо включить высокий логический уровень на сегментах a, b, c, d, e и f и низкий логический уровень в сегменте «g».Таким образом, в приведенной выше таблице представлены данные о 7 сегментах для отображения цифр от 0 до 9.
Общий катод
Как видно из названия, катод является общим выводом для этого типа из 7 сегментов, а остальные 8 контактов остаются свободными. Здесь низкий логический уровень применяется к общему выводу, а высокий логический уровень — к остальным контактам.
a | b | c | d | e | f | 1 | 1 | 1 | 1 | 1 | 0 | 0 | | ||||
0 | 1 | 1 | 0 | 0 | 0 1 | 90381 | 0 | 1 | 1 | 0 | 1 | 2 | |||||
1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 4 | ||||
1 | 0 | 1 | 1 | 0 | 1 | 1 | 5 | ||||||||||
1 | 0 | 1 | 1 | 1 | 1 | 1 | 6 | 9017 | 0 | 0 | 0 | 0 | 7 | ||||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 9 |
Выше таблица истинности показывает данные, которые должны применяться к 7 сегментам для отображения цифр.Чтобы отобразить цифру «0» на 7 сегментах, к сегментам a, b, c, d, e и f применяется высокий логический уровень, а к сегменту g применяется низкий логический уровень.
Функции 7-сегментного дисплея
- Доступны два режима: общий катод и общий анод.
- Доступен в различных размерах, таких как 9,14 мм, 14,20 мм, 20,40 мм, 38,10 мм, 57,0 мм и 100 мм (обычно используемый / доступный размер — 14,20 мм).
- Доступные цвета: белый, синий, красный, желтый и зеленый (обычно используется Res).
- Слаботочный режим.
- Дисплей лучше, ярче и крупнее, чем у обычных ЖК-дисплеев.
- Потребление тока: 30 мА / сегмент.
- Пиковый ток: 70 мА.
Приложения
- 7-сегментные приложения применяются в основном в цифровых калькуляторах, электронных счетчиках, цифровых часах, цифровых часах, радиочасах и т. Д.
- Сегодня в большинстве приложений используются ЖК-дисплеи из-за низкого потребления тока.
- Используется в приложениях, где требуется увеличить размер шрифта.
- Независимый микроконтроллер, поэтому используется в небольших схемных проектах.
- Используется в сочетании с четырьмя сегментами для отображения значения измерения / датчика с помощью четырех символов.
- Имеет яркую подсветку, поэтому используется там, где требуется, чтобы дисплей работал в условиях низкой освещенности или темноты.
Правильная разводка 4-значного 7-сегментного дисплея · Один транзистор
Как подключить 4-значные мультиплексированные 7-сегментные дисплеи к платам разработки Arduino. Вам понадобятся токоограничивающие резисторы и транзисторы драйвера.
Семисегментные дисплеи широко используются в часах, счетчиках и других устройствах, которым требуется отображать числовую информацию. Элементы дисплея, которые обычно состоят из светодиодов, подсвечиваются в различных комбинациях для обозначения арабских цифр. У них ограниченная способность отображать некоторые символы, потому что всего 7 элементов составляют форму отображаемой фигуры.
Семисегментные дисплеи очень легко найти, и они являются самым дешевым типом дисплеев. В настоящее время действительно существуют модули с такими дисплеями, в которых отображение 4, 8 и более цифр управляется интегральной схемой.Этот драйвер получает цифры для отображения от микроконтроллера (MCU) через последовательную шину. Это экономит много контактов и упрощает программирование, поскольку все современные микроконтроллеры поддерживают общие последовательные протоколы. Примерами таких микросхем являются MAX7219, TM1637 и TM1638. Последние два поддерживают клавиатуру, поэтому вы можете построить лицевую панель с кнопками и дисплеем, используя такие микросхемы.
Но этот пост посвящен простым 4-значным 7-сегментным дисплеям, у которых нет драйвера. Это просто набор светодиодов, соединенных вместе в определенной конфигурации.Поскольку их очень легко получить, многие люди подключают их к плате разработки (обычно Arduino). Давайте посмотрим, как вам следует и как не следует подключать четырехзначный дисплей к Arduino.
Эти устройства имеют 4 цифры, состоящие из 7 светодиодов, плюс дополнительный светодиод для десятичной точки рядом с каждой цифрой. Всего 32 светодиода, которые Arduino должна иметь возможность независимо включать и выключать. Но если вы посмотрите на дисплей, то у него всего 12 контактов. Как такое возможно? Ну, цифры мультиплексированы.У вас есть четыре общих контакта, по одному на каждую цифру. Когда один из этих выводов активен, вы можете управлять одной цифрой с помощью 8-контактного интерфейса (7 сегментов + десятичная точка). Цифры горят последовательно, в быстрой последовательности и воспринимаются как всегда горящие. Четыре общих сигнала и восемь сегментных контактов дают в общей сложности 12 контактов. Взгляните на схему.
Схема 7-сегментных дисплеев с общим катодом и общим анодом
В зависимости от схемы подключения общих контактов, дисплеи бывают двух типов: с общим катодом, когда светодиоды с цифровым сегментом подключаются катодом к контакту для выбора цифры, и с общим анодом.Посмотрите на схему. Нет ничего кроме светодиодов. Никаких токоограничивающих резисторов, никаких транзисторных драйверов. Это означает, что нам нужно добавить их при взаимодействии с Arduino (или любой другой платой разработки или MCU).
Некоторые люди не используют резисторы, потому что они управляют выводами цифр с помощью сигналов ШИМ. Это хороший способ сэкономить резисторы? Нисколько. Светодиод представляет собой диод, и ток, потребляемый диодом, экспоненциально возрастает в зависимости от напряжения. Невозможно сгенерировать правильную ШИМ, которая предотвратила бы токи, превышающие номинальные, протекающие через светодиод, без какого-либо механизма обратной связи.Реализовать такой цикл намного сложнее, чем добавить резистор. Вы можете заставить его работать без резисторов, но вы работаете со светодиодами за пределами их безопасных значений, и вы перегружаете управляющие штифты MCU. Для получения дополнительной информации проверьте это обсуждение.
Другие добавляли резисторы только к выводам цифр. Здесь есть две проблемы. Когда включен только один сегмент, все в порядке. Но если вы включите больше сегментов, ток на цифровом выводе возрастет. То же самое и с падением напряжения на резисторе. В целом яркость светодиода уменьшается с увеличением количества включенных сегментов.И какой ток выводится из вывода MCU, который управляет цифрой? Предполагая 10 мА на светодиодный сегмент, вы получите 80 мА, что может повредить MCU.
Правильный способ подключения мультиплексированного семисегментного дисплея к MCU — это управление цифровыми выводами с помощью транзисторов, при этом ток каждого сегмента должен быть ограничен резистором. Это увеличивает перечень материалов, но, как я сказал в начале, у вас есть возможность использовать модуль дисплея с последовательным драйвером. Я закончил писать этот пост в основном из-за многочисленных проектов на сайтах с высоким рейтингом, которые показывают прямое взаимодействие.
Подключение мультиплексного дисплея к Arduino
Обычно для драйверов подходят любые транзисторы общего назначения. Дисплеи с общим катодом управляются транзисторами NPN с эмиттером, связанным с землей, в то время как дисплеи с общим анодом управляются транзисторами PNP с эмиттером, подключенным к напряжению питания.
Токоограничивающие резисторы на сегментах должны иметь сопротивление не менее 220 Ом для питания 5 В. В следующий раз я определю контакты немаркированного дисплея и подключу его к макетной плате.Нумерация выводов на приведенной выше схеме не одинакова для всех дисплеев.
Урок Arduino — 4-значный 7-сегментный светодиодный дисплей «osoyoo.com
Содержимое- Введение
- Препараты
- О 4-значном 7-сегментном светодиодном дисплее
- Примеры
A Семисегментный дисплей ( SSD ) или семисегментный индикатор , представляет собой форму электронного устройства отображения для отображения десятичных чисел, которое является альтернативой более сложным дисплеям с точечной матрицей.Семисегментные дисплеи широко используются в цифровых часах, электронных счетчиках, основных калькуляторах и других электронных устройствах, отображающих числовую информацию.
В этом уроке мы покажем вам, как работает 4-значный 7-сегментный дисплей и как использовать 4-значный 7-сегментный дисплей с Arduino. Здесь мы используем 4-разрядный 7-сегментный дисплей с общим катодом .
Оборудование
- Плата Osoyoo UNO (полностью совместима с Arduino UNO rev.3) х 1
- 4-значный 7-сегментный светодиодный дисплей x 1
- 74HC595 х 1
- Резистор 200 Ом x 8
- Джемперы
- Кабель USB x 1
- шт. X 1
Программное обеспечение
- Arduino IDE (версия 1.6.4+)
- Библиотека Arduino: TimerOne.h
Можно использовать либо компактный модуль, содержащий четыре 7-сегментных светодиодных дисплея, либо четыре отдельных 7-сегментных дисплея путем их мультиплексирования.
Характеристики- Соответствие RoHS
- Идеальная однородность отображения для сегментных светодиодных индикаторов
- Низкое рассеивание мощности
- Широкий угол обзора
- Совместимость с силой света
- Индивидуальный дизайн по индивидуальным требованиям
Теперь мы посмотрим, как связать 4-значный 7-сегментный дисплей с Arduino.Мы собираемся использовать другой метод для управления этим четырехзначным дисплеем. Давайте посмотрим на распиновку этого 4-значного 7-сегментного дисплея.
Pin Out — 4-значный 7-сегментный дисплей4-значный 7-сегментный светодиодный дисплей имеет 12 контактов. 8 контактов предназначены для 8 светодиодов на каждом из 7 сегментных дисплеев, включая A-G и DP (десятичная точка). Остальные 4 контакта представляют каждую из 4 цифр от D1-D4.
Общий анод или общий катодКаждый сегмент в модуле дисплея мультиплексирован, что означает, что он имеет одни и те же точки подключения анода.И каждая из четырех цифр в модуле имеет свою общую точку подключения катода. Это позволяет включать и выключать каждую цифру независимо. Кроме того, этот метод мультиплексирования превращает огромное количество выводов микроконтроллера, необходимых для управления дисплеем, всего в одиннадцать или двенадцать (вместо тридцати двух)!
Общий анод
Общий катод
Метод мультиплексированияИтак, как мы собираемся отображать число вроде 1234 на этом 4-значном дисплее? Для этого мы собираемся использовать метод под названием мультиплексирование .Мультиплексирование просто: показывает по одной цифре на дисплейном блоке и очень быстро переключается между дисплеями. Из-за постоянного зрения человеческий глаз не может различить, какой дисплей включен или выключен. Человеческий глаз просто визуализирует, что все 4 дисплея постоянно включены. Допустим, нам нужно показать 1234. Сначала мы включаем сегменты, соответствующие «1», и включаем дисплей 1 st . Затем мы посылаем сигналы, чтобы показать «2», выключаем 1-й блок дисплея и включаем 2 и дисплейный блок.Мы повторяем этот процесс для следующих двух чисел, и переключение между отображаемыми единицами должно происходить очень быстро (примерно с задержкой в одну секунду). Поскольку наши глаза не могут уловить изменение, повторяющееся в каком-либо объекте в течение 1 секунды, мы видим, что на дисплее одновременно появляется 1234.
Размер
СекундомерВ этом примере мы будем использовать 4-значный 7-сегментный дисплей для создания секундомера, вы можете видеть, как число увеличивается на одну секунду на 4-значном 7-сегментном дисплее.
Соединение
Создайте схему, как показано ниже:
Схема соединений между 4-значным 7-сегментным дисплеем и платой Osoyoo Uno показана ниже:
4-значный 7-сегментный дисплей | SunFounder Uno |
а | 2 |
б | 3 |
с | 4 |
д | 5 |
e | 6 |
ф | 7 |
г | 8 |
п. | 9 |
D1 | 13 |
D2 | 12 |
D3 | 11 |
D4 | 10 |
Кодовая программа
После завершения вышеуказанных операций подключите плату Arduino к компьютеру с помощью кабеля USB.Зеленый светодиодный индикатор питания (с надписью PWR ) должен загореться. Откройте Arduino IDE и выберите соответствующий тип платы и тип порта для вашего проекта. Затем загрузите следующий скетч на свой Arduino.
Перед загрузкой кода на плату Arduino убедитесь, что вы установили библиотеку Arduino — TimerOne.h .
#include TimerOne .h> // контакты 4-значного 7-сегментного дисплея подключаются к контактам 2-13 соответственно int a = 7; int b = 3; int c = 4; int d = 5; int e = 6; int f = 2; int g = 8; int p = 9; int d4 = 10; int d3 = 11; int d2 = 12; int d1 = 13; long n = 0; // n представляет значение, отображаемое на светодиодном дисплее.Например, при n = 0 отображается 0000. Максимальное значение - 9999. int x = 100; int del = 5; // Установить del как 5; значение - это степень точной настройки часов int count = 0; // Устанавливаем count = 0. Здесь count - это значение счетчика, которое увеличивается на 1 каждые 0,1 секунды, что означает, что 1 секунда считается, когда значение равно 10. установка void () { // устанавливаем все выводы светодиодного дисплея как выходные pinMode (d1, ВЫХОД); pinMode (d2, ВЫХОД); pinMode (d3, ВЫХОД); pinMode (d4, ВЫХОД); pinMode (а, ВЫХОД); pinMode (b, ВЫХОД); pinMode (c, ВЫХОД); pinMode (d, ВЫХОД); pinMode (e, ВЫХОД); pinMode (f, ВЫХОД); pinMode (g, ВЫХОД); pinMode (p, ВЫХОД); Таймер1.инициализировать (100000); // установить таймер длительностью 100000 микросекунд (или 0,1 сек - или 10 Гц => светодиод будет мигать 5 раз, 5 циклов включения и выключения в секунду) Timer1.attachInterrupt (добавить); // сюда прикрепляем сервисную подпрограмму } / *************************************** / пустой цикл () { clearLEDs (); // очищаем 7-сегментный экран дисплея pickDigit (0); // Загорается 7-сегментный дисплей d1 pickNumber ((n / 1000)); // получаем значение тысячи delay (del); // задержка 5 мс clearLEDs (); // очищаем 7-сегментный экран дисплея pickDigit (1); // Загорается 7-сегментный дисплей d2 pickNumber ((n% 1000) / 100); // получаем значение сотни delay (del); // задержка 5 мс clearLEDs (); // очищаем 7-сегментный экран дисплея pickDigit (2); // Загорается 7-сегментный дисплей d3 pickNumber (n% 100/10); // получаем значение десять delay (del); // задержка 5 мс clearLEDs (); // очищаем 7-сегментный экран дисплея pickDigit (3); // Загораем 7-сегментный дисплей d4 pickNumber (n% 10); // Получить значение одной цифры delay (del); // задержка 5 мс } / ************************************* / void pickDigit (int x) // зажигаем 7-сегментный дисплей { // 7-сегментный светодиодный дисплей с общим катодом.Поэтому также используйте digitalWrite, чтобы установить d1 как высокое, и светодиод погаснет. digitalWrite (d1, HIGH); digitalWrite (d2, HIGH); digitalWrite (d3, HIGH); digitalWrite (d4, HIGH); переключатель (x) { case 0: digitalWrite (d1, LOW); // Свет d1 вверх перерыв; Дело 1: digitalWrite (d2, LOW); // Свет d2 вверх перерыв; случай 2: digitalWrite (d3, LOW); // Свет d3 вверх перерыв; дефолт: digitalWrite (d4, LOW); // Свет d4 вверх перерыв; } } // Функция состоит в том, чтобы управлять 7-сегментным светодиодным дисплеем для отображения чисел.Здесь x - отображаемое число. Это целое число от 0 до 9. void pickNumber (int x) { переключатель (x) { дефолт: нуль(); перерыв; Дело 1: один(); перерыв; случай 2: два(); перерыв; случай 3: три(); перерыв; случай 4: четыре (); перерыв; случай 5: пять(); перерыв; case 6: шесть(); перерыв; case 7: Семь(); перерыв; case 8: восемь(); перерыв; case 9: девять(); перерыв; } } void clearLEDs () // очищаем 7-сегментный экран дисплея { digitalWrite (а, НИЗКИЙ); digitalWrite (b, LOW); digitalWrite (c, LOW); digitalWrite (d, LOW); digitalWrite (e, LOW); digitalWrite (f, LOW); digitalWrite (g, LOW); digitalWrite (p, LOW); } void zero () // 7-сегментный светодиодный дисплей 0 { digitalWrite (а, ВЫСОКИЙ); digitalWrite (b, ВЫСОКИЙ); digitalWrite (c, ВЫСОКИЙ); digitalWrite (d, HIGH); digitalWrite (e, HIGH); digitalWrite (f, HIGH); digitalWrite (g, LOW); } void one () // 7-сегментный светодиодный дисплей 1 { digitalWrite (а, НИЗКИЙ); digitalWrite (b, ВЫСОКИЙ); digitalWrite (c, ВЫСОКИЙ); digitalWrite (d, LOW); digitalWrite (e, LOW); digitalWrite (f, LOW); digitalWrite (g, LOW); } void two () // 7-сегментный светодиодный дисплей 2 { digitalWrite (а, ВЫСОКИЙ); digitalWrite (b, ВЫСОКИЙ); digitalWrite (c, LOW); digitalWrite (d, HIGH); digitalWrite (e, HIGH); digitalWrite (f, LOW); digitalWrite (г, ВЫСОКИЙ); } void three () // 7-сегментный светодиодный дисплей 3 { digitalWrite (а, ВЫСОКИЙ); digitalWrite (b, ВЫСОКИЙ); digitalWrite (c, ВЫСОКИЙ); digitalWrite (d, HIGH); digitalWrite (e, LOW); digitalWrite (f, LOW); digitalWrite (г, ВЫСОКИЙ); } void four () // 7-сегментный светодиодный дисплей 4 { digitalWrite (а, НИЗКИЙ); digitalWrite (b, ВЫСОКИЙ); digitalWrite (c, ВЫСОКИЙ); digitalWrite (d, LOW); digitalWrite (e, LOW); digitalWrite (f, HIGH); digitalWrite (г, ВЫСОКИЙ); } void five () // 7-сегментный светодиодный дисплей 5 { digitalWrite (а, ВЫСОКИЙ); digitalWrite (b, LOW); digitalWrite (c, ВЫСОКИЙ); digitalWrite (d, HIGH); digitalWrite (e, LOW); digitalWrite (f, HIGH); digitalWrite (г, ВЫСОКИЙ); } void six () // 7-сегментный светодиодный дисплей 6 { digitalWrite (а, ВЫСОКИЙ); digitalWrite (b, LOW); digitalWrite (c, ВЫСОКИЙ); digitalWrite (d, HIGH); digitalWrite (e, HIGH); digitalWrite (f, HIGH); digitalWrite (г, ВЫСОКИЙ); } void seven () // 7-сегментный светодиодный дисплей 7 { digitalWrite (а, ВЫСОКИЙ); digitalWrite (b, ВЫСОКИЙ); digitalWrite (c, ВЫСОКИЙ); digitalWrite (d, LOW); digitalWrite (e, LOW); digitalWrite (f, LOW); digitalWrite (g, LOW); } void 8 () // 7-сегментный светодиодный дисплей 8 { digitalWrite (а, ВЫСОКИЙ); digitalWrite (b, ВЫСОКИЙ); digitalWrite (c, ВЫСОКИЙ); digitalWrite (d, HIGH); digitalWrite (e, HIGH); digitalWrite (f, HIGH); digitalWrite (г, ВЫСОКИЙ); } void nine () // 7-сегментный светодиодный дисплей 9 { digitalWrite (а, ВЫСОКИЙ); digitalWrite (b, ВЫСОКИЙ); digitalWrite (c, ВЫСОКИЙ); digitalWrite (d, HIGH); digitalWrite (e, LOW); digitalWrite (f, HIGH); digitalWrite (г, ВЫСОКИЙ); } / ****************************************** / void add () { // Переключить светодиод count ++; если (количество == 10) { count = 0; n ++; если (n == 10000) { п = 0; } } }
Рабочий результат
Через несколько секунд после завершения загрузки вы увидите, что число увеличивается на одну секунду на 4-значном 7-сегментном дисплее.Вы можете увидеть это как показано ниже:
Подключение Arduino к 4-значному 7-сегментному дисплею с использованием регистра сдвига 74HC595
Как вы можете видеть на диаграмме, мы используем микросхему 74HC595 в дополнение к arduino uno и 4-значному семисегментному дисплею. 74HC595 — это микросхема регистра сдвига, которая преобразует последовательные данные в параллельные. Эта микросхема сдвигового регистра используется для уменьшения количества цифровых входов / выходов Arduino, необходимых для управления 7-сегментным дисплеем. Как видно из принципиальной схемы, нам нужны только 3 цифровых контакта Arduino (подключенных к регистру сдвига IC) для управления 8-сегментными линиями 4-значного семисегментного дисплея.
Соединение
Создайте схему, как показано ниже:
Все сегменты 7-сегментного дисплея подключены к выводам параллельного вывода данных сдвигового регистра. Контакты синхронизации, защелки и последовательных данных сдвигового регистра подключены к цифровым контактам 6,5 и 4 Arduino соответственно. Каждый из четырех общих контактов анода подключен к уникальному контакту Arduino (9,10,11 и 12) через резистор 200 Ом для ограничения тока.
Кодовая программа
После завершения вышеуказанных операций подключите плату Arduino к компьютеру с помощью кабеля USB.Зеленый светодиодный индикатор питания (с надписью PWR ) должен загореться. Откройте Arduino IDE и выберите соответствующий тип платы и тип порта для вашего проекта. Затем загрузите следующий код в свой Arduino.
Перед компиляцией этого кода необходимо установить библиотеку таймера. Загрузите библиотеку и установите ее в свою библиотеку Arduino.
#include "Timer.h" // включить библиотеку таймера Таймер т; // создать объект таймера длинное число = 0; // убираем переменные int first_digit = 0; int second_digit = 0; int third_digit = 0; int 4th_digit = 0; int timer_event = 0; int CA_1 = 12; int CA_2 = 11; int CA_3 = 10; int CA_4 = 9; int clk = 6; int latch = 5; int data = 4; int count = 0; int digits [4]; int CAS [4] = {12, 11, 10, 9}; номера байтов [10] {B11111100, B01100000, B11011010, B11110010, B01100110, B10110110, B10111110, B11100000, B11111110, B11110110}; // байтовые комбинации для каждого числа 0-9 void setup () { Серийный .begin (9600); // серийный запуск и конфигурация контактов pinMode (CA_1, ВЫХОД); pinMode (CA_2, ВЫХОД); pinMode (CA_3, ВЫХОД); pinMode (CA_4, ВЫХОД); pinMode (clk, ВЫХОД); pinMode (защелка, ВЫХОД); pinMode (данные, ВЫХОД); digitalWrite (CA_1, ВЫСОКИЙ); digitalWrite (CA_2, ВЫСОКИЙ); digitalWrite (CA_3, ВЫСОКИЙ); digitalWrite (CA_4, ВЫСОКИЙ); Серийный номер .println («Введите число от 0 до 9999»); } void loop () { т.Обновить(); // обновление таймера if ( Serial .available ()) {// читать с последовательного порта t.stop (timer_event); // останавливаем таймер, если есть что читать cathode_high (); // очищаем экран Строка s = Serial .readString (); // читаем значение serail число = (длинное) s.toInt (); // конвертируем в int if (number> 9999) {// проверяем, что номер 0-9999 Серийный номер .println («Введите номер от 0 до 9999»); } еще { break_number (число); timer_event = t.каждые (1, display_number); // снова запускаем таймер } } } void break_number (long num) {// разделить входной номер на 4 отдельные цифры первая цифра = число / 1000; цифры [0] = первая_цифра; int first_left = число - (первая_цифра * 1000); вторая цифра = первая левая / 100; цифры [1] = вторая_цифра; int second_left = first_left - (вторая_цифра * 100); третья цифра = вторая слева / 10; цифры [2] = третья_цифра; четвертая_цифра = вторая_лева - (третья_цифра * 10); цифры [3] = четвертая_цифра; } void display_number () {// сканирование cathode_high (); //черный экран digitalWrite (защелка, LOW); // переводим сдвиговый регистр на чтение shiftOut (данные, clk, LSBFIRST, числа [цифры [количество]]); // отправляем данные digitalWrite (CAS [количество], LOW); // включаем соответствующую цифру digitalWrite (защелка, ВЫСОКИЙ); // переводим сдвиговый регистр в режим записи count ++; // подсчитываем цифру if (count == 4) {// ведем счет от 0 до 3 count = 0; } } void cathode_high () {// выключаем все 4 цифры digitalWrite (CA_1, ВЫСОКИЙ); digitalWrite (CA_2, ВЫСОКИЙ); digitalWrite (CA_3, ВЫСОКИЙ); digitalWrite (CA_4, ВЫСОКИЙ); }
Важные строки кода закомментированы в коде.В этом коде вы можете отправить любое число от 0 до 9999 через последовательный монитор (см. Изображение, приведенное выше). Мы используем прерывания таймера Arduino для переключения между цифрами. Сегменты должны включаться и выключаться для каждого числа, хранящегося в массиве байтов. В loop () — последовательные значения читаются и преобразуются в int, а затем в длинные типы данных. Затем эти длинные данные разбиваются на однозначные числа методом break_number () . Мультиплексирование выполняется функцией класса таймера every () , которая вызывает метод display_number () один раз в миллисекунду.Этот метод использует функцию shiftOut () arduino для отправки сигналов в регистр сдвига. Обратите внимание, как штифт защелки становится НИЗКИМ перед отправкой данных и становится ВЫСОКИМ после отправки данных. Функция cathode_high () предназначена для выключения экрана.
Рабочий результат
Через несколько секунд после завершения загрузки откройте Serial Monitor и вы увидите:
Число, которое мы вводим в серийный монитор, будет отображаться на 4-значном 7-сегментном дисплее, мы вводим следующие числа по очереди: 1, 66, 123, 1234, 9999, вы можете увидеть результат, как показано ниже:
.