MAX7219 8-Digit 7-Segment Module

Один MAX7219 + восемь семисегментных разрядов, общий катод

Светодиодный индикатор с аппаратным сканированием и регулировкой яркости.

Автор: SLDV LAB

Опубликовано · Обновлено

СложностьЛегко
Проекты с компонентом

О МОДУЛЕ

Что делает Один MAX7219 + восемь семисегментных разрядов, общий катод

Модуль с MAX7219 выводит восемь семисегментных цифр. Он подходит для счётчиков, часов, таймеров и измерительных приборов. Драйвер хранит сегменты и самостоятельно мультиплексирует разряды; постоянное программное сканирование не требуется.

Выбрано исполнение с одним MAX7219 и индикатором с общим катодом. Порядок разрядов и наличие точек нужно проверить на своей плате: пример сначала показывает контрольную последовательность. Не путайте его с TM1638, TM1637 или модулями на MAX7219 с матрицами. Яркость регулируется программно, а предельный ток сегментов задаётся резистором RSET на модуле.

Восьмиразрядная семисегментная плата MAX7219, пример исполнения без установленного изготовителя. Подключение относится к Arduino UNO R3 и программному интерфейсу LedControl: DIN→D12, CLK→D11, CS→D10.

Источник фотографии: https://iot-kmutnb.github.io/blogs/displays/max7219/ . Оригинал: https://iot-kmutnb.github.io/blogs/displays/max7219/max7219_8dig_7seg_display.jpg . SLDV LAB выделил показанный модуль, удалил фон и выполнил пропорциональное масштабирование; реальные детали и надписи сохранены. Схема соединений составлена SLDV LAB по указанным первичным источникам и примеру карточки. Отдельные условия повторного использования фотографии не установлены; обработка не меняет исходных прав.

Характеристики

Контроллер
MAX7219
Индикация
8 семисегментных цифр
Драйверов в примере
1
Ступеней цифровой яркости
16
Линии управления
DIN, CLK, LOAD/CS; последовательный SPI-подобный протокол
Интерфейс
SPI
Питание модуля
Модуль питается от стабилизированных 5 В; MAX7219 требует логическую «1» не ниже 3,5 В. В примере UNO R3 с 5-В GPIO; прямое управление от ESP32 3,3 В не гарантировано.

ПРАКТИКА

Подключение

Контакт модуляКонтакт платыНазначение
VCCВнешний стабилизированный источник 5 ВИсточник выбрать по току реальной платы; не питать дисплей от GPIO. UNO в примере питается USB, его 5V с внешним +5V не соединять
GNDGND UNO и минус источникаОбщая земля обязательна
DIN (вход)D12LedControl использует программную передачу; это не аппаратный MOSI UNO
CLKD11Программный clock LedControl
CS / LOADD10Arduino UNO R3 (ATmega328P), 5 В
DOUT (выход)Не подключатьДля одного модуля; при каскаде идёт в DIN следующего

Подходит для Arduino. Выберите контакты по документации своей платы.

ВАШ ПРОЕКТ · ВАШ ДАТЧИК

Интегрируйте модуль с ChatGPT

Скопируйте запрос в ChatGPT. Укажите свою плату и среду разработки — получите подключение и код для своего проекта.

Помоги подключить MAX7219 8-Digit 7-Segment Module. Уточни контроллер, среду, число драйверов, маркировку входов и ток конкретного модуля. Подготовь питание 5 В с общей землёй и совместимые уровни DIN/CLK/LOAD; для ESP32 проверь преобразование 3,3→5 В. Используй LedControl 1.0.6 и полный пример с малой начальной яркостью. Проверь направление передачи, порядок разрядов и объясни, что библиотека не читает подтверждение присутствия MAX7219.

Библиотеки

Установите библиотеку для своей среды и откройте пример из её документации.

Что именно прописать

Библиотека
LedControl 1.0.6

Нужен только LedControl.h; SPI.h для этого программного интерфейса не требуется.

Конструктор
LedControl display(12, 11, 10, 1);

DIN, CLK, LOAD/CS, количество драйверов; выводы относятся к UNO R3.

Запуск
display.shutdown(0, false);

Первый драйвер имеет индекс 0.

Начальная яркость
display.setIntensity(0, 1);

Диапазон 0–15; программная яркость не заменяет правильный RSET.

Arduino UNO R3: проверка разрядов и счётчик секунд

cpp
#include <LedControl.h>
LedControl display(12, 11, 10, 1); // DIN, CLK, LOAD, count

void setup() {
  display.shutdown(0, false);
  display.setScanLimit(0, 7);
  display.setIntensity(0, 1);
  display.clearDisplay(0);
  for (uint8_t digit = 0; digit < 8; ++digit) {
    display.setDigit(0, digit, digit + 1, false);
  }
  delay(3000);
}
void loop() {
  unsigned long value = (millis() / 1000UL) % 100000000UL;
  for (uint8_t digit = 0; digit < 8; ++digit) {
    display.setDigit(0, digit, value % 10, false);
    value /= 10;
  }
  delay(250);
}

Полный скетч для Arduino UNO R3, Arduino AVR Boards 1.8.6 и LedControl 1.0.6. API сверено с исходниками, физический тест не выполнялся. Принято, что разряд 0 крайний справа. Если контрольная последовательность отображается в обратном порядке, замените адрес digit на 7 - digit в обоих циклах; если порядок иной, нужна явная карта разрядов. При мерцании проверьте напряжение под нагрузкой, общую землю и развязку питания у модуля. У MAX7219 нет ACK: выполнение кода не подтверждает подключение.

Проекты с этим компонентом

Все проекты

Связанные проекты пока не опубликованы.

Связанные материалы и компоненты