https://www.gadegetkit.com/tools/calculator/7-segment-display
Готово к аппаратуре

Калькулятор 7-сегментного индикатора

Просматривайте засветку сегментов, рассчитывайте резисторы и проверяйте параметры мультиплексирования в одном интерфейсе. Деляйтесь готовыми таблицами прошивки для общих катодных или анодных индикаторов за секунды.

Маска (HEX)
0x76, 0x79, 0x38, 0x38, 0x3F
Рекомендуемый резистор
150 Ω (161.11Ω)

Вставьте десятичное, hex (с префиксом 0x) или двоичное значение (0b), до 16 бит.

Power Configuration

Включить десятичную точку

Добавляет сегмент точки к последнему разряду для отображения единиц измерения или значений напряжения.

Динамический предпросмотр

Common Cathode
H
E
L
L
O

Профиль мультиплексирования

Скважность на разряд
25%
Обновление на разряд
60 Hz
Конфигурация
4 разрядов @ 240 Hz

Аппаратные параметры

Рассчитанный резистор
161.1 Ω
Стандартный резистор (E12)
150 Ω
Рассеиваемая мощность
52.2 mW

Генератор кода - Arduino

// Arduino 7-Segment Display Code
// Wiring: Common Cathode
// Resistor: 150Ω (1/4W or higher)

const uint8_t SEGMENT_MAP[16] = {
  0x3F  // 0,
  0x06  // 1,
  0x5B  // 2,
  0x4F  // 3,
  0x66  // 4,
  0x6D  // 5,
  0x7D  // 6,
  0x07  // 7,
  0x7F  // 8,
  0x6F  // 9,
  0x77  // A,
  0x7C  // B,
  0x39  // C,
  0x5E  // D,
  0x79  // E,
  0x71  // F,
  0x3D  // G,
  0x76  // H,
  0x06  // I,
  0x1E  // J,
  0x75  // K,
  0x38  // L,
  0x55  // M,
  0x54  // N,
  0x3F  // O,
  0x73  // P,
  0x67  // Q,
  0x50  // R,
  0x6D  // S,
  0x78  // T,
  0x3E  // U,
  0x1C  // V,
  0x2A  // W,
  0x76  // X,
  0x6E  // Y,
  0x5B  // Z,
  0x00  //  ,
  0x40  // -,
  0x08  // _,
  0x48  // =,
  0x63  // *,
  0x22  // ",
  0x02  // ',
  0x63  // °,
  0x00  // .,
  0x04  // ,,
  0x06  // !,
  0x53  // ?,
  0x52  // /,
  0x64  // \,
  0x39  // [,
  0x0F  // ],
  0x39  // (,
  0x0F  // ),
  0x61  // <,
  0x43  // >,
  0x06  // |
};

// Current display value: HELLO
const uint8_t displayDigits[] = {0x76, 0x79, 0x38, 0x38, 0x3F};

void setup() {
  // Configure segment pins (A-G, DP) as outputs
  // Pins 2-9 for segments A-G and DP
  for (int i = 2; i <= 9; i++) {
    pinMode(i, OUTPUT);
  }
}

void displayDigit(uint8_t pattern) {
  for (int i = 0; i < 8; i++) {
    digitalWrite(i + 2, pattern & (1 << i));
  }
}

void loop() {
  // Display each digit in sequence
  for (int digit = 0; digit < 5; digit++) {
    displayDigit(displayDigits[digit]);
    delay(5); // 5ms per digit for multiplexing
  }
}

Полностью готовый код для выбранной платформы, включая инициализацию и функции отображения.

Вывод массива байтов

const uint8_t digits[] = {0x76, 0x79, 0x38, 0x38, 0x3F};

Копируйте напрямую в код микроконтроллера. Каждый байт соответствует сегментной маске одного разряда.

Экспорт и отладка

  • Массив байтов: 0x76, 0x79, 0x38, 0x38, 0x3F
  • HEX-маска: 0x3F387976
  • Двоичная маска: 0b00111111001110000111100101110110
  • Рекомендуемый резистор: 150Ω (52.2mW)
  • Логический режим: Общий катод

Требуется действие

  • Нажмите «Сгенерировать карту сегментов», чтобы зафиксировать конфигурацию и экспортировать код.

Как использовать калькулятор 7-сегментного индикатора

Получите параметры подключения всего за три шага.

  1. Выберите вход и тип подключения

    Задайте десятичный, HEX или двоичный формат и укажите, используется ли общий анод или катод.

  2. Настройте параметры мультиплексирования

    Укажите количество разрядов, частоту обновления и электрические параметры светодиодов. Приложение предупредит о рисках.

  3. Сгенерируйте и экспортируйте

    Нажмите «Сгенерировать», чтобы зафиксировать конфигурацию, получить маску и передать её команде прошивки.

Кейс: стабилизация промышленного счётчика

Инженер должен модернизировать четырёхразрядный счётчик, сохранив существующий 7-сегментный модуль.

Индикатор
Устаревший 4-разрядный общий анод
Контроллер
STM32 с таймерными прерываниями
Проблема
Мерцание при низкой частоте и перегрев резисторов
  1. Проверка шестнадцатеричных значений

    Инженер вводит HEX-значения, чтобы убедиться, что маски совпадают с отображением старого PLC.

  2. Регулировка частоты мультиплексирования

    Частота увеличена до 320 Гц, обеспечивая >80 Гц на разряд — мерцание исчезает.

  3. Оптимизация тока

    Снижение тока светодиода с 20 мА до 12 мА увеличивает рекомендуемое сопротивление и предотвращает перегрев.

Результат

Счётчик работает стабильно, в безопасных токовых пределах, а массивы прошивки автоматически сгенерированы калькулятором.

FAQ по 7-сегментным индикаторам

Поддерживаются ли нестандартные порядки сегментов?

Текущая версия использует стандартную последовательность A–G. Для своих плат используйте HEX-маску и перепишите сопоставление битов.

Как выбрать частоту обновления?

Рекомендуется ≥60 Гц на разряд. Для 4 разрядов требуется ≥240 Гц суммарно. Предупреждение появится при снижении ниже порога.

Можно ли делиться конфигурациями с коллегами?

Да. Копируйте маски и параметры в документацию или систему контроля версий.

Работает ли с символами за пределами HEX?

В будущем появятся пользовательские библиотеки. Сейчас можно использовать двоичную маску и собственные таблицы.

Совместимо ли с драйверами?

Да. Маска подходит для прямого управления MCU или адаптации под драйверы MAX7219 / TM1637.

Как применять рекомендуемый резистор?

В однорядных индикаторах — один резистор на сегмент. В мультиплексировании — также по одному резистору на сегмент.

Можно ли уменьшить ток светодиода?

Да. Это снижает энергопотребление и нагрев; калькулятор пересчитает сопротивление.

Учитывается ли температурная дерейтинг-кривая?

Предупреждаются только риски тока. Для точного анализа используйте графики дерейтинга из даташита LED.

Есть ли тёмная тема?

Да. Интерфейс наследует общесайтовую тёмную тему, удобную для лабораторий с низкой освещённостью.

Как часто нужно перегенерировать параметры?

При каждом изменении разрядов, частоты или параметров LED. Предупреждения помогут сохранить безопасную конфигурацию.

Ресурсы

  • Руководство Arduino по 7-сегментным дисплеям
  • Применение драйвера MAX7219
  • Описание формата .coe для FPGA