Cамая резкая библиотека для матриц MAX7219 на диком западе
Совместима со всеми Arduino платформами (используются Arduino-функции)
MAX7219 < W, H, CS > mtrx; // подключение к аппаратному SPI
// пример: UNO / Nano (CLK - D13, DI - D11, CS - любой пин)
MAX7219 < W, H, CS, DATA, CLK > mtrx; // подключение к любым пинам (софт SPI)
// W и H - количество МАТРИЦ по горизонтали и вертикали
// CS, DATA, CLK - номера пинов
// настройка
void begin(); // запустить
void setBright(byte value); // установить яркость [0-15]
void setBright(uint8_t* values); // установить разную яркость
void setPower(bool value); // переключить питание
void setPower(bool* values); // переключить питание у выбранных
void clearDisplay(); // очистить дисплей (не буфер)
// ориентация
void setRotation(uint8_t rot); // поворот МАТРИЦ (8x8): 0, 1, 2, 3 на 90 град по часовой стрелке
void setFlip(bool x, bool y); // зеркальное отражение МАТРИЦ (8x8) по x и y
void setType(bool type); // конструкция дисплея (тип строчности)
void setConnection(uint8_t conn); // точка подключения дисплея
// графика
void fillByte(uint8_t data); // залить байтом
void fill(); // залить буфер (включить все)
void clear(); // очистить буфер
void update(); // обновить дисплей
void dot(int x, int y, uint8_t fill = 1); // установить точку
bool get(int16_t x, int16_t y); // получить точку из буфера
// + наследует возможности GyverGFX https://github.com/GyverLibs/GyverGFX
// custom
void beginData(); // начать отправку
void endData(); // закончить отправку
// отправка данных напрямую в матрицу (строка, байт)
void sendByte(uint8_t address, uint8_t value);
Остальные примеры смотри в examples!
#include <GyverMAX7219.h>
MAX7219 < 1, 1, 5 > mtrx; // одна матрица (1х1), пин CS на D5
void setup() {
mtrx.begin(); // запускаем
mtrx.setBright(5); // яркость 0..15
//mtrx.rotate(1); // можно повернуть 0..3, по 90 град по часовой стрелке
mtrx.dot(0, 0); // пиксель на координатах 0,0
mtrx.update(); // показать
delay(1000);
mtrx.clear();
// линии крест накрест
mtrx.line(0, 0, 7, 7); // (x0, y0, x1, y1)
mtrx.line(7, 0, 0, 7);
mtrx.update();
delay(1000);
mtrx.clear();
// круг
mtrx.circle(3, 3, 3, GFX_FILL); // х, у, радиус, заливка
mtrx.update();
delay(1000);
mtrx.clear();
// окружность
mtrx.circle(3, 3, 3, GFX_STROKE);
mtrx.update();
delay(1000);
mtrx.clear();
// остальную геометрию смотри в документации
}
void loop() {
}
При нахождении багов создавайте Issue, а лучше сразу пишите на почту alex@alexgyver.ru
Библиотека открыта для доработки и ваших Pull Request'ов!
При сообщении о багах или некорректной работе библиотеки нужно обязательно указывать: