Skip to main content

Grove - LED Matrix Driver (HT16K33)

pir

LED Matrix is low cost and usually used to display simple numbers and images. The Grove - LED Matrix Driver is the I^2^C based product which allows you to control the LED matrix with our prepared and easy-to-use libraries, or you can create your own library to control it to satisfy your need. The 8*8 LED Matrix can be assembled and unassembled from the driver board easily, so it is convenient to change different color LED matrix display based on your need.

pir

Version

Product VersionChangesReleased Date
Grove - LED Matrix Driver (HT16K33)InitialSep 2018

Feature

  • Integrated RC oscillator
  • R/W address auto increment
  • Max. 8 x 8 patterns
  • I^2^C-bus interface

##Specification

ItemValue
Supply Voltage3.3V / 5V
LED Matrix Dot NO.8 * 8
Operating temperature-40~85℃
Storage temperature-50~125℃
InterfaceI2C
I2C address0x70(defult) 0x71~0x77(configurable)
sizeL: 40mm W: 40mm H: 17mm
Weight8.8g
Package sizeL: 140mm W: 90mm H: 18mm
Gross Weight15g
note
     There are 8 possible I2C address of this grove, from 0x70 to 0x77. The defult I^2^C address is 0x77. You can change the I2C address by do some soldering as instructed in the below table. 
I^2^C addressConnection
0x70Disconnect: A0 A1 A2
0x71Disconnect: A1 A2, Connect: A0
0x72Disconnect: A0 A2, Connect: A1
0x73Disconnect: A2, Connect: A1 A0
0x74Disconnect: A0 A1, Connect: A2
0x75Disconnect: A1, Connect: A0 A2
0x76Disconnect: A0, Connect: A1 A2
0x77Connect: A0 A1 A2

For example, if I want to change the address to 0x73, I need to connect pad A1,A0 and disconnect pad A2. Then I will get address 0b01110011, that is 0x73.

pir

Typical applications

  • Industrial control indicators
  • Digital clocks, thermometers, counters, multimeters
  • Combo sets
  • VCR sets
  • Instrumentation readouts
  • Other consumer applications
  • LED Displays

Hardware Overview

Pin Out

pir

Platforms Supported

ArduinoRaspberry Pi

pir

pir

Getting Started

Play With Arduino

Materials required

Seeeduino V4.2Base ShieldGrove-LED Matrix Drivermatrix LED - Red

pir

pir

pir

pir

Get ONE NowGet ONE NowGet ONE NowGet ONE Now
note
  **1.** Please plug the USB cable gently, otherwise you may damage the port. Please use the USB cable with 4 wires inside, the 2 wires cable can't transfer data. If you are not sure about the wire you have, you can click [here](https://www.seeedstudio.com/Micro-USB-Cable-48cm-p-1475.html) to buy 

**2.** Each Grove module comes with a Grove cable when you buy. In case you lose the Grove cable, you can click [here](https://www.seeedstudio.com/Grove-Universal-4-Pin-Buckled-20cm-Cable-%285-PCs-pack%29-p-936.html) to buy.
  • Step 1. Connect red square matrix LED to the Grove-LED Matrix Driver.

  • Step 2. Connect the Grove - LED Matrix Driver to port I^2^C of Grove-Base Shield.

  • Step 3. Plug Grove - Base Shield into Seeeduino.

  • Step 4. Connect Seeeduino to PC via a USB cable.

pir

Software

note
    If this is the first time you work with Arduino, we strongly recommend you to see [Getting Started with Arduino](https://wiki.seeedstudio.com/Getting_Started_with_Arduino/) before the start.
  • Step 3. Restart the Arduino IDE. Open the example, you can open it in the following three ways:

    1. Open it directly in the Arduino IDE via the path: File --> Examples -->Grove - LED Matrix Driver(HT16K33 with 8*8 LED Matrix) --> display_bars.

      pir

    2. Open it in your computer by click the basic_demo.ino which you can find in the folder XXXX\Arduino\libraries\Grove_LED_Matrix_Driver_HT16K33⁩\examples\display_bars⁩\display_bars⁩.ino, XXXX is the location you installed the Arduino IDE.

      pir

    3. Or, you can just click the icon

      pir

      in upper right corner of the code block to copy the following code into a new sketch in the Arduino IDE.



#include <Wire.h>
#include "Grove_LED_Matrix_Driver_HT16K33.h"


Matrix_8x8 matrix;

void setup()
{
Wire.begin();
matrix.init();
matrix.setBrightness(0);
matrix.setBlinkRate(BLINK_OFF);
}

void loop()
{
for (int i=0;i<33;i++)
{
// The input range of writeBar is [0-32]
matrix.writeBar(i);
matrix.display();
delay(150);
}
}


note
    The library file may be updated. This code may not be applicable to the updated library file, so we recommend that you use the first two methods.
tip
    If everything goes well, you will be able to see various bars display on the LED matrix.

If you would like to run other examples, you may do similar processes and be able to see different displays.

DIY

Are you willing to let the LED matrix to display the emoji? Now, it is your turn to design your own. Prepare yourself with the above-listed Hardware and Software requirements.

  • Step 1. Use the online LED Matrix Editor to edit and create animations for 8*8 LED matrices.

  • Step 2. Select the LEDs color on the top right corner. In my case, I choose 'red' as I am using the Red LED Matrix.

  • Step 3. Create your own design by simply click on the blank dot.

  • Step 4. Copy the hex file generated according to your design. There are two ways you can do this:

    • copy the hex value in the hex box at the bottom left corner.
    • copy the corresponding code in the Arduino/C code section.

pir

  • Step 5. Create the new '.ino' file under the same folder with other LED Matrix examples and copy below code.

#include "Grove_LED_Matrix_Driver_HT16K33.h"
#include <Wire.h>

//put your own design hex group here.
const uint64_t Emoji[] =
{
0x3c4299a581a5423c,
0x3c4281bd81a5423c,
0x3c42a59981a5423c,
};

Matrix_8x8 matrix;


void setup() {
Wire.begin();
matrix.init();
matrix.setBrightness(0);
matrix.setBlinkRate(BLINK_OFF);
/*************************************************************
* Description
* Setting the blink rate of matrix
* Parameter
* blink_type: BLINK_OFF, BLINK_2HZ, BLINK_1HZ
* Return
* Null.
*************************************************************/
}

void loop() {
for (int i = 0;i < 3;i++)
{
matrix.writeOnePicture(Emoji[i]);
/*************************************************************
* Description
* Write a picture in display buffer.
* Call display() to show display buffer.
* Parameter
* pic: A uint64_t type 8x8 matrix picture, you can make it at
* https://xantorohara.github.io/led-matrix-editor/#
* Return
* Null.
*************************************************************/
matrix.display();
/*************************************************************
* Description
* Clear the display buffer.
* This function will display nothing on 8x8 Matrix after call display().
* Parameter
* Null.
* Return
* Null.
*************************************************************/
delay(500);
}
}

  • Step 6. Upload your project to your seeeduino.
tip
     If everything goes well, your LED Matrix will display as below.

pir

Schematic Online Viewer

Resources

Tech Support & Product Discussion

Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs.

Loading Comments...