Матрица на микросхеме MAX7219, подключение к Arduino

Привет, Хабр!
Arduino - это линейка готовых плат для разработки, базирующиеся на микроконтроллерах. Предназначена для людей, которые раньше не занимались программированием и разработкой устройств на их основе.
В этой статье мы научимся работать с матрицей 8*8 на микросхеме MAX7219 и напишем код на языке программирования C++(Wiring).
В классической линейке устройств Arduino в основном применяются микроконтроллеры Atmel AVR. Следующие МК можно встретить на указанных распространённых платах:
ATmega2560 (16 МГц, 256к Flash, 8к RAM, 54 порта, из них до 15 с ШИМ и 16 АЦП). Платы Mega.
ATmega32U4 (16 МГц, 32к Flash, 2,5к RAM, 20 портов, из них до 7 с ШИМ и 12 АЦП). Платы Leonardo, Micro, Yun.
ATmega328 (16 МГц, 32к Flash, 2к RAM, 14 портов, из них до 6 с ШИМ и 8 АЦП). Платы UnoR3, Mini, NanoR2, Pro, Pro mini, различные варианты плат uno и nano, такие как Wifi Uno и nano + nrf42l01.
ATtiny85 (20Мгц, 8к Flash, 512б RAM, 6 портов, из них 4 ШИМ и 4 аналоговых). Платы Digispark, также часто применяются вне плат.
ATmega168(16Мгц, 16к Flash, 1к RAM, порты и распиновка аналогично ATmega328) Платы Uno R1, Uno R2, Pro mini, NanoR1.
Нам необходимо несколько компонентов:
Arduino UNO (подойдет любая плата из линейки Arduino)
Матрица 8*8 на микросхеме MAX7219
Breadboard
Провода для подключения
Разберем на примере этого модуля

У модуля есть пять выводов на каждой стороне. С одной стороны данные входят в модуль, с другой стороны данные выходят из модуля и передаются в следующий. Это позволяет соединять матрицы у цепочку.
Подключение
Светодиодная матрицы 8×8 с MAX7219 | VCC | GND | DIN | CS | CLK |
Arduino UNO | +5V | GND | 11 | 9 | 13 |

Код
#include <SPI.h> //Подключение библиотек
#include <Adafruit_GFX.h>
#include <Max72xxPanel.h>
int pinCS = 9;
int numberOfHorizontalDisplays = 1; // количество матриц по-горизонтали
int numberOfVerticalDisplays = 1; // количество матриц по-вертикали
Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays);
const byte data[8] = {
B00000000,
B01100110, //Массив
B11111111,
B11111111,
B01111110,
B00111100,
B00011000,
B00000000
};
void setup() {
matrix.setIntensity(2); // яркость от 0 до 15
matrix.fillScreen(LOW); // очистка матрицы
for ( int y = 0; y < 8; y++ ) {
for ( int x = 0; x < 8; x++ ) {
// зажигаем x-й пиксель в y-й строке
matrix.drawPixel(x, y, data[y] & (1<<x));
}
}
matrix.write(); // вывод всех пикселей на матрицу
}
void loop() {
}
Все необходимые библиотеки вы можете скачать по ссылке:
Результат
Надеюсь статья оказалась интересной и подробной для изучения основ по программированию на Arduino. Спасибо за внимание!