Ciao,
sto provando a utilizzare il MOD-LED8X8 RGB ( MOD-LED8x8RGB - Open Source Hardware Board) . Sono riuscito a collegarlo al mio Arduino e a utilizzare i vari esempi di testo scorrevole, utilizzando le librerie font.h e lcd8x8rgb.h. Io però vorrei capire come poter fare per accendere tutti e 64 i led insieme del colore desiderato. Mi piacerebbe inizialmente riuscire a creare un semplice semaforo che dal verde vada al giallo e poi al rosso. Come devo procedere?
Grazie Guglielmo,
sono finalmente riuscito quantomeno a capire come accendere tutti i led. Ora vorrei solo comprendere come vengono gestiti i colori. Provando a inserire l'istruzione color(x,x,x) con all'interno il codice rgb del colore desiderato non funziona. Mi sembra di comprendere che posso utilizzare solo valori da 1 a 7 ma mi pare strano non poter inviare il codice rgb del colore.
Il verde ok, il giallo ok, il rosso ok ma ora non riesco a ottenere l'arancione.
Se esamini la drawPixel() vedi come usa la variabile “color” :
void drawPixel (unsigned int X, unsigned int Y) { //draw drawPixel at x,y coordinates to MOD-LED8x8RGB 1,1 is upper left corner
if (Y<=bigY*8 && X<=bigX*8 && X>0 && Y>0) {
if (Y>8) X=(X+bigX*8)*((Y-1)/8);
Y=Y%8;
if (Y==0) Y=8;
int p;
p=NumberX-((X-1)/8)-1;
videobuf[3*(Y-1)+24*p]&=~(1<<((X-1)%8)); //turn off chosen drawPixel
videobuf[3*(Y-1)+1+24*p]&=~(1<<((X-1)%8));
videobuf[3*(Y-1)+2+24*p]&=~(1<<((X-1)%8));
if (color&1) videobuf[3*(Y-1)+24*p]|=(1<<((X-1)%8)); //set color to the drawPixel
if (color&2) videobuf[3*(Y-1)+1+24*p]|=(1<<((X-1)%8));
if (color&4) videobuf[3*(Y-1)+2+24*p]|=(1<<((X-1)%8));
}
}
Come vedi, per accendere i tre colori di ogni LED RGB fa:
color AND 1 (0x01 … primo bit) per accendere un primo colore, poi fa color AND 2 (0x02 … secondo bit) per accendere il secondo colore ed infine color AND 4 (0x04 … terzo bit) per accendere il terzo colore.
Impostando opportunamente color da 0 a 7 hai 8 possibili colori … NON hai invece la possibilità di avere tutti i possibili colori che normalmente si hanno con LED RGB.
Ora è chiaro. Grazie Guglielmo. In effetti mi mancava quella parte per comprendere come venissero gestiti i colori. Volendo creare un pannello di circa 16 cm di lato gestibile con Arduino che possa rappresentare tutti i colori RGB cosa potrei usare? Scusa la domanda forse banale ma è il primo esperimento che sto facendo con pannelli rgb.
Io userei delle strisce di neoPixel (come li chiama Adafruit) o comunque strisce con LED WS2812 … controlli colore e intensità di ogni singolo LED il tutto con soli … 3 fili (+Vcc, GND, data)