Как правильно подключить 4-разрядный 7-сегментный индикатор к Arduino. Какая распиновка у 4-разрядного индикатора. Как реализовать динамическую индикацию на 7-сегментном дисплее. Какие компоненты нужны для подключения 4-разрядного индикатора.
Устройство 4-разрядного 7-сегментного индикатора
4-разрядный 7-сегментный индикатор представляет собой четыре отдельных 7-сегментных дисплея, объединенных в одном корпусе. Каждый разряд состоит из 7 сегментов (светодиодов), обозначаемых буквами от A до G, и десятичной точки (DP).
Существует два основных типа 4-разрядных индикаторов:
- С общим анодом — все аноды светодиодов каждого разряда соединены вместе
- С общим катодом — все катоды светодиодов каждого разряда соединены вместе
Распиновка 4-разрядного индикатора обычно включает:
- 8 выводов для подключения сегментов A-G и DP
- 4 общих вывода для каждого разряда
Распиновка 4-разрядного 7-сегментного индикатора
Типичная распиновка 4-разрядного индикатора выглядит следующим образом:
Номер контакта | Назначение |
---|---|
1 | Сегмент E |
2 | Сегмент D |
3 | Десятичная точка DP |
4 | Сегмент C |
5 | Сегмент G |
6 | Общий 4-го разряда |
7 | Сегмент B |
8 | Общий 3-го разряда |
9 | Общий 2-го разряда |
10 | Сегмент F |
11 | Сегмент A |
12 | Общий 1-го разряда |
Обратите внимание, что конкретная распиновка может отличаться у разных моделей индикаторов. Всегда сверяйтесь с документацией на ваш индикатор.
Схема подключения 4-разрядного индикатора к Arduino
Для подключения 4-разрядного 7-сегментного индикатора к Arduino потребуются следующие компоненты:
- 4-разрядный 7-сегментный индикатор
- 8 токоограничивающих резисторов (обычно 220-330 Ом)
- 4 транзистора для управления разрядами (например, NPN 2N2222)
- 4 резистора 1-10 кОм для базы транзисторов
Схема подключения:
- Подключите сегменты A-G и DP через токоограничивающие резисторы к цифровым пинам Arduino
- Подключите общие выводы разрядов к коллекторам транзисторов
- Эмиттеры транзисторов соедините с землей
- Базы транзисторов подключите через резисторы к цифровым пинам Arduino
Принцип динамической индикации
Для управления 4-разрядным индикатором используется метод динамической индикации:
- В один момент времени активен только один разряд
- Разряды быстро переключаются один за другим
- За счет инерционности зрения создается иллюзия постоянного свечения всех разрядов
Алгоритм динамической индикации:
- Выключить все разряды
- Установить сегменты для отображения цифры текущего разряда
- Включить текущий разряд на короткое время (1-5 мс)
- Выключить текущий разряд
- Перейти к следующему разряду
- Повторять шаги 2-5 для всех разрядов
Пример кода для Arduino
Вот пример простого кода для отображения числа на 4-разрядном индикаторе:
«`cpp // Пины для подключения сегментов const int segmentPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // A, B, C, D, E, F, G, DP // Пины для управления разрядами const int digitPins[] = {10, 11, 12, 13}; // Массив для хранения состояний сегментов для цифр 0-9 const byte digits[] = { B11111100, // 0 B01100000, // 1 B11011010, // 2 B11110010, // 3 B01100110, // 4 B10110110, // 5 B10111110, // 6 B11100000, // 7 B11111110, // 8 B11110110 // 9 }; void setup() { // Настройка пинов на выход for (int i = 0; i < 8; i++) { pinMode(segmentPins[i], OUTPUT); } for (int i = 0; i < 4; i++) { pinMode(digitPins[i], OUTPUT); } } void loop() { // Пример отображения числа 1234 displayNumber(1234); } void displayNumber(int number) { for (int i = 0; i < 4; i++) { displayDigit(number % 10, i); number /= 10; delay(5); // Задержка для каждого разряда } } void displayDigit(int digit, int position) { // Выключаем все разряды for (int i = 0; i < 4; i++) { digitalWrite(digitPins[i], HIGH); } // Устанавливаем сегменты для текущей цифры for (int i = 0; i < 8; i++) { digitalWrite(segmentPins[i], bitRead(digits[digit], 7 - i)); } // Включаем нужный разряд digitalWrite(digitPins[position], LOW); } ``` Этот код реализует базовую динамическую индикацию для отображения 4-значного числа на индикаторе.Оптимизация яркости и энергопотребления
Для оптимизации яркости и энергопотребления 4-разрядного индикатора можно применить следующие приемы:
- Использовать ШИМ для управления яркостью сегментов
- Регулировать время свечения каждого разряда
- Применять режим сна микроконтроллера между обновлениями индикации
- Использовать драйверы с встроенным управлением яркостью (например, MAX7219)
Расширенные возможности индикации
4-разрядный 7-сегментный индикатор позволяет реализовать различные эффекты отображения:
- Бегущая строка
- Мигание отдельных разрядов или сегментов
- Плавное изменение яркости
- Отображение букв и специальных символов
- Анимированные переходы между цифрами
Для реализации этих эффектов потребуется доработка базового кода и создание дополнительных функций управления индикацией.
Альтернативные способы подключения
Помимо прямого подключения к Arduino, существуют альтернативные способы управления 4-разрядным индикатором:- Использование сдвиговых регистров (например, 74HC595) для уменьшения количества занимаемых пинов Arduino
- Применение специализированных драйверов индикаторов (MAX7219, TM1637)
- Подключение через расширители портов I2C (например, PCF8574)
- Использование готовых модулей индикации с встроенным управлением
Каждый из этих методов имеет свои преимущества и недостатки в зависимости от конкретной задачи и требований проекта.
Применение дешифраторов в устройствах индикации
Для работы с индикаторами используются как дешифраторы широкого применения, так и специализированные дешифраторы, которые могут работать только с цифровыми индикаторами и не дают возможности использовать их для реализации логических функций.
В состав серии 155 специально включен двоично-десятичный дешифратор 155ИД1 с высоковольтными выходами, выполненными в виде открытого коллектора. Дешифратор имеет четыре входа, которые могут подключаться к выходам 1-2-4-8 любого источника кода, и десять у выходов, которые могут подключаться к катодам газоразрядного цифрового или знакового индикатора, причём анод последнего через резистор сопротивлением 22…91 кОм подключен к полюсу источника постоянного или пульсирующего напряжения
200…300 В (рис. 4.10).
Рис. 4.10. Схема включения дешифратора 155ИД1
Дешифраторы с десятичными выходами, кроме работы с цифровыми индикаторами, могут быть использованы и для других целей (например, для реализации логических функций), однако, в настоящее время в подавляющем большинстве в устройствах цифровой индикации используются семисегментные индикаторы, для работы с которыми используются специализированные дешифраторы или преобразователи семисегментного кода.
Использовать такие дешифраторы для реализации логических функций не представляется возможным.Семисегментные индикаторы (или, как их ещё называют, – знакосинтезаторы) представляют собой электровакуумные светодиодные или жидкокристаллические приборы, имеющие семь стандартно расположенных сегментов и предназначенные для отображения цифровой информации (рис. 4.11). Те, у кого есть электронные часы, хорошо знакомы с такими индикаторами.
Рис. 4.11. Обозначения сегментов семисегментного индикатора
Каждый сегмент имеет своё буквенное обозначение, совпадающее с обозначениями выходов дешифраторов, работающих с такими индикаторами.
Для того чтобы понять принципы реализации дешифраторов для работы с семисегментными индикаторами, составим таблицу истинности (табл. 4.2), в которой сопоставим двоичные коды, соответствующие десятичным цифрам, поданным на входы дешифратора, и активизацию сегментов знакосинтезаторов для отображения соответствующей десятичной цифры. Будем считать, что активизация сегмента соответствует подаче на него уровня логической единицы, хотя на самом деле в большинстве случаев всё происходит наоборот (активным считается уровень логического нуля).
По таблице истинности можно записать булевы выражения для функций реализующих каждый сегмент семисегментного индикатора, по которым легко реализовать его полную схему. Схемная реализация дешифратора для сегментов «a» и «g» семисегментного индикатора приведена на рис. 4.12.
Существует несколько типов семисегментных знакосинтезаторов, для управления которыми используются различные микросхемы преобразователи семисегментного кода.
Таблица 4.2
Цифра | Входы | Выходы | |||||||||
Х1 | Х2 | Х3 | Х4 | a | b | c | d | e | f | g | |
0 1 2 3 4 5 6 7 8 9 | 0 0 0 0 0 0 0 0 1 1 | 0 0 0 0 1 1 1 1 0 0 | 0 0 1 1 0 0 1 1 0 0 | 0 1 0 1 0 1 0 1 0 1 | 1 0 1 1 0 1 1 1 1 1 | 1 1 1 1 1 0 0 1 1 1 | 1 1 0 1 1 1 1 1 1 1 | 1 0 1 1 0 1 1 0 1 1 | 1 0 1 0 0 0 1 0 1 0 | 1 0 0 0 1 1 1 0 1 1 | 0 0 1 1 1 1 1 0 1 1 |
Рис. 4.12. Реализация дешифратора для семисегментных знакосинтезаторов
Полупроводниковые (светодиодные) индикаторы имеют низкие напряжения питания (1,5…3В), токи отдельных сегментов составляют 2…30 мА.
Для сопряжения сегментных индикаторов с микросхемами ТТЛ
логики используются микросхемы К514ИД1, К514ИД2, К514ИД4.
Они представляют собой преобразователи двоично десятичного кода в код управления семисегментным индикатором. Микросхемы К514ИД1 и К514ИД4 имеют открытые эмиттерные выходы и резисторы в коллекторных цепях и используются для управления индикаторами с общим катодом без внешних резисторов. Микросхема К514ИД2 имеет открытые коллекторные выходы и используется с индикаторами, имеющими общий анод (рис. 4.13). При этом требуется применение внешних резисторов. Допустимый ток микросхемы по каждому выходу 22 мА.
Рис. 4.13. Схема включения преобразователя К514ИД2
В КМОП сериях также существуют преобразователи двоичнодесятичного кода в код управления семисегментными индикаторами. Микросхема К176ИД2 позволяет непосредственно подключать такие светодиодные индикаторы, как АЛ305А, АЛС321, АЛС324 и др. (рис.4.14).
Рис. 4.14. Схема включения дешифратора 176ИД2 со светодиодным индикатором АЛ305
Управляющий код подается на входы 1-2-4-8. Через вход S можно управлять инверсией выходных сигналов. Вход К используется для разрешения индикации: при подаче напряжения высокого уровня гасится индицируемый знак, при напряжении низкого уровня разрешается индикация. Вход С управляет работой триггеров памяти на входе микросхемы: при подаче напряжения высокого уровня триггеры превращаются в повторители и не влияют на работу, при подаче напряжения низкого уровня сигналы на входах запоминаются и далее на изменение входных сигналов микросхема не реагирует.
Для управления полупроводниковыми индикаторами в аппаратуре на КМОП интегральных микросхемах могут использоваться также дешифраторы двоичного кода в код управления семисегментным индикатором К564ИД4, К564ИД5 (рис. 4.15). Эти микросхемы предназначены в основном для управления жидкокристаллическими индикаторами, однако, могут применяться и с другими типами индикаторов. Микросхема К564ИД5 имеет в отличие от К564ИД4 входной регистр.
Рис. 4.15. Схема включения дешифратора 564ИД5 со светодиодным индикатором АЛС342
Помимо полупроводниковых индикаторов, для визуальной индикации находят применение вакуумные люминесцентные индикаторы. Они работают при напряжениях 10…30 В и токах сегментов до
десятков миллиампер.
Внутри стеклянного баллона этих индикаторов последовательно один за другим расположены катод прямого накала, сетка, металлический экран и люминесцирующие сегменты, размещенные на токопроводящей пластине. Каждый электрод (катод, сетка и люминесцирующие сегменты аноды) имеет отдельные выводы, подключаемые к общему источнику питания. Управляющие сигналы подаются на аноды индикатора с выходов дешифратора.
При использовании вакуумных люминесцентных индикаторов в устройствах, выполненных на ТТЛ – микросхемах, можно использовать дешифраторы, входящие в серию 514 (рис. 4.16), однако схема достаточно сложна.
Рис. 4.16. Работа дешифратора 514ИД с вакуумными люминесцентными индикаторами
Для непосредственного управления такими индикаторами могут быть использованы микросхемы К564ИД5 и К176ИДЗ. Микросхема К176ИДЗ аналогична К176ИД2, но ее выходные каскады выполнены с открытым стоком (подобно схемам ТТЛ с открытым коллектором). Пример непосредственного включения индикатора на выход преобразователя К564ИД5 в устройствах на КМОП микросхемах приведен на рис. 4.17. Однако яркость свечения индикаторов будет низкой, поскольку напряжение питания не может быть больше рабочего напряжения микросхемы.
Рис. 4.17. Непосредственное подключение вакуумных люминесцентных индикаторов к дешифратору
Для обеспечения работы индикаторов при повышенных напряжениях, а, следовательно и большей яркости, используют согласующие транзисторные каскады, которые служат для согласования нагрузки по напряжению и допустимым токам на выходах микросхем (рис. 4.18). Яркость свечения можно регулировать подбором напряжения питания.
Жидкокристаллические индикаторы характеризуются низкими напряжениями питания (3…15 В) и очень малыми токами (до 15 мкА). Они используются обычно совместно с автономными источниками питания и экономичными КМОП микросхемами. Особенностью управления этими индикаторами является необходимость управления с помощью переменных напряжений (постоянная составляющая не должна быть более 50 мВ). При питании постоянными напряжениями срок службы ЖКИ сокращается.
Для управления ЖКИ удобно использовать микросхемы
К564ИД4 и К564ИД5. На рис. 4.19 приведена схема подключения
микросхемы К564ИД4 к восьмиразрядному индикатору ЦИЖ – 4 (показано подключение только для одного десятичного разряда). Микросхема выдает на выходе Р импульсные сигналы ±5 В формируемые из входной задающей частоты. Дополнительные элементы для управления ЖКИ не требуются. На вход Р микросхемы подается постоянная последовательность импульсов возбуждающего напряжения частотой 50…500 Гц.
Рис. 4.18. Схема включения вакуумных люминесцентных индикаторов для работы с повышенной яркостью
Рис. 4.19. Включение жидкокристаллического индикатора
4.2 ШИФРАТОРЫ
Шифраторы это устройства, предназначенные для преобразования позиционного кода в двоичный. На выходе шифратора появляется многоразрядный двоичный код, соответствующий десятичному номеру входа, на который подан активный логический уровень.
Шифраторы имеют буквенное обозначение ИВ. На рис. 4.20
показано условное графическое обозначение шифратора 155ИВ1.
Рис. 4.20. Шифратор приоритетов 155ИВ1
Для шифраторов должно выполняться условие отсутствия возможности появления активных логических уровней на нескольких входах одновременно. Однако реально выполнить это условие удаётся не всегда. В этом случае каждому входу назначается свой приоритет. Будем считать, что чем больше номер входа i, тем выше его приоритет, а шифратор должен выдавать на выходе двоичный код числа i, если Ii=1, а на все входы, имеющие большой приоритет, поданы нули. Такие шифраторы называются приоритетными шифраторами (или шифраторами приоритетов) и в данном случае описываются таблицей истинности, приведённой в табл. 4.3.
Как правило, шифраторы имеют дополнительные управляющие и информационные входы. Е вход включения шифратора, G выход, свидетельствующий о наличии активного логического уровня (в данном случае нулевого) хотя бы на одном из входов I при включенном состоянии шифратора (G=1 при Ii=1 хотя бы для одного i при E=1), Е0 выход разрешения, свидетельствующий об отсутствии активных логических уровней на входах шифратора при включенном состоянии шифратора (E0=1 при E=1 и Ii=0 для всех i). Из сказанного ясно, что 3-разрядный выходной двоичный код можно считывать только при G=1.
Таблица 4.3
E | I7 | I6 | I5 | I4 | I3 | I2 | I1 | I0 | A2 | A1 | A0 | G | E0 |
0 | Х | Х | Х | Х | Х | Х | Х | Х | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Х | 0 | 0 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 1 | Х | Х | 0 | 1 | 0 | 1 | 0 |
1 | 0 | 0 | 0 | 0 | 1 | Х | Х | Х | 0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 1 | Х | Х | Х | Х | 1 | 0 | 0 | 1 | 0 |
1 | 0 | 0 | 1 | Х | Х | Х | Х | Х | 1 | 0 | 1 | 1 | 0 |
1 | 0 | 1 | Х | Х | Х | Х | Х | Х | 1 | 1 | 0 | 1 | 0 |
1 | 1 | Х | Х | Х | Х | Х | Х | Х | 1 | 1 | 1 | 1 | 0 |
Символом «Х» обозначается произвольное состояние входа микросхемы. |
Выходные управляющие сигналы описываются следующими логическими функциями (на основе построчной записи по табл. 4.3)
G = E
7
∨
i =0
Ii ,
7
E0 = E∏Ii,
i=0
G = E ⋅ E0.
Выходные информационные сигналы описываются следующими логическими функциями (на основе построчной записи по табл. 4.3):
A0 = E (I7 + I7 ⋅ I6 ⋅ I5 + I7 ⋅ I6 ⋅ I5 ⋅ I4 ⋅ I3
+ I7 ⋅ I6 ⋅ I5 ⋅ I4 ⋅ I3 ⋅ I2 ⋅ I1)
A1 = E (I7 + I7 ⋅ I6 + I7 ⋅ I6 ⋅ I5 ⋅ I4 ⋅ I3 + I7 ⋅ I6 ⋅ I5 ⋅ I4 ⋅ I3 ⋅ I2 )
7
A2 = E
∨
i = 4
Ii .
Выходной сигнал Е0 используется для каскадирования приоритетных шифраторов. На рис. 4.21 показана схема приоритетного шифратора 16Х4 (наивысший приоритет имеет вход I15).
Верхний (по схеме) шифратор включается только в том случае, если ни на одном входе нижнего шифратора нет активного логического уровня. Четвертый разряд Аз двоичного числа может быть снят также с выхода G верхнего шифратора. Логические элементы И НЕ выполняют функцию ИЛИ для инверсных сигналов А и G двух шифраторов. Сигнал G=1 только в том случае, если хотя бы на одном из входов I0…I15 присутствует нулевой (активный) логический уровень.
Рис. 4.21. Схема приоритетного шифратора 16Х4
На рис. 4.22 приведено условное графическое обозначение шифратора 555ИВ3. Этот шифратор не содержит дополнительных управляющих входов и выходов, но также является приоритетным. Наивысшим приоритетом обладает вход I9.
Рис. 4.22. Шифратор приоритетов 155ИВ3
Приоритетные шифраторы используются для построения шифраторов различного рода клавиатур, для ввода цифровой информации в системы управления, формирования приоритетов обслуживания в многоканальных системах управления и устройств выбора информационных датчиков. В последнем случае шифраторы позволяют вводить в системы управления достоверную информацию о ходе технологического процесса в случае если есть вероятность поступления сигналов от нескольких датчиков одновременно.
4.3. МУЛЬТИПЛЕКСОРЫ
Мультиплексор – это комбинационная схема, осуществляющая выбор данных от одного из нескольких источников и направляющая их в один приёмник. В литературе мультиплексоры часто называются селекторами-мультиплексорами (Data Selector Multiplexers).
Материал взят из книги Логические автоматы Типовые комбинационные схемы (Илюхин А.В.)
7-сегментный индикатор + драйвер MAX7219 = минимальный дисплей для Arduino
Что-то давно не было обзоров про Arduino-мелочевку.
Сегодня дошли руки до этих деталек и решил их «обозреть»
Тех, кого пугают страшные слова из радиотехники — под кат прошу не заглядывать. дабы не терять свое драгоценное время зря.
Для небольших поделок с Ардуино-образными и другими контроллерами есть множество решений по отображению информации.
Ставить можно от простейших светодиодов, до сложных табло и сенсорных панелей.
В простейших устройствах лично мне понравились светодиодные семисегментные индикаторы требуемой разрядности.
Они достаточно яркие, их видно хорошо на большом расстоянии и они достаточно просты в работе.
Если подключать такой индикатор напрямую к микроконтроллеру — тратится очень много дискретных выходов. Для подключения семисегментных и матричных индикаторов по 3-м проводам компания MAXIM разработала контроллеры MAX7219/MAX7221. Вот об этой связке будет мой обзор.
Сразу скажу, что для тех кто не любит паять, продаются готовые индикаторы за смешные деньги
Я такой тоже использовал в одном из своих проектов, но мне не понравились большие габариты дисплея (особенно по высоте).
Для создания универсального контроллера для своего «Умного дома» приобрел индикаторы и микросхемы россыпью.
Итак были приобретены
7-сегментный четырех-разрядные LED индикаторы с общим катодом и высотой цифр 0.4″
Контроллер 8-сегментного индикатора MAX7219 в корпусе DIP24
Индикаторы приехали в Пермь за 33 дня. Были упакованы в простой мягкий пакет. Ножки воткнуты в кусок пенопласта. Почта России их пощадила:
Размеры 40×16. Размер цифры около 10мм
Количество ножек — 12: 7 сегментов/анодов + точка-анод + 4 общих катода по числу разрядов
Шаг между ножками 2.54мм
Даташит нашел только на аналогичный индикатор
Распиновка ножек индикатора
Драйвера MAX7219 приехали за 35 дней тоже в мелком пакете, наколотые на паролонину.
Даташит на MAX7219/7221
Данные микросхемы работают с индикаторами, имеющими общий катод. К одной микросхеме можно подцепить 8 разрядов. Сами микросхемы 7219 можно цеплять друг к другу каскадом. Еще драйвера MAX7219 можно использовать для работы с матричными светодиодными индикаторами 8×8 С микроконтроллером соединяются по 3-х проводному SPI интерфейсу.
Пора теперь собрать вместе индикатор и его драйвер
Так как я делал только прототип микроконтроллера — то собрал все навесным монтажом на макетной плате.
На той же макетке установлен микроконтроллер ATMEGA 328P-PU из этого обзора и NRF24L01 mini из другого моего обзора.
Миниатюрный блок питания и корпус тоже были приобретены ранее на ТАОБАО
Для монтажа мне очень понравился китайский тефлоновый провод сечением 0.1мм. Разделывается он лучше, чем советский МГТФ и изоляция практически не плавится от паяльника.
Монтаж, конечно, не очень аккуратный, но для отладки прототипа сойдет
Плату подключил через переходник USB/RS232, который ранее использовал при программировании Arduino Pro Mini
Готовый прототип контроллера
Следующий шаг — изготовление контроллера на печатной плате.
Выводы:
Связка индикаторы + драйверы вполне рабочая.
Паять или покупать готовое — выбор за вами.
Кот вот тоже сильно удивлен, как можно было потрать столько времени не на сон
Прочитать про мой «Умный дом» можно в моем блоге
Распиновка 7-сегментного дисплея — ElectronicsHub
Устройства отображения очень полезны во многих встроенных системах, независимо от их типа или размера. Символьный ЖК-дисплей (ЖК-дисплей 16×2) представляет собой простой дисплей, который может отображать различные буквенно-цифровые символы и некоторые специальные символы. С другой стороны, графический ЖК-дисплей (ЖК-дисплей 128 × 64) может отображать растровые изображения (и символы с другим размером шрифта). Не всем проектам/приложениям нужен такой сложный дисплей, поскольку некоторые системы прекрасно справятся с 7-сегментным дисплеем. В этом руководстве мы более подробно рассмотрим некоторые интересные моменты, связанные с 7-сегментным дисплеем, а также рассмотрим распиновку 7-сегментного дисплея.
Outline
Обзор 7-сегментного дисплея
A 7-сегментный дисплей — это один из простейших типов устройств отображения, который может отображать числа от 0 до 9 (вы также можете отображать символы от «A» до «F»). Название «7-сегментный дисплей» означает, что он имеет 7 светодиодов в виде шестиугольных полос, расположенных в виде «8».
Каждый светодиод известен как «сегмент» с именами A, B, C, D, E, F и G. Большинство 7-сегментных дисплеев имеют дополнительный сегмент в виде точки. Технически это 8-сегментный дисплей с 7 сегментами, отвечающими за отображение основных числовых данных, и одним точечным сегментом.
На следующем изображении вы можете увидеть рядом представление типичного 7-сегментного дисплея и названия его сегментов.
Чтобы отобразить определенный номер, вы должны включить или выключить группу сегментов. Например, чтобы отобразить число «0», все сегменты должны быть включены, кроме сегмента «G». Вы можете увидеть, как числа от «0» до «9» будут выглядеть на типичном 7-сегментном дисплее на следующем изображении.
Типы 7-сегментных дисплеев
До сих пор мы говорили только о выходе 7-сегментного дисплея. Но как насчет его внутренней схемы и компонентов? Поскольку каждый сегмент 7-сегментного дисплея представляет собой не что иное, как светодиод, внутренняя схема и компоненты представляют собой не что иное, как группу светодиодов, соединенных по специальной схеме (дополнительный светодиод для точки).
В зависимости от внутреннего соединения светодиодов у нас есть два основных типа 7-сегментных дисплеев. Это общий анод и общий катод.
В 7-сегментном дисплее с общим анодом аноды всех 8 светодиодов соединены вместе и являются общими для всего дисплея. В итоге имеем всего 9контакты/соединения для управления всем 7-сегментным дисплеем (8 катодных контактов 8 светодиодов и один общий анодный контакт).
На следующем рисунке показано внутреннее соединение 7-сегментного дисплея с общим анодом.
Переходя к 7-сегментному дисплею с общим катодом, как вы уже догадались, соединение прямо противоположное. Все катодные выводы 8 светодиодов соединены вместе и сделаны общими.
Существует одна важная вещь, касающаяся 7-сегментных дисплеев с общим анодом и общим катодом, которую вам необходимо запомнить. В случае 7-сегментного дисплея с общим анодом мы подключаем вывод общего анода к V 9.0037 CC (т.е. плюс питания, обычно +5В) все время. Чтобы включить определенный сегмент, мы делаем соответствующий катодный контакт НИЗКИМ.
В случае 7-сегментного дисплея с общим катодом мы все время подключаем вывод общего катода к GND (т. е. к минусу источника питания) и переводим определенный вывод анода в ВЫСОКИЙ уровень, чтобы включить соответствующий сегмент.
Мы узнаем больше об этом, когда увидим распиновку 7-сегментного дисплея для типов с общим анодом и общим катодом.
Распиновка 7-сегментного дисплея
Давайте теперь посмотрим на разводку 7-сегментного дисплея как для типов с общим анодом, так и с общим катодом. Разница на самом деле очень мала, что вы и увидите.
Общий анод
На следующем рисунке показана разводка контактов 7-сегментного дисплея с общим анодом. Обратите внимание, что выводы 3 и 8, которые называются COM, соединены внутри, и в данном случае они являются общими выводами анода (+5 В).
Контакт | Соединение |
1 | Катод Е |
2 | Катод D |
3 | Общий анод |
4 | Катод С |
5 | Катод ДП |
6 | Катод В |
7 | Катод А |
8 | Общий анод |
9 | Катод F |
10 | Катод G |
Чтобы отобразить цифры от «0» до «9» на этом дисплее с общим анодом, мы должны следовать следующей цифровой логике. Здесь «1» указывает на ВЫСОКИЙ логический уровень (+5 В), а «0» указывает на НИЗКИЙ логический уровень (0 В, ЗАЗЕМЛЕНИЕ).
Число для отображения | Сегмент А (Контакт 7) | Сегмент B (контакт 6) | Сегмент С (Контакт 4) | Сегмент D (контакт 2) | Сегмент E (Контакт 1) | Сегмент F (контакт 9) | Сегмент G (Контакт 10) |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 |
2 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
3 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
4 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
5 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
6 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
7 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
9 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
Обратите внимание, что мы не упомянули вывод COM, т. е. общий вывод анода в приведенной выше таблице, поскольку нам нужно постоянно подключаться к +5 В.
Общий катод
Теперь распиновка типа с общим катодом. На следующем изображении показана разводка контактов 7-сегментного дисплея с общим катодом. Распиновка точно такая же, как у обычного типа анода, но разница заключается во внутренней стороне.
Штифт | Соединение |
1 | Катод Е |
2 | Катод D |
3 | Общий катод |
4 | Катод С |
5 | Катод ДП |
6 | Катод В |
7 | Катод А |
8 | Общий катод |
9 | Катод F |
10 | Катод G |
Выводы COM (выводы 3 и 8) в случае 7-сегментного дисплея с общим катодом на самом деле являются выводом с общим катодом, а не выводом анода (в случае типа с общим анодом).
Теперь, чтобы управлять общим катодом, логика просто обратна тому типу общего анода, который мы видели ранее. Чтобы упростить задачу, используйте следующую таблицу в качестве справки.
Число для отображения | Сегмент А (Контакт 7) | Сегмент B (контакт 6) | Сегмент С (Контакт 4) | Сегмент D (контакт 2) | Сегмент Е (Контакт 1) | Сегмент F (контакт 9) | Сегмент G (Контакт 10) |
0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
2 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
3 | 1 | 1 | 1 | 1 | 0 | 0 | 1 |
4 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
5 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
6 | 1 | 0 | 1 | 1 | 1 | 1 | 1 |
7 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
8 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
9 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
Разводка контактов 4-разрядного 7-сегментного дисплея
Особым типом 7-сегментного дисплея является 4-разрядный 7-сегментный дисплей. Он состоит из четырех 7-сегментных дисплеев в одном корпусе. Это очень полезно при разработке часов и таймеров.
Как и одиночные 7-сегментные дисплеи, даже 4-разрядные дисплеи доступны как с общим анодом, так и с общим катодом. На следующем изображении показана типичная разводка контактов 4-разрядного 7-сегментного дисплея.
Обратите внимание, что это, по сути, 4 отдельных 7-сегментных дисплея с соответствующими сегментами и выделенным «общим» выводом (общим анодом или общим катодом).
Штифт | Соединение |
1 | Катод Е |
2 | Катод D |
3 | Общий ДП |
4 | Катод С |
5 | Катод G |
6 | Цифра 4, общий (анод или катод) |
7 | Катод В |
8 | Цифра 3, общий (анод или катод) |
9 | Цифра 2, общий (анод или катод) |
10 | Катод F |
11 | Катод А |
12 | Цифра 1, общий (анод или катод) |
Заключение
7-сегментные дисплеи представляют собой очень простые устройства, которые могут отображать цифры от 0 до 9 и даже символы от A до F. Если ваш проект/приложение предусматривает только отображение чисел (десятичных или шестнадцатеричных), то 7-сегментные Дисплей — самый дешевый вариант. В этом руководстве мы рассмотрели некоторые основы 7-сегментного дисплея, их внутреннюю архитектуру/схему, а также распиновку 7-сегментного дисплея для типов с общим анодом и общим катодом. Наконец, мы также увидели распиновку 4-разрядного 7-сегментного дисплея.
Правильное подключение 4-разрядного 7-сегментного дисплея · Один транзистор
Как подключить 4-разрядный мультиплексированный 7-сегментный дисплей к макетной плате Arduino. Вам понадобятся токоограничивающие резисторы и драйверные транзисторы.
Семисегментные дисплеи широко используются в часах, счетчиках и других устройствах, которым необходимо отображать числовую информацию. Элементы дисплея, которые обычно изготавливаются из светодиодов, подсвечиваются в различных комбинациях, обозначая арабские цифры. Они имеют ограниченную возможность отображать некоторые символы, потому что есть только 7 элементов, составляющих форму отображаемой фигуры.
Семисегментный дисплей очень легко найти, и это самый дешевый тип дисплея. В настоящее время существуют модули с такими дисплеями, где дисплей на 4, 8 и более разрядов управляется интегральной схемой. Этот драйвер получает отображаемые цифры от микроконтроллера (MCU) через последовательную шину. Это экономит много контактов и упрощает программирование, поскольку все современные микроконтроллеры поддерживают распространенные последовательные протоколы. Примерами таких микросхем являются MAX7219, TM1637 и TM1638. Последние два поставляются с поддержкой клавиатуры, поэтому вы можете создавать передние панели с кнопками и дисплеем, используя такие ИС.
Но этот пост посвящен простым 4-разрядным 7-сегментным дисплеям, для которых нет драйвера. Это просто набор светодиодов, соединенных вместе в определенной конфигурации. Поскольку их очень легко получить, многие люди связывают их с отладочной платой (обычно Arduino). Давайте посмотрим, как вам следует и, в основном, как вам не следует подключать 4-разрядный дисплей к Arduino.
Эти устройства имеют 4 цифры, состоящие из 7 светодиодов, плюс дополнительный светодиод для десятичной точки рядом с каждой цифрой. Это в общей сложности 32 светодиода, которые Arduino должна иметь возможность включать и выключать независимо друг от друга. Но если вы посмотрите на дисплей, у него всего 12 контактов. Как это возможно? Ну, цифры мультиплексированы. У вас есть четыре общих вывода, по одному на каждую цифру. Когда один из этих контактов активен, вы можете управлять одной цифрой, используя 8-контактный интерфейс (7 сегментов + десятичная точка). Цифры загораются последовательно, в быстрой последовательности и воспринимаются как постоянно включенные. Четыре общих сигнала и восемь сегментных контактов дают в общей сложности 12 контактов. Взгляните на схему.
Схема 7-сегментных индикаторов с общим катодом и общим анодом
В зависимости от разводки общих контактов, индикаторы бывают двух типов: с общим катодом, где светодиоды разрядного сегмента соединены катодом с выводом выбора разряда и с общим анодом. Посмотрите на схему. Там нет ничего, кроме светодиодов. Никаких токоограничивающих резисторов, драйверов транзисторов. Это означает, что нам нужно добавить их при подключении к Arduino (или любой другой плате разработки или MCU).
Некоторые люди не используют резисторы, потому что они управляют цифровыми выводами с помощью ШИМ-сигналов. Это хороший способ сэкономить некоторые резисторы? Нисколько. Светодиод представляет собой диод, и ток, потребляемый диодом, экспоненциально возрастает в зависимости от напряжения. Невозможно сгенерировать правильный ШИМ, который позволит избежать протекания через светодиод токов выше номинальных без какого-либо механизма обратной связи. Реализация такой петли намного сложнее, чем добавление резистора. Вы можете заставить его работать без резисторов, но вы используете светодиоды за пределами их безопасных номиналов и перегружаете ведущие контакты микроконтроллера. Для получения дополнительной информации проверьте это обсуждение.
Другие добавили резисторы только к цифровым контактам. Здесь есть две проблемы. Когда горит только один сегмент, все нормально. Но если вы включите больше сегментов, ток, потребляемый цифровым выводом, увеличится. Так же как и падение напряжения на резисторе. В целом интенсивность светодиодов уменьшается с увеличением количества включенных сегментов. И какой ток потребляется от вывода MCU, который управляет цифрой? Предполагая 10 мА на сегмент светодиода, вы получаете 80 мА, что может повредить MCU.
Правильный способ подключения мультиплексированного семисегментного дисплея к микроконтроллеру — это управление цифровыми выводами с помощью транзисторов, и каждый сегмент должен быть ограничен по току с помощью резистора. Это увеличивает стоимость материалов, но, как я сказал в начале, у вас есть возможность использовать дисплейный модуль с последовательным драйвером. В итоге я написал этот пост в основном из-за многочисленных проектов на сайтах с высоким рейтингом, которые показывают прямое взаимодействие.
Подключение мультиплексного дисплея к Arduino
Обычно для драйверов подходят любые транзисторы общего назначения.