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

Типы 7-сегментных индикаторов
Существует два основных типа 7-сегментных индикаторов:
1. С общим анодом
В индикаторах с общим анодом все аноды светодиодов соединены вместе и подключаются к положительному питанию. Для включения сегмента на его катод подается низкий уровень (0).
2. С общим катодом
В индикаторах с общим катодом все катоды светодиодов соединены и подключаются к земле (GND). Для включения сегмента на его анод подается высокий уровень (1).
Какой тип выбрать? Это зависит от конкретной задачи, но индикаторы с общим катодом немного проще в подключении и программировании.
Подключение 7-сегментного индикатора к Arduino
Как подключить 7-сегментный индикатор к Arduino? Рассмотрим подключение индикатора с общим катодом:
- Подключите общий катод индикатора к GND Arduino
- Подключите аноды сегментов A-G и DP к цифровым пинам Arduino через резисторы 220-330 Ом
- Запишите, какой сегмент к какому пину подключен
Пример подключения:
- Сегмент A — пин 2
- Сегмент B — пин 3
- Сегмент C — пин 4
- Сегмент D — пин 5
- Сегмент E — пин 6
- Сегмент F — пин 7
- Сегмент G — пин 8
- Десятичная точка DP — пин 9
Программирование 7-сегментного индикатора на Arduino
Как управлять 7-сегментным индикатором с помощью Arduino? Рассмотрим базовый пример кода:

- Мы определяем массив с пинами для каждого сегмента
- Создаем массив с битовыми масками для отображения цифр
- В функции setup() настраиваем пины на выход
- В loop() последовательно отображаем цифры от 0 до 9
- Функция displayDigit() включает нужные сегменты для отображения заданной цифры
Оптимизация работы с 7-сегментными индикаторами
При работе с несколькими 7-сегментными индикаторами возникает проблема нехватки пинов Arduino. Как решить эту проблему? Существует несколько способов оптимизации:

1. Использование сдвиговых регистров
Сдвиговые регистры позволяют управлять большим количеством выходов, используя всего 3 пина Arduino. Как это работает?
- Данные передаются последовательно в регистр
- Регистр преобразует последовательные данные в параллельный выход
- Один регистр может управлять 8 сегментами
2. Применение драйверов MAX7219/MAX7221
Драйверы MAX7219/MAX7221 специально разработаны для управления 7-сегментными индикаторами. Какие преимущества они дают?
- Управление до 8 индикаторов через 3 пина Arduino
- Встроенное управление яркостью
- Режим пониженного энергопотребления
3. Метод динамической индикации
Динамическая индикация позволяет управлять несколькими индикаторами, используя один набор пинов для сегментов. Как это работает?
- Индикаторы подключаются параллельно
- Общие выводы индикаторов подключаются к отдельным пинам
- Поочередно активируются разные индикаторы
- За счет быстрого переключения создается иллюзия одновременной работы всех индикаторов
Расширенные возможности 7-сегментных индикаторов
7-сегментные индикаторы могут использоваться не только для отображения цифр. Какие еще возможности они предоставляют?

Отображение букв
Некоторые буквы латинского алфавита можно отобразить на 7-сегментном индикаторе. Например:
- A — B01110111
- b — B00111110
- C — B10011100
- d — B01111010
- E — B10011110
- F — B10001110
Создание анимации
Путем последовательного включения и выключения сегментов можно создавать простые анимации. Например, вращающуюся линию или «бегущий огонь».
Отображение специальных символов
Комбинируя различные сегменты, можно отобразить некоторые специальные символы:
- Градус (°) — B01100011
- Минус (-) — B00000010
- Нижнее подчеркивание (_) — B00010000
Применение 7-сегментных индикаторов в проектах
7-сегментные индикаторы широко используются в различных электронных устройствах и DIY-проектах. Где их можно применить?
1. Цифровые часы
Классическое применение 7-сегментных индикаторов — создание цифровых часов. Как это реализовать?
- Использовать 4 индикатора (2 для часов, 2 для минут)
- Подключить модуль реального времени (RTC) для точного отсчета времени
- Реализовать функцию настройки времени
2. Термометр
7-сегментные индикаторы отлично подходят для создания цифрового термометра. Что для этого нужно?

- Подключить датчик температуры (например, DS18B20)
- Использовать 2-3 индикатора для отображения температуры
- Реализовать переключение между Цельсием и Фаренгейтом
3. Счетчик
7-сегментные индикаторы можно использовать для создания различных счетчиков. Например:
- Счетчик посетителей
- Счетчик нажатий кнопки
- Таймер обратного отсчета
Альтернативы 7-сегментным индикаторам
Хотя 7-сегментные индикаторы остаются популярными, существуют и альтернативные решения для отображения цифровой информации. Какие есть варианты?
1. LCD-дисплеи
LCD-дисплеи предоставляют больше возможностей для отображения информации. В чем их преимущества?
- Отображение букв, цифр и специальных символов
- Возможность создания многострочных надписей
- Низкое энергопотребление
2. OLED-дисплеи
OLED-дисплеи обладают отличной контрастностью и широким углом обзора. Какие у них особенности?
- Высокая яркость и контрастность
- Возможность отображения графики
- Компактные размеры
3. Матричные светодиодные дисплеи
Матричные дисплеи состоят из множества отдельных светодиодов, организованных в виде матрицы. Что они позволяют?

- Создавать анимированные эффекты
- Отображать любые символы и графику
- Масштабировать изображение
Выбор типа дисплея зависит от конкретной задачи, требований к энергопотреблению и бюджета проекта.
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
Готовый прототип контроллера
Следующий шаг — изготовление контроллера на печатной плате.
Выводы:
Связка индикаторы + драйверы вполне рабочая.
Паять или покупать готовое — выбор за вами.
Кот вот тоже сильно удивлен, как можно было потрать столько времени не на сон
Прочитать про мой «Умный дом» можно в моем блоге
4-разрядный 7-сегментный индикатор в категории «Телекоммуникации и связь»
4-разрядный 7-сегментный индикатор под часы на драйвере TM1637 Arduino рр
Доставка по Украине
153 грн
117.81 грн
Купить
4-разрядный 7-сегментный индикатор под часы на драйвере TM1637 Arduino dk
Доставка по Украине
138.06 грн
106.31 грн
Купить
4-разрядный 7-сегментный индикатор под часы на драйвере TM1637 Arduino bl
Доставка по Украине
157 грн
120.89 грн
Купить
4-разрядный 7-сегментный индикатор под часы на драйвере TM1637 Arduino
На складе
Доставка по Украине
55 — 72 грн
от 17 продавцов
55 грн
Купить
4-разрядный 7-сегментный индикатор под часы на драйвере TM1637 Arduino
Доставка из г. Ровно
55 грн
Купить
TM1637 индикатор под часы Arduino 4-разрядный 7-сегментный
На складе в г. Ровно
Доставка по Украине
55 грн
Купить
4-разрядный 7-сегментный индикатор под часы на драйвере TM1637 Arduino
На складе
Доставка по Украине
61 — 140 грн
от 10 продавцов
82 грн
Купить
4-разрядный 7-сегментный индикатор под часы на драйвере TM1637 Arduino, 102730
На складе в г. Ровно
Доставка по Украине
65 грн
Купить
4-разрядный 7-сегментный индикатор под часы на драйвере TM1637 Arduino
На складе
Доставка по Украине
по 55 грн
от 3 продавцов
55 грн
Купить
4-разрядный 7-сегментный индикатор под часы на драйвере TM1637 Arduino
Доставка из г. Ровно
55 грн
Купить
4-разрядный 7-сегментный индикатор под часы на драйвере TM1637 Arduino Без бренда
Доставка по Украине
83 грн
Купить
4-разрядный 7-сегментный индикатор под часы на драйвере M1637 Arduino
Доставка из г. Ровно
55 — 192 грн
от 2 продавцов
55 грн
Купить
4-разрядный 7-сегментный индикатор под часы на драйвере TM1637 Arduino
Доставка по Украине
55 грн
Купить
4-разрядный 7-сегментный индикатор под часы на драйвере TM1637 Arduino al
Доставка по Украине
145.64 грн
112.14 грн
Купить
Индикатор под часы на драйвере 4-разрядный 7-сегментный TM1637 Arduino
Доставка по Украине
91 грн
85 грн
Купить
Смотрите также
Новинка 4-разрядный 7-сегментный индикатор под часы на драйвере TM1637 Arduino !
Доставка по Украине
84 грн
63 грн
Купить
У продажі: 4-разрядный 7-сегментный индикатор под часы на драйвере TM1637 Arduino VseOK
Доставка по Украине
195 грн
Купить
TM1637 7-сегментный 4-х разрядный модуль дисплея 0.36 красный
Доставка по Украине
43 грн
Купить
TM1637 7-сегментный 4-х разрядный модуль дисплея 0.36 красный
Доставка из г. Черновцы
43 грн
Купить
7-сегментний 4-цифровий індикатор 0.8″ CA
На складе
Доставка по Украине
46 грн
Купить
7-сегментний 4-цифровий індикатор 0.36″ СС
На складе
Доставка по Украине
12 грн
Купить
7-сегментний 4-цифровий індикатор 0.36″ CA
На складе
Доставка по Украине
15 грн
Купить
7-сегментний 4-цифровий індикатор 0.56″ СА
На складе
Доставка по Украине
17 грн
Купить
Цифровой индикатор 7-сегментный 1 цифровой (0.56 — красный)
На складе в г. Вознесенск
Доставка по Украине
Купить
7-сегментный 4х цифровой индикатор 0.56 (красный) для Arduino
Доставка по Украине
18 грн
Купить
Индикатор GNQ-5641BG-21
На складе
Доставка по Украине
23. 40 грн
Купить
4-разрядный 7-сегментный индикатор под часы на драйвере TM1637 Arduino
Доставка по Украине
105 грн
95 грн
Купить
Цифровой индикатор 7-сегментный 4-х цифровой (0.56 — красный)
На складе в г. Вознесенск
Доставка по Украине
17 грн
Купить
Модуль TM1637 7-сегментный 4-х разрядный дисплей, 0.36″ красный
На складе в г. Тернополь
Доставка по Украине
43 грн
Купить
Семисегментный дисплей | LEARN.PARALLAX.COM
7-сегментный светодиод — отличный способ отображения чисел с помощью микроконтроллера Propeller. Они состоят из восьми светодиодов в одном корпусе. Семь полосчатых светодиодов образуют сегменты цифры, обозначенные буквами от A до G на рисунке ниже. Восьмая — десятичная точка.
Вы можете найти их во многих продуктах, таких как часы, кухонная техника и электронные весы. Этот модуль фактически использует семь светодиодов, расположенных по специальной схеме, которая позволяет отображать любое число от 0 до 9. , плюс восьмой светодиод для десятичной точки. Этот учебник покажет вам, как именно управлять модулем и использовать его для подсчета.
Для каждого отдельного светодиода в модуле требуется резистор между ним и контактом ввода/вывода микросхемы Propeller. Когда каждый вывод ввода-вывода имеет высокий уровень (выход 3,3 В), светодиод, к которому он подключен, загорается. Подойдет любое сопротивление резистора от 100 Ом до 1 кОм; чем ниже сопротивление, тем ярче будет светить сегмент светодиода. Лучше всего использовать резисторы одинакового номинала, чтобы все сегменты светились равномерно.
Детали
(8) резисторы, либо 100 Ом (коричневый-черный-коричневый), либо 220 Ом (красный-красный-коричневый)
(1) 7-сегментный зеленый светодиод (деталь № 350-00027)
(5) ) перемычки
- Соберите схему, показанную на схеме. Схемы подключения для Activity Board и модуля Propeller FLiP приведены ниже для справки.
Он известен как 7-сегментный светодиодный дисплей с общим катодом , поскольку катод для каждого светодиодного сегмента подключен к одному заземлению модуля.
Тестовый код включит все сегменты светодиода одновременно, чтобы убедиться, что вы правильно построили схему. Он состоит всего из двух блоков двоичных наборов контактов. Первый устанавливает все направления выводов ввода/вывода для вывода, используя двоичное значение 11111111. Второй устанавливает состояния вывода на высокий уровень с тем же двоичным значением, подключая каждый светодиод к 3,3 В.
- В BlocklyProp Solo сделайте новый проект для вашей доски.
- Создайте проект, показанный ниже, и сохраните его.
- Нажмите кнопку «Выполнить один раз».
Должны загореться все восемь светодиодов – семь сегментов полосы плюс десятичная точка. Если они не все загораются, вернитесь и проверьте свои схемы.
После того, как ваша схема заработает, вы можете попробовать присоединить различные битовые шаблоны к блоку бинарных состояний. На приведенном ниже рисунке показано, какой сегмент светодиода дисплея подключен к какому контакту ввода-вывода Propeller. Первый, самый левый бит устанавливает светодиод P13, в порядке слева направо, пока последний, самый правый бит не устанавливает светодиод P6.
- Попробуйте отобразить каждую цифру с помощью двоичных шаблонов в списке ниже:
- 0:11100111
- 1:10000100
- 2: 11010011
- 3: 11010110
- 4: 10110100
- 5: 01110110
- 6: 01110111
- 7: 11000100
- 8: 11110111
- 9: 11110110
CC по сравнению с CA: Обратите внимание на то, что на схеме имеется одно заземление для модуля. Это известно как CC или 7-сегментный светодиодный дисплей с общим катодом, поскольку катод для каждого светодиодного сегмента подключен к одному заземлению модуля. В CA или дисплее с общим анодом анод для каждого светодиодного сегмента подключается к одному и тому же контакту источника питания. Катод каждого светодиодного сегмента подключен к выводу ввода-вывода, и установка вывода ввода-вывода на низкий уровень (земля) приведет к тому, что сегмент загорится. Если бы вы пытались использовать 7-сегментный дисплей CA в этом руководстве, вам нужно было бы поменять местами все биты в двоичных шаблонах, заменив 1 на 0 и 0 на 1 (в дополнение к сборке схемы в соответствии с указаниями производителя). .)
Цифры и буквы тоже: 7-сегментные светодиоды также могут использоваться для отображения букв. Хотя каждая буква английского алфавита может быть представлена (в заглавной и/или строчной форме) с помощью одного устройства, некоторые буквы немного сложнее отобразить легко распознаваемым образом. Хотите узнать больше? Посетите статью Википедии о 7-сегментном отображении символов по адресу http://en.wikipedia.org/wiki/Seven-segment_display_character_representations.
Удобный способ отображения чисел на 7-сегментном дисплее состоит в том, чтобы сохранить каждый двоичный шаблон в массиве, а затем ссылаться на элементы массива позже в коде. Здесь мы делаем именно это, используя цикл повторения элементов для обратного отсчета цифр от 0 до 9.
Подсказка : каждый пронумерованный элемент хранит двоичный шаблон для соответствующей ему цифры от 0 до 9, скопированный из списка выше.
- Измените свой проект, чтобы он соответствовал показанному ниже, затем сохраните его.
- Запустите программу и наблюдайте за отсчетом чисел.
Как это работает
Как и в тестовом коде, первый блок устанавливает направления выводов ввода-вывода P13-P6 для вывода, используя блок двоичных выводов с прикрепленным двоичным значением 11111111.
Затем блок инициализации массива создает массив с именем digits, который может хранить 10 элементов (по одному на каждую цифру, от 0 до 9). Список установленных блоков элементов массива заполняет массив цифр по одному элементу за раз. Первый блок определяет элемент массива 0 с прикрепленным блоком двоичных значений, который содержит битовую комбинацию для отображения нуля на 7-сегментном светодиоде. Точно так же еще девять блоков элементов массива set определяют оставшиеся цифры: элемент 1 хранит двоичный шаблон для отображения 1 и так далее.
После заполнения массива код достигает цикла повторяющихся элементов с переменной с именем trip для отслеживания каждого повторения в цикле. Блок начинается с поездки в 9, отсчитывая оттуда до 0 на 1, всего 10 «поездок» по циклу. Внутри цикла находится двоичный блок set pins, на этот раз с присоединенным блоком массива get element. При первом прохождении цикла значение trip равно 9, поэтому блок двоичных выводов использует значение, хранящееся в элементе 9 массива цифр. Это двоичное число 11110110, шаблон для отображения числа 9..
После паузы в 1 секунду цикл повторяется снова. Это время отключения равно 8, поэтому двоичное значение из элемента 1 в массиве цифр используется с двоичным блоком набора контактов: 11110111. Цикл продолжает повторяться, отображая цифры в порядке убывания до последнего раунда, когда значение отключения равно 0.
Ваша очередь Иногда вам может понадобиться использовать элементы массива в другом порядке, чем они перечислены. Один из способов сделать это — получить доступ к массиву, используя другой массив! Попробуйте изменить программу так, чтобы она отображала код запаса 7-сегментного светодиода 350-00027. Это займет несколько шагов
Сначала вам нужно добавить элемент в массив цифр, а затем создать и инициализировать второй массив для хранения последовательности цифр биржевого кода.
- Сохраните копию вашего проекта под новым именем! И сохраняйте между изменениями в нашем проекте после каждого шага.
- Добавьте элемент 10 в свой массив цифр для тире, подсвечивая только центральную полосу, используя рисунок со стрелками выше, чтобы определить битовый шаблон.
- Не забудьте обновить блок инициализации массива цифр, чтобы он содержал дополнительный элемент!
- В верхней части проекта добавьте второй массив с именем sku, который может содержать 9 элементов.
- Используйте блок заполнения массива, чтобы загрузить артикул с цифрами в коде акции по порядку, используя 10 для тире.
Затем вам нужно будет внести некоторые дополнения в цикл повторения поездки…, чтобы сделать
- Обновить цикл повторения поездки из… для увеличения от 0 до 8 на 1.
- Первым делом в цикле повторения установите переменную с именем fetch и присоедините к ней блок получения элемента массива, который извлекает поездку элемента sku массива.
- В блоке контактов двоичного набора обновите блок элементов массива, чтобы он использовал выборку элементов массива цифр.
- После блока паузы 1000 добавьте еще один блок бинарных контактов, чтобы отключить все сегменты светодиодов одновременно.
- Последний в цикле, добавить паузу 100 мс. Без этого вы бы не смогли увидеть 0,0,0 в виде отдельных цифр!
- Запустите проект, и он должен последовательно отображать цифры биржевого кода.
Да, вы могли бы поместить блок отключения элемента массива sku прямо внутри поля элемента блока получения цифр массива вместо использования переменной fetch в качестве промежуточного звена.