MOD-LED8x8RGB is intelligent 8×8 RGB LED module, it allow many modules to be stacked together.
If we look at the back side there are two connectors named EXT-IN and EXT-OUT when two modules are stack together EXT-IN of the one snap to EXT-OUT of the other so both get connected.
MOD-LED8x8RGB works with 5V power supply as you can see on the two sides there are big copper pads named VCC/GND and VCC1/GND1 when modules are snap together permanently (if you make big screen) is good these VCC-VCC1 and GND-GND1 to be connected between the modules so better power distribution is achieved.
to connect MOD-LED8x8RGB you will need ARDUINO working with 5V like OLIMEXINO-32U4 – make sure the power jumper is set to 5V as OLIMEXINO-32U4 can work both on 3.3 and 5V.
Then you should connect OLIMEXINO-32U4 to MOD-LED8x8RGB as on above picture in this way:
- D13 -> EXT-IN.LATCH
- 5V -> EXT-IN.VCC
- GND -> EXT-IN.GND
- UEXT.MOSI -> EXT-IN.DATA
- UEXT.CLK -> EXT-IN.SCK
All next MOD-LED8x8RGB modules snap together, if you make new row of modules use jumper wires to connect EXT-OUT of the most right module on the first row to the EXT-IN of the most left module in the next row and etc.
Working with Arduino led8x8rgb.h library:
led8x8rgb.h and font.h are necessary to work with MOD-LED8x8RGB, you can download them from GitHub: https://github.com/OLIMEX/DUINO/tree/master/AVR/MOD-LED8x8RGB
how to use it?
first define how many matrixes you have connected by altering bigX and bigY numbers in led8x8rgb.h
then you can use color variable to set your color from 0 – black to 7- white
there are two other variables cX and cY which define where on screen to print text or characters and these get automatically updated after printing to new position
the library have functions available:
- drawPixel(x,y) draws drawPixel at X,Y coordinates (1,1) is upper left corner
- drawLine(x1,y1,x2,y2) draws line
- drawRectangle(x1,y1,x2,y2) draws rectangle
- drawSolidRectangle(x1,y1,x2,y2) draws solid rectangle
- drawElipse(x,y,rx,ry) draws elipse
- drawCircle(x,y,r) draws circle
- drawTriangle(x1,y1,x2,y2,x3,y3) draws triangle
- drawChar(c) – draws char at cX, cY and updates cX, cY
- drawString(s) – draws string at cX, cY and updates cX, cY
- lScroll() – scrolls all screen left 1 column
- rScroll() – scrolls all screen right 1 column
- scrollCharLeft(c) – scrolls one character from the bottom right matrix to the left
- scrollCharRight(c) – scrolls one character from the upper left matrix to the right
- scrollString( s, dir) – scrolls string left or right depend on dir
Restless_Dancer.ino, Sentence.ino and Winking_Face.ino are demo codes made with led8x8rgb.h library.
Note that MOD-LED8x8RGB is not simple shift register matrix, but have microcontroller inside, so once you shift the info IN and LATCH it the microcontroller takes care to refresh the image on the matrix, this way with slow SPI you can drive large displays as no need to permanently shift new and new images to the screen as on the dummy RGB matrixes.
Here is video of the demo code from the GitHUb: