Matrice di led con HT1632C (3)

luca 09/10/2012 9

In questo post, vedremo come visualizzare dei caratteri sul nostro display…

CODIFICA

Guardando il datasheet del display, si vede come i led siano mappati sulle celle della memoria RAM partendo dall’angolo in alto a sinistra:

Su un foglio di carta a quadretti prepariamo la scritta da visualizzare ricordando

che l’altezza dei caratteri è di 8 quadretti e che possiamo arrivare al massimo a 32 colonne:

Ad ogni quadretto nero corrisponde un bit a 1; ad ogni quadretto bianco corrisponde un bit a 0.

Scriviamo ora i bits, leggendoli come indicato dalle frecce e utilizzando come prefisso B per indicare ad Arduino che si tratta di valori binari:

PROGMEM

Arduino ha una memoria RAM molto limitata (2KB): per memorizzare grandi quantità di dati possiamo sfruttare la memoria programma (32KB in Arduino Uno) utilizzando la direttiva PROGMEM:

Per leggere i dati memorizzati con tale tecnica, è necessario utilizzare dei metodi dedicati (definiti in pgmspace.h); in particolare noi utilizzeremo pgm_read_byte():

SKETCH

Lo sketch completo è disponibile nel repository GitHub.

Il suo funzionamento è molto semplice:

  • memorizza in PROGMEM la scritta da visualizzare (text[])
  • inizializza il display
  • invia la scritta (24 colonne) leggendo byte per byte l’array text[]
  • invia infine 8 colonne (64bit) di zeri per completare le 32 colonne del display

Ecco lo sketch in azione:

9 Comments »

  1. Locomolo 10/10/2012 at 23:36 - Reply

    Hi!

    Is it posible to scroll a simple text?

    Is there any library dispo?

    Thanks!!

    • luca 11/10/2012 at 08:12 - Reply

      Hello! I’m working on a scroll tutorial, it should be ready in a week. A library will follow!
      Thanks

  2. Locomolo 11/10/2012 at 20:16 - Reply

    Great!!!!! good work!

    I will follow your project

  3. Kevin 11/11/2015 at 21:31 - Reply

    Hi Luca,

    How can I expand the display so it won’t cut off at the 24th column? I would like to use the whole 32 columns to display texts.

    Thanks

    • luca 11/11/2015 at 21:54 - Reply

      Hi Kevin, this is strange… everywhere in my code the buffer, the loops… are from 0 to 31 columns to use the full display… maybe an electrical problem?

      • Kevin 11/11/2015 at 23:37 - Reply

        Hi Luca

        I will take a deeper look at it, but when i run the Rolling example, i can see the dot going all the way down to the end. I’ll let you know :)

        Anyways I am wonder if there is a way to shut down the LED even when there is power floating.

  4. torquaro 09/04/2016 at 16:07 - Reply

    non riesco a programmare la matrice led su un arduino compaibile WeMos D1 R2.
    Ne sapete qualcosa ??????

  5. torquato 09/04/2016 at 16:09 - Reply

    con arduino uno funziona tutto. Volevo sincronizzare ds1307 con NTP

Leave A Response »

Questo sito usa i cookie per poterti offrire una migliore esperienza di navigazione maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi