#include <Adafruit_NeoPixel.h>
#define NUM_COLS 18
#define NUM_ROWS 20
#define NUM_LEDS NUM_COLS * NUM_ROWS
// Dichiarazione dei pin di output per ciascuna colonna
uint8_t ledPins[NUM_COLS] = {33, 32, 27, 26, 25, 12, 13, 14, 15, 16, 17, 21, 22, 4, 2, 5, 18, 19};
// Array per memorizzare i LED per ciascuna colonna
Adafruit_NeoPixel* strips[NUM_COLS];
// Array di esempio: gradiente di colori su una matrice 18x20
uint32_t image[18][20] = {
// Colonna 1
{0xFF0000, 0xFF1100, 0xFF2200, 0xFF3300, 0xFF4400, 0xFF5500, 0xFF6600, 0xFF7700, 0xFF8800, 0xFF9900,
0xFFAA00, 0xFFBB00, 0xFFCC00, 0xFFDD00, 0xFFEE00, 0xFFFF00, 0xFFFF11, 0xFFFF22, 0xFFFF33, 0xFFFF44},
// Colonna 2
{0xFF1100, 0xFF2200, 0xFF3300, 0xFF4400, 0xFF5500, 0xFF6600, 0xFF7700, 0xFF8800, 0xFF9900, 0xFFAA00,
0xFFBB00, 0xFFCC00, 0xFFDD00, 0xFFEE00, 0xFFFF00, 0xFFFF11, 0xFFFF22, 0xFFFF33, 0xFFFF44, 0xFFFF55},
// Colonna 3
{0xFF2200, 0xFF3300, 0xFF4400, 0xFF5500, 0xFF6600, 0xFF7700, 0xFF8800, 0xFF9900, 0xFFAA00, 0xFFBB00,
0xFFCC00, 0xFFDD00, 0xFFEE00, 0xFFFF00, 0xFFFF11, 0xFFFF22, 0xFFFF33, 0xFFFF44, 0xFFFF55, 0xFFFF66},
// Colonna 4
{0xFF3300, 0xFF4400, 0xFF5500, 0xFF6600, 0xFF7700, 0xFF8800, 0xFF9900, 0xFFAA00, 0xFFBB00, 0xFFCC00,
0xFFDD00, 0xFFEE00, 0xFFFF00, 0xFFFF11, 0xFFFF22, 0xFFFF33, 0xFFFF44, 0xFFFF55, 0xFFFF66, 0xFFFF77},
// Colonna 5
{0xFF4400, 0xFF5500, 0xFF6600, 0xFF7700, 0xFF8800, 0xFF9900, 0xFFAA00, 0xFFBB00, 0xFFCC00, 0xFFDD00,
0xFFEE00, 0xFFFF00, 0xFFFF11, 0xFFFF22, 0xFFFF33, 0xFFFF44, 0xFFFF55, 0xFFFF66, 0xFFFF77, 0xFFFF88},
// Colonna 6
{0xFF5500, 0xFF6600, 0xFF7700, 0xFF8800, 0xFF9900, 0xFFAA00, 0xFFBB00, 0xFFCC00, 0xFFDD00, 0xFFEE00,
0xFFFF00, 0xFFFF11, 0xFFFF22, 0xFFFF33, 0xFFFF44, 0xFFFF55, 0xFFFF66, 0xFFFF77, 0xFFFF88, 0xFFFF99},
// Colonna 7
{0xFF6600, 0xFF7700, 0xFF8800, 0xFF9900, 0xFFAA00, 0xFFBB00, 0xFFCC00, 0xFFDD00, 0xFFEE00, 0xFFFF00,
0xFFFF11, 0xFFFF22, 0xFFFF33, 0xFFFF44, 0xFFFF55, 0xFFFF66, 0xFFFF77, 0xFFFF88, 0xFFFF99, 0xFFFFAA},
// Colonna 8
{0xFF7700, 0xFF8800, 0xFF9900, 0xFFAA00, 0xFFBB00, 0xFFCC00, 0xFFDD00, 0xFFEE00, 0xFFFF00, 0xFFFF11,
0xFFFF22, 0xFFFF33, 0xFFFF44, 0xFFFF55, 0xFFFF66, 0xFFFF77, 0xFFFF88, 0xFFFF99, 0xFFFFAA, 0xFFFFBB},
// Colonna 9
{0xFF8800, 0xFF9900, 0xFFAA00, 0xFFBB00, 0xFFCC00, 0xFFDD00, 0xFFEE00, 0xFFFF00, 0xFFFF11, 0xFFFF22,
0xFFFF33, 0xFFFF44, 0xFFFF55, 0xFFFF66, 0xFFFF77, 0xFFFF88, 0xFFFF99, 0xFFFFAA, 0xFFFFBB, 0xFFFFCC},
// Colonna 10
{0xFF9900, 0xFFAA00, 0xFFBB00, 0xFFCC00, 0xFFDD00, 0xFFEE00, 0xFFFF00, 0xFFFF11, 0xFFFF22, 0xFFFF33,
0xFFFF44, 0xFFFF55, 0xFFFF66, 0xFFFF77, 0xFFFF88, 0xFFFF99, 0xFFFFAA, 0xFFFFBB, 0xFFFFCC, 0xFFFFDD},
// Colonna 11
{0xFFAA00, 0xFFBB00, 0xFFCC00, 0xFFDD00, 0xFFEE00, 0xFFFF00, 0xFFFF11, 0xFFFF22, 0xFFFF33, 0xFFFF44,
0xFFFF55, 0xFFFF66, 0xFFFF77, 0xFFFF88, 0xFFFF99, 0xFFFFAA, 0xFFFFBB, 0xFFFFCC, 0xFFFFDD, 0xFFFFEE},
// Colonna 12
{0xFFBB00, 0xFFCC00, 0xFFDD00, 0xFFEE00, 0xFFFF00, 0xFFFF11, 0xFFFF22, 0xFFFF33, 0xFFFF44, 0xFFFF55,
0xFFFF66, 0xFFFF77, 0xFFFF88, 0xFFFF99, 0xFFFFAA, 0xFFFFBB, 0xFFFFCC, 0xFFFFDD, 0xFFFFEE, 0xFFFFFF},
// Colonna 13
{0xFFCC00, 0xFFDD00, 0xFFEE00, 0xFFFF00, 0xFFFF11, 0xFFFF22, 0xFFFF33, 0xFFFF44, 0xFFFF55, 0xFFFF66,
0xFFFF77, 0xFFFF88, 0xFFFF99, 0xFFFFAA, 0xFFFFBB, 0xFFFFCC, 0xFFFFDD, 0xFFFFEE, 0xFFFFFF, 0xFFFFFF},
// Colonna 14
{0xFFDD00, 0xFFEE00, 0xFFFF00, 0xFFFF11, 0xFFFF22, 0xFFFF33, 0xFFFF44, 0xFFFF55, 0xFFFF66, 0xFFFF77,
0xFFFF88, 0xFFFF99, 0xFFFFAA, 0xFFFFBB, 0xFFFFCC, 0xFFFFDD, 0xFFFFEE, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF},
// Colonna 15
{0xFFEE00, 0xFFFF00, 0xFFFF11, 0xFFFF22, 0xFFFF33, 0xFFFF44, 0xFFFF55, 0xFFFF66, 0xFFFF77, 0xFFFF88,
0xFFFF99, 0xFFFFAA, 0xFFFFBB, 0xFFFFCC, 0xFFFFDD, 0xFFFFEE, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF},
// Colonna 16
{0xFFFF00, 0xFFFF11, 0xFFFF22, 0xFFFF33, 0xFFFF44, 0xFFFF55, 0xFFFF66, 0xFFFF77, 0xFFFF88, 0xFFFF99,
0xFFFFAA, 0xFFFFBB, 0xFFFFCC, 0xFFFFDD, 0xFFFFEE, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF},
// Colonna 17
{0xFFFF11, 0xFFFF22, 0xFFFF33, 0xFFFF44, 0xFFFF55, 0xFFFF66, 0xFFFF77, 0xFFFF88, 0xFFFF99, 0xFFFFAA,
0xFFFFBB, 0xFFFFCC, 0xFFFFDD, 0xFFFFEE, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF},
// Colonna 18
{0xFFFF22, 0xFFFF33, 0xFFFF44, 0xFFFF55, 0xFFFF66, 0xFFFF77, 0xFFFF88, 0xFFFF99, 0xFFFFAA, 0xFFFFBB,
0xFFFFCC, 0xFFFFDD, 0xFFFFEE, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF}
};
void setup() {
// Inizializza ogni strip collegato a ciascun pin
for (int i = 0; i < NUM_COLS; i++) {
strips[i] = new Adafruit_NeoPixel(NUM_ROWS, ledPins[i], NEO_GRB + NEO_KHZ800);
strips[i]->begin();
strips[i]->show(); // Inizializza i LED a spento
}
// Carica l'immagine sul display di LED
displayImage();
}
void displayImage() {
for (int col = 0; col < NUM_COLS; col++) {
for (int row = 0; row < NUM_ROWS; row++) {
uint32_t color = image[col][row];
strips[col]->setPixelColor(row, color);
}
strips[col]->show(); // Aggiorna i LED nella colonna corrente
}
}
void loop() {
// Eventuali animazioni o aggiornamenti
}