//rows
#define R1 20
#define R2 21
#define R3 2
#define R4 3
#define R5 4
#define R6 5
#define R7 6
#define R8 7
//columns
#define C1 9
#define C2 10
#define C3 11
#define C4 12
#define C5 13
#define C6 14
#define C7 15
#define C8 16
void setup() {
Serial.begin(9600); // start serial
// setup output ports
for (int j = C1; j <= C8; j++) {
pinMode(j, OUTPUT);
digitalWrite(j, LOW);
}
for (int i = R3; i <= R8; i++) {
pinMode(i, OUTPUT);
digitalWrite(i, HIGH);
}
pinMode(R1, OUTPUT);
digitalWrite(R1, HIGH);
pinMode(R2, OUTPUT);
digitalWrite(R2, HIGH);
}
void displayCharacter(byte character) {
for (int row = R1; row <= R8; row++) {
digitalWrite(row, LOW);
for (int col = C1; col <= C8; col++) {
digitalWrite(col, bitRead(character, col - C1));
}
delay(2); // Adjust delay as needed for your LED matrix
for (int col = C1; col <= C8; col++) {
digitalWrite(col, LOW);
}
digitalWrite(row, HIGH);
}
}
void loop() {
byte characters[] = {
B00111110, // 0
B00001100, // 1
B01101101, // 2
B01011101, // 3
B00001111, // 4
B01011011, // 5
B01111011, // 6
B00001101, // 7
B01111111, // 8
B01011111, // 9
B01110111, // A
B01111100, // B
B00111001, // C
B01011110, // D
B01111001, // E
B01110001 // F
};
for (int i = 0; i < 16; i++) {
displayCharacter(characters[i]);
delay(1000); // Adjust delay as needed between characters
}
}