Необходимое Оборудование
Плата Arduino UNO * 1
8x8 Точечная Матрица * 1
Резистор (220 Ом) * 8
Макетная Плата * 1
USB Кабель * 1
Несколько Перемычек
Принцип работы
Светодиодный драйвер MAX7219 можно использовать для управления 7-сегментными дисплеями до 8 цифр, гистограммными дисплеями или 64 отдельными светодиодами. Драйвер взаимодействует с Arduino через SPI, поэтому для управления дисплеем вам нужно всего три провода.
Поскольку MAX7219 может управлять максимум 64 светодиодами, максимальный размер матричного дисплея, который он может управлять, составляет 8 × 8 пикселей. Однако вы можете объединить несколько драйверов и матриц в единую цепочку и легко управлять дисплеями гораздо большего размера, такими как 8 × 32, 8 × 64 или даже больше. Тем не менее, вам нужно всего три провода для управления всеми микросхемами, поэтому вам понадобится очень мало контактов ввода-вывода Arduino.
Так же можете нарисовать свой дизайн тут и вставить в код
Подключение Схемы
DIN на 12 пин
CLK на 11 пин
CS на 10 пин
Пример Кода для отображения "0"
//////////////////////////////////////////////////////////
//MAX7219 https://github.com/wayoda/LedControl
#include "LedControl.h"
#include "binary.h"
LedControl lc = LedControl(12, 11, 10, 1);
unsigned long delaytime = 1000;
byte zero_f[8] = { 0b00111100,
0b01100110,
0b01100110,
0b01100110,
0b01100110,
0b01100110,
0b01100110,
0b00111100
};
byte one_f[8] = {0b00011000,
0b00111000,
0b00011000,
0b00011000,
0b00011000,
0b00011000,
0b00011000,
0b00011000
}
void setup() {
lc.shutdown(0, false);
lc.setIntensity(0, 8);
lc.clearDisplay(0);
}
void drawNum() {
lc.setRow(0, 0, zero_f[0]);
lc.setRow(0, 1, zero_f[1]);
lc.setRow(0, 2, zero_f[2]);
lc.setRow(0, 3, zero_f[3]);
lc.setRow(0, 4, zero_f[4]);
lc.setRow(0, 5, zero_f[5]);
lc.setRow(0, 6, zero_f[6]);
lc.setRow(0, 7, zero_f[7]);
delay(delaytime);
lc.setRow(0, 0, one_f[0]);
lc.setRow(0, 1, one_f[1]);
lc.setRow(0, 2, one_f[2]);
lc.setRow(0, 3, one_f[3]);
lc.setRow(0, 4, one_f[4]);
lc.setRow(0, 5, one_f[5]);
lc.setRow(0, 6, one_f[6]);
lc.setRow(0, 7, one_f[7]);
delay(delaytime);
}
void loop() {
drawNum();
}
//////////////////////////////////////////////////////////
Результат Теста
Загрузите программу на плату, и точечная матрица отобразит 0.