This version of the LED backpack is designed for these very cute miniature 8x8 matrices. They measure only 0.8"x0.8" so its a shame to use a massive array of chips to control it. This backpack solves the annoyance of using 16 pins or a bunch of chips by having an I2C constant-current matrix controller sit neatly on the back of the PCB. The controller chip takes care of everything, drawing all 64 LEDs in the background. All you have to do is write data to it using the 2-pin I2C interface. There are two address select pins so you can select one of 4 addresses to control up to 4 of these on a single 2-pin I2C bus (as well as whatever other I2C chips or sensors you like). The driver chip can 'dim' the entire display from 1/16 brightness up to full brightness in 1/16th steps. It cannot dim individual LEDs, only the entire display at once.
Wiring to the matrix is really easy
- Connect CLK to the I2C clock - on Arduino UNO thats Analog #5, on the Leonardo its Digital #3, on the Mega its digital #21
- Connect DAT to the I2C data - on Arduino UNO thats Analog #4, on the Leonardo its Digital #2, on the Mega its digital #20
- Connect GND to common ground
- Connect VCC+ to power - 5V is best but 3V also seems to work for 3V microcontrollers.
Next, download the Adafruit LED Backpack library from github . To download click the DOWNLOADS button in the top right corner, rename the uncompressed folder Adafruit_LEDBackpack. Check that the Adafruit_LEDBackpack folder contains Adafruit_LEDBackpack.cpp and Adafruit_LEDBackpack.h Place the Adafruit_LEDBackpack library folder your arduinosketchfolder/libraries/ folder. You may need to create the libraries subfolder if its your first library.
You'll also need to download the Adafruit GFX library that provides the graphics drawing routines. Follow the same instructions as above, but with Adafruit_GFX instead of Adafruit_LEDBackpack.
Restart the IDE.
Once you've restarted you should be able to select the File->Examples->Adafruit_LEDBackpack->matrix88 example sketch. Upload it to your Arduino as usual. You should see a basic test program that goes through a bunch of different drawing routines
Once you're happy that the matrix works, you can write your own sketches. The 8x8 matrix supports everything the Adafruit GFX library - drawing pixels, lines, rectancles, circles, triangles, roundrects, and small bitmaps. For more details check out the GFX page which will detail all of the GFX routines.
All the drawing routines only change the display memory kept by the Arduino. Don't forget to call writeDisplay() after drawing to 'save' the memory out to the matrix via I2C.
There are also a few small routines that are special to the matrix:
- setBrightness(brighness)- will let you change the overall brightness of the entire display. 0 is least bright, 15 is brightest and is what is initialized by the display when you start
blinkRate(rate) - You can blink the entire display. 0 is no blinking. 1, 2 or 3 is for display blinking.
The default orientation for graphics commands on this display places pixel (0,0) at the top-left when the header is at the top and Adafruit logo at the bottom. matrix.setRotation() can be used to use the display in other orientations.