BPI RGB LED Matrix Expansion Module

From Banana Pi Wiki
Revision as of 17:50, 16 May 2018 by Sinovoip (talk | contribs)
Jump to: navigation, search

BPI 8*8 RGB LED Matrix Expansion Module

Front :

![](8x8 RGB LED Matrix 1.JPG)

Back:

![](8x8 RGB LED Matrix 6.JPG)


Produce Overview

Overview
Overview

The Matrix LED module is specifically designed for Banana Pi. The module with 8X8 Matrix LED. User can custom display content through programming. Pay attention, the module do not include driver board. You have to cooperate with Infinity cascade IO expand module

Produce Features

  • 1. Full color RGB
  • 2. Square LED point source
  • 3. Ultrathin
  • 4. Plug and Play
  • 5. No wire needed

Port

need work with IO extend module.

![](io ext board 2.jpg)

Banana Pi connection port,also can use on raspberry pi.


5.Product Parameters

  • 1. Dot Size: 5.0mm
  • 2. Pixel Array: 8×8
  • 3. Luminous Intensity: 40mcd
  • 4. Package Dimension: 60mm×60mm
  • 5. Reverse Voltage(Max): 5V
  • 6. Forward Current(Max): 25mA
  • 7. Peak Forward Current(Max): 100mA
  • 8. Power Dissipation(Max): 100mW
  • 9. Operating Temperature(Max):-35~+85℃
  • 10. Storage Temperature(Max): -35~+85℃
  • 11. Lead Solder Temperature(Max): 260℃ for 5 seconds

Typical Application

  • 1. Scroll the display
  • 2. LOGO display
  • 3. Dynamic signage
    • 1.Product Specification:**

![](spec.jpg)

How to use

How to use on BPI-M1

For the Banana Pi ,just Insert these two module like the picture Below

![](8x8 RGB LED Matrix 8.JPG)

How to use on BPI-M3

OS: BPI-M3 Ubuntu15.10 (Kernel3.4)

Version: 1.0 HDMI

![](ON m3.jpg)

Step 1: Download WiringPI


$ git clone https://github.com/BPI-SINOVOIP/BPI-WiringPi.git1 -b BPI_M3
$ cd BPI-WiringPi
$ chmod +x ./build
$ sudo ./build

Step 2 : Copy smaple code to Blue_RGB8*8.c file

$ sudo vi Blue_RGB8*8.c 

Step 3 : Compile Blue_RGB8*8.c

$ gcc -o Blue_RGB8*8 Blue_RGB8*8.c -l wiringPi 

Step 4: Run Blue_RGB8*8

$ sudo ./Blue_RGB8*8 


Sample Code:

#include <stdio.h>
#include <wiringPi.h>
#include <sr595.h>
#define SPACE { \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0} \
} 
#define FULL { \
{1, 1, 1, 1, 1, 1, 1, 1}, \
{1, 1, 1, 1, 1, 1, 1, 1}, \
{1, 1, 1, 1, 1, 1, 1, 1}, \
{1, 1, 1, 1, 1, 1, 1, 1}, \
{1, 1, 1, 1, 1, 1, 1, 1}, \
{1, 1, 1, 1, 1, 1, 1, 1}, \
{1, 1, 1, 1, 1, 1, 1, 1}, \
{1, 1, 1, 1, 1, 1, 1, 1} \
}
#define H { \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 1, 1, 1, 1, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0} \
}
#define E { \
{0, 1, 1, 1, 1, 1, 1, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 1, 1, 1, 1, 1, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 1, 1, 1, 1, 1, 0} \
}
#define L { \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 1, 1, 1, 1, 1, 1, 0} \
}
#define O { \
{0, 0, 0, 1, 1, 0, 0, 0}, \
{0, 0, 1, 0, 0, 1, 0, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 0, 1, 0, 0, 1, 0, 0}, \
{0, 0, 0, 1, 1, 0, 0, 0} \
}
#define Smile { \
{0, 0, 1, 1, 1, 1, 0, 0}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{1, 0, 1, 0, 0, 1, 0, 1}, \
{1, 0, 0, 0, 0, 0, 0, 1}, \
{1, 0, 1, 0, 0, 1, 0, 1}, \
{1, 0, 0, 1, 1, 0, 0, 1}, \
{0, 1, 0, 0, 0, 0, 1, 0}, \
{0, 0, 1, 1, 1, 1, 0, 0} \
}
#define Line { \
{1, 0, 0, 0, 0, 0, 0, 0}, \
{0, 1, 0, 0, 0, 0, 0, 0}, \
{0, 0, 1, 0, 0, 0, 0, 0}, \
{0, 0, 0, 1, 0, 0, 0, 0}, \
{0, 0, 0, 0, 1, 0, 0, 0}, \
{0, 0, 0, 0, 0, 1, 0, 0}, \
{0, 0, 0, 0, 0, 0, 1, 0}, \
{0, 0, 0, 0, 0, 0, 0, 1}, \
}
int RowRed[8]={116,117,118,119,120,121,122,123};
int RowGreen[8]={108,109,110,111,112,113,114,115};
int RowBlue[8]={100,101,102,103,104,105,106,107};
int Column[8]={124,125,126,127,128,129,130,131};


void MatrixSetup()
{
int j;
for(j = 0; j < 32; j++)
{
pinMode(100 + j, OUTPUT);
}
for(j = 0; j < 8; j++)
{
digitalWrite(100 + j, 1);
}
for(j = 0; j < 8; j++)
{
digitalWrite(116 + j, 1);
}
for(j = 0; j < 8; j++)
{
digitalWrite(108 + j, 1);
}
}
void Clear()
{
int i;
for(i=0;i<8;i++)
{
digitalWrite(RowRed[i],1);
digitalWrite(RowGreen[i],1);
digitalWrite(RowBlue[i],1);
digitalWrite(Column[i],0);
}
}
int main(int argc, char *argv[])
{
int column, row, thisPixel;
long long k;
wiringPiSetup();
sr595Setup(100, 32, 12, 14, 10);
MatrixSetup();
int matrix[8][8]= Smile ;
while(1)
{
Clear();
for(column=0;column<8;column++)
{
digitalWrite(Column[column],1);
for(row=0;row<8;row++)
{
if(matrix[column][row] == 1)
digitalWrite(RowBlue[row],0); // Blue color
digitalWrite(RowBlue[row],1); // Blue color
}
digitalWrite(Column[column],0);
}
}
}