#include "LedControl.h"
const int DIN = 12; // Data In -> MOSI 12
const int CS = 10; // Chip Select
const int CLK = 11; // Clock -> 11
LedControl lc = LedControl(DIN, CLK, CS, 2);
byte zero[8] = {
B00111100, //60 в десятковій системі
B01100110,
B11000011,
B11000011,
B11000011,
B11000011, //195 в десятковій системі
B01100110,
B00111100
};
void draw(byte sprite[8], int disp) {
for (int row = 0; row < 8; row++)
lc.setRow(disp, row, sprite[row]);
}
void setLed(int x, int y, bool state) {
// Визначаємо адресу матриці (0 або 1)
// Якщо x від 0 до 7 — це 0-а матриця, якщо від 8 до 15 — 1-а.
int addr = x / 8;
// Обмежуємо координату x для конкретної матриці (0-7)
int col = y;
// Координата y залишається як row (0-7)
int row = x % 8;
// Перевірка на вихід за межі (щоб не було помилок, якщо передали x=16)
if (addr >= 0 && addr < 2) {
lc.setLed(addr, row, col, state);
}
}
void testDisplay(int time){ // заповнити кожен піксель з затримкою
for(int y=0; y<16; y++) // кожний рядочок
for(int x=0; x<8; x++){// кожний стовпчик
setLed(x, y, true); delay(time);
}
} // void setLed(int addr, int row, int col, boolean state);
void setup() {
lc.shutdown (0, false);
lc.setIntensity(0, 8);
lc.clearDisplay(0);
lc.shutdown (1, false);
lc.setIntensity(1, 8);
lc.clearDisplay(1);
draw (zero, 0);
draw (zero, 1);
}
void loop() { testDisplay(10);
}