ELECTRONICS

Библиотека LedControl

В менеджере библиотек
LedControl by Eberhard Fahle
Версия
1.0.6 · всего 1 версия, первая — 1.0.6
Платы
любые — автор не ограничивал
СкачатьLedControl-1.0.6.zip · 11 КБ

Архивы — копии из официального индекса Arduino, контрольная сумма совпадает. Сверено 19.10.2026.

Матрицы 8×8 и семисегментные индикаторы на MAX7219: до восьми модулей в цепочке на трёх проводах.

MAX7219 управляет 64 светодиодами — матрицей 8×8 или восемью семисегментными разрядами — и получает данные по трём проводам: DIN, CLK, CS. Модули соединяются в цепочку, и библиотека адресует их по номеру: первый — 0, следующий — 1.

Библиотека простая: точка, строка, столбец, цифра или символ. Бегущие строки и шрифты в ней не заложены — их пишут сами или берут библиотеки вроде MD_Parola.

Как скачать и установить

  1. Через менеджер — самый простой путь. В Arduino IDE: Инструменты → Управлять библиотеками (Ctrl+Shift+I). Введите LedControl и найдите в списке строку «LedControl by Eberhard Fahle» — одноимённых библиотек бывает несколько, отличаются они автором. Нажмите «Установить».
  2. Конкретная версия — если в чужом проекте указана не последняя. В той же карточке менеджера рядом с кнопкой есть выпадающий список версий: выберите нужную и нажмите «Установить».
  3. Из архива — если нет интернета на рабочем компьютере или менеджер не открывается. Скачайте ZIP выше, затем Скетч → Подключить библиотеку → Добавить .ZIP библиотеку и укажите файл. Распаковывать не нужно.

Файл LedControl.h отдельно не скачивают: он внутри библиотеки и появляется после установки. Если среда пишет LedControl.h: No such file or directory — библиотека не установлена или установлена не та. Как устроен менеджер и куда складываются файлы — в общей статье про библиотеки.

Строка подключения:

#include <LedControl.h>

Создание объекта — обычно до setup():

LedControl lc(11, 13, 10, 1);      // DIN, CLK, CS, сколько модулей
lc.shutdown(0, false);              // в setup(): разбудить модуль 0
lc.setIntensity(0, 8);              // яркость 0–15
lc.clearDisplay(0);

Методы

Только то, что нужно в обычном скетче. Сигнатуры сверены с версией 1.0.6.

shutdown(int addr, bool off)
Спящий режим модуля; после включения он спит — обязательно shutdown(addr, false).
setIntensity(int addr, int level)
Яркость 0–15.
clearDisplay(int addr)
Погасить модуль.
setLed(int addr, int row, int col, bool on)
Одна точка матрицы: строка и столбец 0–7.
setRow(int addr, int row, byte value)
Строка целиком байтом: биты — столбцы.
setColumn(int addr, int col, byte value)
Столбец целиком.
setDigit(int addr, int digit, byte value, bool dp)
Цифра 0–15 в разряде семисегментного индикатора; dp — точка.
setChar(int addr, int digit, char value, bool dp)
Символ из ограниченного набора: цифры, A–F, H, L, P, минус, пробел.
getDeviceCount()
Сколько модулей задано в конструкторе.

Пример

#include <LedControl.h>

LedControl lc(11, 13, 10, 1);   // DIN, CLK, CS, один модуль

// смайлик 8×8: каждый байт — строка, биты — столбцы
const byte smile[8] = {
  0b00111100,
  0b01000010,
  0b10100101,
  0b10000001,
  0b10100101,
  0b10011001,
  0b01000010,
  0b00111100
};

void setup() {
  lc.shutdown(0, false);
  lc.setIntensity(0, 6);
  lc.clearDisplay(0);
  for (int r = 0; r < 8; r++) lc.setRow(0, r, smile[r]);
}

void loop() {}
Запустить в симулятореСхема с этим скетчем — запустить в браузере

Если картинка повёрнута или отзеркалена — это нормально: модули паяют по-разному. Меняйте setRow на setColumn или разворачивайте байты.

На чём попадаются

Матрица не светится

Модуль спит после включения. shutdown(addr, false) — первая команда в setup().

Тусклая и глючит при полном заполнении

MAX7219 на всех 64 точках берёт до 300 мА с модуля. Питание от 5V платы тянет один модуль; цепочку питают отдельно.

Второй модуль в цепочке не работает

В конструкторе указано число модулей 1. И DOUT первого должен идти в DIN второго.

Где используется на сайте

Что дальше