// 6 колонок
const byte columns[6] = {2, 3, 4, 5, 6, 9};
// 2 ряда
const byte rows[2] = {7, 8};
void setup() {
// Колонки
for (byte i = 0; i < 6; i++) {
pinMode(columns[i], OUTPUT);
digitalWrite(columns[i], LOW);
}
// Ряды
for (byte i = 0; i < 2; i++) {
pinMode(rows[i], OUTPUT);
digitalWrite(rows[i], LOW);
}
}
void showLED(byte row, byte column) {
// Сначала всё выключаем
for (byte i = 0; i < 2; i++) {
digitalWrite(rows[i], LOW);
}
for (byte i = 0; i < 6; i++) {
digitalWrite(columns[i], LOW);
}
// Включаем нужную колонку
digitalWrite(columns[column], HIGH);
// Включаем нужный ряд
digitalWrite(rows[row], HIGH);
delay(150);
// Выключаем
digitalWrite(rows[row], LOW);
digitalWrite(columns[column], LOW);
}
void loop() {
// Первый ряд слева направо
for (byte c = 0; c < 6; c++) {
showLED(0, c);
}
// Второй ряд слева направо
for (byte c = 0; c < 6; c++) {
showLED(1, c);
}
// Второй ряд справа налево
for (int c = 5; c >= 0; c--) {
showLED(1, c);
}
// Первый ряд справа налево
for (int c = 5; c >= 0; c--) {
showLED(0, c);
}
}