int col1 = 12, col2 = 11, col3 =10;
int colPins[3] = {col1, col2, col3};
int row1 = 9, row2 = 8, row3 = 7;
int rowPins[3] = {row1, row2, row3};
int matrix[3][3] = {
{0, 1, 0},
{1, 0, 1},
{0, 1, 0}
};
void init_led_matrix() {
for(int col = 0; col < 3; col++) {
pinMode(colPins[col], OUTPUT);
digitalWrite(colPins[col], 1);
}
for(int row = 0; row < 3; row++) {
pinMode(rowPins[row], OUTPUT);
digitalWrite(rowPins[row], 0);
}
}
void refresh_led_matrix() {
for(int row = 0; row < 3; row++) {
for(int col = 0; col < 3; col++) {
digitalWrite(colPins[col], !matrix[row][col]);
}
digitalWrite(rowPins[row], 1);
digitalWrite(rowPins[row], 0);
}
}
void setup() {
// put your setup code here, to run once:
init_led_matrix();
}
unsigned long lastRefreshed = 0;
#define REFRESH_PERIOD 16 // ms
void loop() {
// put your main code here, to run repeatedly:
if(millis() >= lastRefreshed + REFRESH_PERIOD) {
lastRefreshed = millis();
refresh_led_matrix();
}
}