Orologio con LED WS2812b

Salve a Tutti :slight_smile:

come da oggetto, vorrei realizzare un orologio da muro di grandi dimensioni. A tal proposito ho pensato di utilizzare i led indirizzabili ws2812b come pixel di un grande ‚Äúdisplay a 7 segmenti‚ÄĚ, un Arduino nano, un modulo DS3231 per la regolazione dell‚Äôora, ed un sensore di luminosit√†. Visto, per√≤, che non ho ancora molta capacit√† di programmazione, ho cercato in rete alcuni progetti e codici per poter imparare e prendere spunto; cos√¨ ne ho trovato uno che fa al caso mio.
Prima di comprare l’hardware ho pensato di capire e verificare il codice e le librerie annesse, ma quando faccio la verifica ottengo molti errori di compilazione :confused:

Posso chiedere gentilmente di spiegarmi a cosa sono dovuti?
Allego codice Orologio.ino e qui di seguito lo schema di collegamento:

Immagine Schema

Grazie mille, Umberto :slight_smile:

P.S. - Il filmato del progetto è questo: VIDEO YOUTUBE

Orologio.ino (10 KB)

Errore Compilazione.txt (1.78 KB)

Secondo me qualche libreria non é compatibile con lo sketch.
Da dove hai scaricato le librerie e il sketch?
Ciao Uwe

Ciao Uwe :slight_smile:

ho scaricato le librerie che ha segnalato l'autore del codice ed ho disinstallato le librerie che avevo già, quindi ho installato solo quelle segnalate, ma nulla da fare... :frowning:
Ottengo errori secondo me dovuti ad errori di definizione variabili, ma non ne sono sicuro.

Io ho provato con la RTClib di Adafruit (... che è un fork dell'originale di JeeLabs) ...
... SE quella è la libreria, allora il codice è pieno zeppo di errori, funzioni chiamate senza le parentesi, funzioni utilizzate come variabili a cui vengono assegnati valori, maiuscole al posto delle minuscole, ecc. ecc.

Ora, o la RTClib che usa è un'altra che nulla ha a che vedere né con quella di JeeLabs, né con il fork di Adafruit, o ... quel codice non è mai stato provato, perché così non compilerà mai.

Guglielmo

Salve Guglielmo,

grazie della verifica. Proverò a "sviscerare" qualcosa di buono da quel codice, altrimenti ne proverò a scrivere uno da me. Giusto un consiglio: è corretta la via di utilizzare array per costituire i segmenti dei numeri?

Grazie ancora :slight_smile:

Onestamente NON mi sono messo a vedere come usa gli array che definisce ... probabilmente è una buona strada per semplificarsi la vita quando occorre pilotarli :wink:

Guglielmo

Aggiornamento:

  1. Ho corretto la sintassi della libreria RTC;

  2. Nella definizione delle librerie mancava quella che definisce i comandi del ‚Äútempo‚ÄĚ:

#include <TimeLib.h>

Ora non ho pi√Ļ errori di compilazione :slight_smile:
Non mi resta che prendere l’hardware e provare sul campo.

Una sola domanda: quando si definisce un array, (nell’esempio con 1 led per segmento), la grandezza dell’array è data dal numero 10x7, giusto? ;D

CRGB leds[NUM_LEDS]; // Define LEDs strip
byte digits[10][7] = {{0,1,1,1,1,1,1},   // Digit 0
                      {0,1,0,0,0,0,1},   // Digit 1
                      {1,1,1,0,1,1,0},   // Digit 2
                      {1,1,1,0,0,1,1},   // Digit 3
                      {1,1,0,1,0,0,1},   // Digit 4
                      {1,0,1,1,0,1,1},   // Digit 5
                      {1,0,1,1,1,1,1},   // Digit 6
                      {0,1,1,0,0,0,1},   // Digit 7
                      {1,1,1,1,1,1,1},   // Digit 8
                      {1,1,1,1,0,1,1}};  // Digit 9

Qualsiasi suggerimento è ben accetto.
Grazie, Umberto :wink:

... non vorrei sbagliare, ma dato che la numerazione degli indici di solito inizia dallo zero, scrivendo 10 e 7, e' come se tu facessi 11x8 (nel senso che da 0 a 10 sono 11 cifre e da 0 a 7 sono 8 cifre) ... :wink:

Umberto73:
Aggiornamento:

  1. Ho corretto la sintassi della libreria RTC;

  2. Nella definizione delle librerie mancava quella che definisce i comandi del ‚Äútempo‚ÄĚ:
    #include <TimeLib.h>

Ora non ho pi√Ļ errori di compilazione :slight_smile:

Ottimo !!! :slight_smile:
‚Ķ poi magari scrivi ‚Äúdue righe‚ÄĚ all‚Äôautore ‚Ķ :smiling_imp: ‚Ķ che potrebbe pubblicare programmi corretti !!! >:(

Guglielmo