Parts‎ > ‎Displays‎ > ‎

Sure Electronics 2416 16x24 display


    If you don't want to individually wire 348 LED's then a pre-made led matrix is the way to go. This display board by Sure electronics uses an ht1632c chip to drive an array of led's. The board has the potential to have four displays connected in a row for a 16*96 LED display. All while only using only three-six arduino pins! For more information on how this works see multiplexing and shift registers.

How To Use-

    First make sure to add the Font and ht1632 libraries to your library folder. How to Add a library

The file '2416 sample code' uses both libraries and demonstrates all the code you will need for using these displays. 

If you look at the back of each display, it has two slots for ribbon cables. Simply daisychain them together so it looks like the image below. 

Each display has a physical switch on the back so it knows where in the order it is from 1-4. While upside down, the right most one should be marked one, and so forth.

    Every setup will require one pin for, data, WR, power, ground and then one additional pin for each display. If you have read the shift register page you will know what all of these do. One ribbon cable from the first display should go to the arduino. Wire it according to the diagram below. On the ribbon cable, the first wire will be red to mark the top. When attaching wires into the ribbon cable, one is top right, then two is top left. Just like on the display board. 

I/o Pin

 Arduino Pin
 Data 6
 Wrclk 7

If you need to use these pins for a shield they are changeable -in the code:
static const byte ht1632_data = 6;  
static const byte ht1632_wrclk = 7;
static const byte ht1632_cs[4] = {8,9,10,11};

Now that everything is set up, open the samplecode2416 file. 
Most of the dirty work is done for you. There are only a few methods you need to be familiar with to use these displays. Look first at Setup.
Serial.begin should already be familiar to you. ht1632_setup() is simply a method you must call before using the display, cls() is the method that clears the screen and printhello is a method that demonstrates the two font sizes available and how to print text.


    The new methods here are ht1632_puttinychar(x, y, char[]) and 
ht1632_putchar(x, y, char[]). The X and Y are starting coordinates of the font. All matrix displays use a coordinate plane that begins with the top left of the screen. So (0,0) would be the top left most pixel. There is also a ht1632_putbigchar(x, y, char[]), that is only for numbers. So look and see what chars are available for each font size by looking in the Font.h folder! 

Now lets look in the loop() of our code. 

    Here you see the plot(x, y , v) function. This is the most powerful tool for using the displays as it allows you to plot every pixel individual. V is either 1 for on or 0 for off. The code here plots every point on the screen. This is good for testing to make sure all the displays are working properly. It is important to give a slight delay to give the board time to do its thing. 

By using all the mentioned methods you should be ale to do almost anything with the displays. 

    When coding these displays the cls() should be used as conservatively as possible. There is a very noticeable delay when it tries to clear every pixel. Good code will only erase what has been changed whenever the screen needs to be updated. 

In order to use less than four displays just change the following code:

#define X_MAX 95                         // 71 for 3, 47 for 2
#define Y_MAX 15                         
#define NUM_DISPLAYS 4            

Joel Simon,
Jun 27, 2011, 9:15 AM
Joel Simon,
Jun 27, 2011, 8:44 AM
Joel Simon,
Jun 27, 2011, 8:43 AM