#include <LedControl.h>
LedControl lc = LedControl(9, 11, 10, 1);
const int displayNumber = 0;
byte letters[9][8] = {
{0b00000000, 0b01000010, 0b01000010, 0b01111110, 0b01000010, 0b01000010, 0b00111100, 0b00000000}, // A
{0b00000000, 0b01111100, 0b01000010, 0b01000010, 0b01111100, 0b01000010, 0b01111100, 0b00000000}, // B
{0b00000000, 0b00111100, 0b01000010, 0b01000000, 0b01000000, 0b01000010, 0b00111100, 0b00000000}, // C
{0b00000000, 0b01111000, 0b01000100, 0b01000100, 0b01000100, 0b01000100, 0b01111000, 0b00000000}, // D
{0b00000000, 0b01111110, 0b01000000, 0b01111100, 0b01000000, 0b01000000, 0b01111110, 0b00000000}, // E
{0b00000000, 0b01000000, 0b01000000, 0b01000000, 0b01110000, 0b01000000, 0b01111110, 0b00000000}, // F
{0b00000000, 0b00111100, 0b01000010, 0b01001110, 0b01000000, 0b01000010, 0b00111100, 0b00000000}, // G
{0b00000000, 0b01000010, 0b01000010, 0b01111110, 0b01000010, 0b01000010, 0b01000010, 0b00000000}, // H
{0b00000000, 0b01111100, 0b00010000, 0b00010000, 0b00010000, 0b00010000, 0b01111100, 0b00000000}, // I
};
byte rotatedLetters[9][8];
void setup() {
lc.shutdown(displayNumber, false);
lc.setIntensity(displayNumber, 15);
lc.clearDisplay(displayNumber);
for (int i = 0; i < 9; i++) {
for (int row = 0; row < 8; row++) {
rotatedLetters[i][row] = reverseBits(letters[i][7 - row]);
}
}
}
void loop() {
for (int letter = 0; letter < 9; letter++) {
lc.clearDisplay(0);
for (int row = 0; row < 8; row++) {
lc.setRow(0, row, rotatedLetters[letter][row]);
}
delay(1000);
}
}
byte reverseBits(byte b) {
byte reversed = 0;
for (int i = 0; i < 8; i++) {
reversed = (reversed << 1) | (b & 1);
b >>= 1;
}
return reversed;
}