Библиотека LedControl
- В менеджере библиотек
- LedControl by Eberhard Fahle
- Версия
- 1.0.6 · всего 1 версия, первая — 1.0.6
- Платы
- любые — автор не ограничивал
Архивы — копии из официального индекса Arduino, контрольная сумма совпадает. Сверено 19.10.2026.
Матрицы 8×8 и семисегментные индикаторы на MAX7219: до восьми модулей в цепочке на трёх проводах.
MAX7219 управляет 64 светодиодами — матрицей 8×8 или восемью семисегментными разрядами — и получает данные по трём проводам: DIN, CLK, CS. Модули соединяются в цепочку, и библиотека адресует их по номеру: первый — 0, следующий — 1.
Библиотека простая: точка, строка, столбец, цифра или символ. Бегущие строки и шрифты в ней не заложены — их пишут сами или берут библиотеки вроде MD_Parola.
Как скачать и установить
- Через менеджер — самый простой путь. В Arduino IDE: Инструменты → Управлять библиотеками (Ctrl+Shift+I). Введите
LedControlи найдите в списке строку «LedControl by Eberhard Fahle» — одноимённых библиотек бывает несколько, отличаются они автором. Нажмите «Установить». - Конкретная версия — если в чужом проекте указана не последняя. В той же карточке менеджера рядом с кнопкой есть выпадающий список версий: выберите нужную и нажмите «Установить».
- Из архива — если нет интернета на рабочем компьютере или менеджер не открывается. Скачайте 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 второго.