Matrice di led con HT1632C (2)

luca 03/10/2012 8

Riprendiamo oggi il nostro display a matrice di led con un primo esempio di utilizzo con Arduino…

COLLEGAMENTI

Come detto, per pilotare il display sono sufficienti 3 pin. Possiamo utilizzare qualsiasi pin digitale di Arduino: per comodità nello sketch sono definiti degli alias:

#define DISPLAY_CS    3
#define DISPLAY_WR    4
#define DISPLAY_DATA  5

Il display viene alimentato a 5V, possiamo prelevare alimentazione e massa sempre da Arduino:

Il connettore presenta 4 pin di CS: va collegato ad Arduino quello relativo all’id (vedi il dip switch) del modulo

COMUNICAZIONE

Per comunicare con il display, il codice Arduino dovrà per prima cosa mettere a livello logico 0 il pin CS.

Quindi, per ogni bit,

  • mettere a livello logico basso il pin RW
  • inviare il bit sul pin DATA
  • mettere a livello logico alto il pin RW

infatti il valore presente sul pin DATA viene letto sul fronte di salita del pin RW.

Leggendo il datasheet del chip HT1632C, si nota come comandi e indirizzi vadano inviati dal bit più significativo (MSB), mentre i dati da quello meno significativo (LSB):

COMANDI

L’integrato HC1632C definisce 3 comandi, identificati dai primi 3 bit inviati:

  • READ, 110
  • WRITE, 101
  • COMMAND, 100

I primi due comandi sono seguiti dall’indirizzo di memoria e dai dati; il terzo invece è seguito da un codice comando che specifica il particolare comando da eseguire.

INIZIALIZZAZIONE

All’accensione, il display è disabilitato:

Per poterlo utilizzare, dovremo inviare i comandi di SYS EN e LED On (come vedremo questi due comandi saranno inviati all’interno del metodo setup() del nostro sketch).
Nella prossima pagina vedremo un primo sketch di esempio…

Pagine: 1 2

8 Comments »

  1. Mike 07/01/2013 at 04:13 - Reply

    How fast can the LEDs be updated? I’d like to write to the matrix so that everything is lit, then send a new image 100 – 300 milliseconds later and repeat this at least 10 times over 3 seconds.

    thanks,

    Mike

  2. 123 23/12/2013 at 21:06 - Reply

    Hello Luca

    Is There any chance to translate your code for other
    LED-display from Sure electronics.
    I have this LED-Display

    http://www.sureelectronics.net/goods.php?id=1136

    I try to understand how the HT1632C works but I dont get it :(

    • luca 24/12/2013 at 08:48 - Reply

      Hi Ahmet,

      unfortunately this is the only display by Sure that I own so I can’t modify/test the code on different models…

  3. Ahmet 25/12/2013 at 14:49 - Reply

    Hello

    Luca thank you its no problem, i got it

    thank you very much! :D

  4. Giuseppe 23/01/2015 at 22:27 - Reply

    CIao Luca,
    anzitutto complimenti, poi…..
    non riesco a capire il codice arduino per accendere un led alla volta. In particolare quando entra nel loop, dove viene incrementato l’indirizzo di memoria dell’ HT1632 ? Io noto che anche ad ogni incremento di j l’indirizzo è sempre lo stesso. Come mai?
    Ti ringrazio anticipatamente.

    • luca 31/01/2015 at 10:15 - Reply

      Ciao Giuseppe,

      ad ogni “refresh” devi inviare lo stato (ON/OFF) di tutti i led… questo refresh viene gestito dal ciclo sulla variabile i. La variabile j che indica la posizione del led acceso viene invece incrementata nel loop() principale e – se è arrivata a 255, viene riportata a 0. Quindi il loop principale “cicla” la posizione del led acceso, mentre il loop interno invia al display – per ogni ciclo principale – lo stato di tutti i led.
      bye

  5. Man 04/06/2016 at 21:08 - Reply

    It’s really usefull.Great!Many thanks!

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