1-разрядный 7-сегментный LED индикатор: Простое отображение цифр на Arduino
Зачем нужен 7-сегментный индикатор
1-разрядный 7-сегментный LED индикатор с общим катодом – это компактное и доступное решение для отображения цифр (0–9) и некоторых букв в Arduino-проектах. Он идеально подходит для создания цифровых часов, счётчиков, таймеров или индикаторов состояния. В этой статье мы подробно рассмотрим характеристики, подключение и примеры использования 7-сегментного индикатора.
Необходимые компоненты для проекта
Чтобы подключить 7-сегментный индикатор к Arduino, подготовьте следующие компоненты:
- Плата Arduino Uno, Nano или аналогичная;
- 1-разрядный 7-сегментный индикатор (общий катод);
- Резисторы 220–330 Ом (7–8 шт.);
- Провода джамперы;
- Макетная плата (опционально).
Описание и принцип работы
7-сегментный индикатор состоит из восьми светодиодов: семь сегментов (a–g) формируют цифры, а восьмой отвечает за десятичную точку (dp). В версии с общим катодом все катоды соединены с землёй (GND), а аноды подключаются к пинам Arduino через резисторы 220–330 Ом. Для включения нужного сегмента подаётся сигнал HIGH.
Красные индикаторы обеспечивают яркость 10–20 мКд и хорошо видны при умеренном освещении. Для удобства можно использовать библиотеку SevSeg, которая упрощает вывод цифр на дисплей.
Характеристики 7-сегментного индикатора
- Тип: 1-разрядный, 7-сегментный, общий катод;
- Цвет свечения: Красный;
- Рабочее напряжение: 1.8–2.2 В на сегмент;
- Ток на сегмент: 5–20 мА (рекомендуется 10 мА с резистором);
- Размеры: ~19×13×7 мм (для дисплея 0.56″);
- Длина волны: 620–630 нм;
- Яркость: 10–20 мКд;
- Количество контактов: 10 (7 сегментов, 1 точка, 2 катода);
- Рабочая температура: от -20°C до +85°C.
Схема подключения 7-сегментного индикатора к Arduino
Подключение выполняется следующим образом:
- COM (общий катод): к GND Arduino;
- Сегменты (a–g, dp): к пинам D2–D9 через резисторы 220–330 Ом.
Пример распределения выводов:
- a → D2
- b → D3
- c → D4
- d → D5
- e → D6
- f → D7
- g → D8
- dp → D9
Пример кода без библиотеки
Простой скетч для вывода цифры «5» на 7-сегментном индикаторе:
int segA = 2, segB = 3, segC = 4, segD = 5, segE = 6, segF = 7, segG = 8;
void setup() {
pinMode(segA, OUTPUT);
pinMode(segB, OUTPUT);
pinMode(segC, OUTPUT);
pinMode(segD, OUTPUT);
pinMode(segE, OUTPUT);
pinMode(segF, OUTPUT);
pinMode(segG, OUTPUT);
}
void loop() {
// Отображаем цифру 5
digitalWrite(segA, HIGH);
digitalWrite(segB, LOW);
digitalWrite(segC, HIGH);
digitalWrite(segD, HIGH);
digitalWrite(segE, LOW);
digitalWrite(segF, HIGH);
digitalWrite(segG, HIGH);
}
настраивает пины 2–8 как выходы для сегментов 7-сегментного индикатора.
постоянно отображает цифру 5 (сегменты A, C, D, F, G зажигаются).
Разбор кода
pinMode() задаёт пины как выходы, а digitalWrite() управляет сегментами. Для других цифр меняйте комбинацию HIGH/LOW по схеме сегментов.
Пример кода с библиотекой SevSeg
Библиотека SevSeg позволяет легко выводить цифры от 0 до 9:
#include <SevSeg.h>
SevSeg sevseg;
byte numDigits = 1;
byte digitPins[] = {};
byte segmentPins[] = {2, 3, 4, 5, 6, 7, 8, 9};
boolean resistorsOnSegments = true;
void setup() {
sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins, resistorsOnSegments);
sevseg.setBrightness(90);
}
void loop() {
for (int i = 0; i < 10; i++) {
sevseg.setNumber(i);
sevseg.refreshDisplay();
delay(1000);
}
}
отображает цифры от 0 до 9 по очереди.
каждая цифра горит 1 секунду.
использует 7-сегментный индикатор с общим катодом.
Объяснение кода
sevseg.begin() инициализирует индикатор, setNumber() устанавливает цифру, а refreshDisplay() обновляет отображение. Убедитесь, что библиотека SevSeg установлена через Arduino IDE.
Применение 7-сегментного индикатора в проектах
- Цифровые часы: отображение времени;
- Счётчики: подсчёт событий или предметов;
- Таймеры: обратный отсчёт;
- Индикаторы состояния: отображение уровней (0–9);
- Учебные проекты: освоение основ цифровой электроники.
Заключение
1-разрядный 7-сегментный LED индикатор — это простой и надёжный компонент, идеально подходящий для обучения и практики с Arduino. Он помогает визуализировать данные и делает проекты более наглядными. Попробуйте добавить такой индикатор в свой проект уже сегодня и создайте собственные часы, счётчик или таймер!
FAQ — 7-сегментный индикатор Arduino
Как определить, общий катод или анод у индикатора?
Подключите питание через резистор к любому сегменту и общему выводу. Если сегмент загорается при подключении к GND — это общий катод. Если к +5 В — общий анод.
Можно ли подключить индикатор без резисторов?
Нет. Без токоограничивающих резисторов светодиоды быстро перегорят из-за избыточного тока. Резисторы 220–330 Ом защищают каждый сегмент.
Как управлять несколькими 7-сегментными индикаторами?
Для нескольких разрядов используйте библиотеку SevSeg или мультиплексирование. Это позволяет экономить пины и управлять всеми индикаторами синхронно.
Почему индикатор мерцает?
Мерцание связано с частотой обновления. Увеличьте скорость вызова refreshDisplay() в коде или используйте аппаратный драйвер (например, TM1637) для стабильного отображения.
Какие параметры нужно учитывать при подключении 7-сегментного индикатора?
Учтите рабочее напряжение (1.8–2.2 В на сегмент), ток (5–20 мА, рекомендуются 10 мА с резистором), тип индикатора (общий катод или анод) и количество сегментов. Все сегменты подключайте через резисторы к Arduino.
Где можно купить 7-сегментный индикатор для Arduino?
Индикаторы доступны в интернет-магазинах электроники: Aliexpress, Amazon, eBay, а также в российских магазинах компонентов для Arduino.
Можно ли использовать библиотеку SevSeg для обучения?
Да. SevSeg упрощает вывод цифр на индикатор, позволяет быстро управлять одним или несколькими разрядами и идеально подходит для учебных проектов с Arduino.