//Copyright (C) 30.05.2025, Kirill ZHivotkov
#include <Adafruit_NeoPixel.h>
#include <limits.h>
#define SIZE 16
#define PIN 4
Adafruit_NeoPixel pixels(SIZE * SIZE, PIN);
void setup() {
Serial.begin(9600);
pixels.begin();
}
void loop() {
for (byte j = 0; j < SIZE; j++) {
for (byte i = 0; i < SIZE; i++) {
pixels.setPixelColor(XY(i, j), pixels.Color(UCHAR_MAX / 4, UCHAR_MAX / 4, 0));
pixels.show();
delay(100);
pixels.setPixelColor(XY(i, j), pixels.Color(0, 0, 0));
pixels.show();
}
}
for (byte j = 0; j < SIZE; j++) {
for (byte i = 0; i < SIZE; i++) {
pixels.setPixelColor(XY(j, i), pixels.Color(UCHAR_MAX / 4, UCHAR_MAX / 4, 0));
pixels.show();
delay(100);
pixels.setPixelColor(XY(j, i), pixels.Color(0, 0, 0));
pixels.show();
}
}
}
byte XY(byte x, byte y) { //For Wokwi
return y * SIZE + x;
}
/*
byte XY(byte x, byte y) { //For Real Project
if (y % 2 == 0) {
return y * SIZE + x;
} else {
return ((y + 1) * SIZE - 1) - x;
}
}
*/