Back Forum New

Wrobot 16*16 Dot Matrix LED Shield



http://www.emartee.com/product/41903/Wrobot-16*16-Dot-Matrix-LED-Shield



Able to make multi-screen connection, rolling display



Occupy few MCU ports, ability of scrolling display of a few hundred words4-screen series, text scrolling display, can build electronic billboards



Features:

1、Use high-quality bright LED dot-matrix block

2、Optimized circuit design, with brightness uniformity

3、Standard interface that can be expanded in a variety of development boards

4、Multi-screen connectivity is available

5、138-line scan, 595 numbers

6、Applicable to a variety of platforms including  Arduino / AVR / ARM

Able to support direct multi-screen connection , it can achieve rolling display by cascading the LED 16*16 Matrix directly like putting up building block only with  5 pin jumper wire.

How to achieve the cascading and achieve rolling display ?

The answer is that you just need two 5 pin jumper cables used to link one LED brick to another,then you have achieve rolling display,because our circuit have solved all the query at the back stage.So this allow that you can cascade as more piece as you can.

However it occupy few MCU interface and own the ability of scrolling display of hundreds of words.
Support text、cartoon、etc scrolling display, so you can build electronic billboards and any other application you need easily.

The most important is that:you can achieve what you need and what you imagine in your mind about Matrix LED.

Now i am telling you something of LED Array Screen. I will show you an DIY experiment.
Tools used :


   1. Arduino Duemilanove With ATmega 328
   
   2. Arduino Sensor shield v4.0
   
   3. 4-pin jumper wire
  
   4. 1-pin jumper wire
   
   5. Wrobot 16x16 LED Array Screen











Connect digital pin 4,5,6,7 to input pin OIA,OIB,OIC,OID of LED screen, which choose the row. Connect digital pin 8,9,10 to pin SER,SCK,RCKof screen, which input the data of a row. Connect GND and VCC to power.



Extension connection is very easy too.Connect pin on the OUT side of one board to the pin with the same name on the IN side of the next board.













Then upload the test code to Arduino.
  1.     #define SPEED    6                               //Speed of rolling. The bigger,the slower
  2.     #define WordNO 12                                 //number of letters(here one letter on one screen) you want to display + Screen number
  3.     #define ScreenNO 4                                //define the screen number used

  4.     byte HZ[]={
  5.     //===== You have to give 32*ScreenNo 0xff bytes as follows,here 4 screens =====

  6.     0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  7.     0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  8.     0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  9.     0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  10.     0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  11.     0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,


  12.     //=============================================================================


  13.     /*0xff,0xff,0x80,0x01,0x80,0x01,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x80,0x03,
  14.     0x80,0x03,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x80,0x01,0x80,0x01,0xff,0xff, //"E"

  15.     0xff,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,
  16.     0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x80,0x01,0x80,0x01,0xff,0xff,// "L"

  17.     0xff,0xff,0x80,0x01,0x80,0x01,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x80,0x03,
  18.     0x80,0x03,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x80,0x01,0x80,0x01,0xff,0xff, //"E"

  19.     0xff,0xff,0xe0,0x07,0xc0,0x03,0xcf,0xf3,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,
  20.     0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0xcf,0xf3,0xc0,0x03,0xe0,0x07,0xff,0xff,// "C"

  21.     0xff,0xff,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x80,0x01,
  22.     0x80,0x01,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0xff,0xff,// "H"

  23.     0xff,0xff,0xf8,0x1f,0xf0,0x0f,0xe3,0xc7,0xe7,0xe7,0xc7,0xe3,0xcf,0xf3,0xcf,0xf3,
  24.     0xcf,0xf3,0xcf,0xf3,0xc7,0xe3,0xe7,0xe7,0xe3,0xc7,0xf0,0x0f,0xf8,0x1f,0xff,0xff,// "O"

  25.     0xff,0xff,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,
  26.     0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x8f,0xf1,0xc0,0x03,0xe0,0x07,0xff,0xff,// "U"

  27.     0xff,0xff,0xfc,0x3f,0xf9,0x9f,0xf3,0xcf,0xe7,0xe7,0xe7,0xff,0xf3,0xff,0xf8,0x3f,
  28.     0xfc,0x1f,0xff,0xcf,0xff,0xe7,0xe7,0xe7,0xf3,0xcf,0xf9,0x9f,0xfc,0x3f,0xff,0xff,// "S"

  29.     0xff,0xff,0x80,0x01,0x80,0x01,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x80,0x03,
  30.     0x80,0x03,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x80,0x01,0x80,0x01,0xff,0xff, //"E"

  31.     0xff,0xff,0x8f,0xf1,0x87,0xe1,0x83,0xc1,0x93,0xc9,0x93,0xc9,0x99,0x99,0x99,0x99,
  32.     0x99,0x99,0x9c,0x39,0x9c,0x39,0x9e,0x79,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0xff,0xff,// "M"*/

  33.     0xff,0xff,0xfc,0x3f,0xf3,0xcf,0xef,0xf7,0xdf,0xfb,0xd3,0xcb,0xbf,0xfd,0xbf,0xfd,
  34.     0xbf,0xfd,0xbb,0xdd,0xdc,0x3b,0xdf,0xfb,0xef,0xf7,0xf3,0xcf,0xfc,0x3f,0xff,0xff,//smile

  35.     0xff,0xff,0xfc,0x3f,0xfc,0x3f,0xf8,0x1f,0xf9,0x9f,0xf1,0x8f,0xf3,0xcf,0xf3,0xcf,
  36.     0xe0,0x07,0xe0,0x07,0xe7,0xe7,0xc7,0xe3,0xcf,0xf3,0x8f,0xf1,0x9f,0xf9,0xff,0xff,//"A"

  37.     0xff,0xff,0xe7,0xcf,0xe7,0x9f,0xe7,0x3f,0xe6,0x7f,0xe4,0xff,0xe1,0xff,0xe3,0xff,
  38.     0xe7,0xff,0xe7,0xff,0xe7,0xff,0xe7,0xff,0xe7,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,//"r"

  39.     0xff,0xff,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xf0,0x1f,0xe0,0x1f,0xc7,0x9f,
  40.     0xcf,0x9f,0xcf,0x9f,0xcf,0x9f,0xc7,0x9f,0xe0,0x0f,0xf0,0x0f,0xff,0xff,0xff,0xff,//"d"

  41.     0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,
  42.     0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,0xe3,0x8f,0xf0,0x0f,0xf8,0x27,0xff,0xff,0xff,0xff,//"u"

  43.     0xff,0xff,0xfe,0x7f,0xfe,0x7f,0xff,0xff,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,
  44.     0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xff,0xff,0xff,0xff,//"i"

  45.     0xff,0xff,0xff,0xff,0xf8,0x3f,0xf0,0x1f,0xe3,0x8f,0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,
  46.     0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,0xe7,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,//"n"

  47.     0xff,0xff,0xff,0xff,0xf8,0x3f,0xf0,0x1f,0xf3,0x9f,0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,
  48.     0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,0xf3,0x9f,0xf0,0x1f,0xf8,0x3f,0xff,0xff,0xff,0xff//"o"

  49.     };
  50.     byte BUFF[2*ScreenNO+2];
  51.     byte col,disrow;                                   //col--moving pointer;disrow--scanning row
  52.     unsigned int wordnumber;                           //the bytes of words you want to display
  53.     int Dpin[]={4,5,6,7};
  54.     int OOE=2;
  55.     int RCK=10;
  56.     int SCK=9;
  57.     int SER=8;
  58.     int VCC=11;
  59.     int GND=3;

  60.     void setup()
  61.     {
  62.        pinMode(2,OUTPUT);
  63.        pinMode(3,OUTPUT);
  64.        pinMode(4,OUTPUT);
  65.        pinMode(5,OUTPUT);
  66.        pinMode(6,OUTPUT);
  67.        pinMode(7,OUTPUT);
  68.        pinMode(8,OUTPUT);
  69.        pinMode(9,OUTPUT);
  70.        pinMode(10,OUTPUT);
  71.        pinMode(11,OUTPUT);
  72.       
  73.             //Serial.begin(9600);
  74.        digitalWrite(OOE,HIGH);
  75.             digitalWrite(VCC,HIGH);
  76.             digitalWrite(GND,LOW);
  77.             digitalWrite(SCK,LOW);
  78.     }
  79.     void loop()
  80.     {
  81.     byte i;
  82.     col=0;wordnumber=0;
  83.     while(1)
  84.     {
  85.        while(col<16)               // circulate for 16 time, which is moving a letter through a creen
  86.        {
  87.           for(i=0;i<SPEED;i++)    //the time of static display for a letter
  88.           {
  89.              for(disrow=0;disrow<16;disrow++)            //scanning the row
  90.              {
  91.                              digitalWrite(OOE,HIGH);
  92.                              digitalWrite(RCK,LOW);
  93.              loadoneline();                              //load the data of a row
  94.              sendoneline();                              //send the data of a row
  95.              sendPin(disrow);
  96.              digitalWrite(OOE,LOW);                     // enable the row scanning
  97.                   digitalWrite(RCK,HIGH);                    //light a row
  98.                             delay(1);
  99.              }
  100.           }
  101.        col++;                                                  //moving pointer
  102.        }
  103.     col=0;
  104.     wordnumber+=32;               // point to the next word
  105.     if(wordnumber>=WordNO*32)wordnumber=0;              //while all the letters are dispalyed, back to the beginning
  106.     }
  107.     }
  108.     /***************** load the data of a row *****************/
  109.     void loadoneline( )
  110.     {
  111.     byte s;
  112.     unsigned int k;
  113.        for(s=0;s< ScreenNO+1;s++)           
  114.        {
  115.             k = wordnumber+32*s+2*disrow;
  116.             if (k>=WordNO*32)k -= WordNO*32;
  117.        BUFF[2*s]=HZ[k];
  118.        BUFF[2*s+1]=HZ[k+1];
  119.        }
  120.     }
  121.     /*************** send the data of a row *******************/
  122.     void sendoneline( )
  123.     {
  124.     byte s;
  125.     byte inc;
  126.     if(col<8)inc=0;else inc=1;
  127.        for(s=2*ScreenNO+inc;s>=1+inc;s--)
  128.        {
  129.        sendUtra(two_onechar(BUFF[s-1],BUFF[s]));
  130.        }
  131.     }
  132.     /*********** generate data which makes word moving ************/
  133.     byte two_onechar(byte h1,byte h2)
  134.     {
  135.     byte temp,tempcol;
  136.     if(col<8) tempcol=col;
  137.     else tempcol=col-8;
  138.     temp=(h1<<tempcol)|(h2>>(8-tempcol));
  139.     //temp=255-temp;
  140.     return temp;
  141.     }
  142.     /***************************************************************/
  143.     void sendPin(byte j)
  144.     {
  145.             for (int n=0;n<4;n++)
  146.        {
  147.           if((0x01&j) < 0x01)
  148.                     {digitalWrite(Dpin[n],LOW);}
  149.                     else
  150.                     {digitalWrite(Dpin[n],HIGH);}
  151.           j>>=1;
  152.        }
  153.     }
  154.     /**************************************************************/
  155.     void sendUtra(byte j)
  156.     {
  157.        for (int n=0;n<8;n++)
  158.        {
  159.           digitalWrite(SCK,LOW);
  160.                     if((0x01&j) < 0x01)
  161.                     {digitalWrite(SER,LOW);}
  162.                     else
  163.                     {digitalWrite(SER,HIGH);}
  164.           j=j>>1;
  165.           digitalWrite(SCK,HIGH);
  166.                     //delay(1);

  167.        }
  168.     }
Copy Code

The program above is displaying words moving from left to right.

Here is some function which moves the words from right to left:
  1.     /***************** load the data of a row *****************/
  2.     void loadoneline( )
  3.     {
  4.     byte s;
  5.     unsigned int k;
  6.        for(s=0;s< ScreenNO+1;s++)           
  7.        {
  8.             k = wordnumber+32*s+2*disrow;
  9.             if (k>=WordNO*32)k -= WordNO*32;
  10.        BUFF[2*s+1]=HZ[k];
  11.        BUFF[2*s]=HZ[k+1];
  12.        }
  13.     }
  14.     /*************** send the data of a row *******************/
  15.     void sendoneline( )
  16.     {
  17.     byte s;
  18.     byte inc;
  19.     if(col<8)inc=0;else inc=1;
  20.        for(s=1+inc;s<=2*ScreenNO+inc;s++)
  21.        {
  22.        sendUtra(two_onechar(BUFF[s-1],BUFF[s]));
  23.        }
  24.     }
  25.     /******* generate data which makes word moving ************/
  26.     byte two_onechar(byte h1,byte h2)
  27.     {
  28.     byte temp,tempcol;         
  29.     if(col<8) tempcol=col;
  30.     else tempcol=col-8;
  31.     temp=(h1>>tempcol)|(h2<<(8-tempcol));   
  32.     return temp;           
  33.     }
Copy Code




In fact, you can assemble a acreen of ant size you want(times of 16), large square screen or long screen. And you can program it to display anything you want.
You may be confused about about the letter coding. Here is an example:







Click to see schematic diagram

1# emartee


This is a great item, i have purchased it and can use it well but need some help.

I need to make a scrolling bar that moves from left to right until it reaches the end and starts again.

Also i need to make this bar either get wider ir be of different heights.

Do you have any more useful code as to help me figure this out???

cheers,
Luke

TOP

2# Luke

@Luke :
The answer is that what you need to do is : you just need two 5 pin jumper cables used to link one LED brick to another,then you have achieve rolling display,because our circuit have solved all the query at the back stage.So this allow that you can cascade as more piece as you can.Now matter the length and the width .
And the word or picture etc you want to show will be shown as the size you wish if you have connected with each other right as our way as above........

you can build electronic billboards and any other application as you wish but the only thing you need to care that the voltage and the current   .

Hope this will help .
Regards

TOP

Hello, i have bought two of these shields, and am currently tryng do develop a lib to light the selected led by X,Y, no luck currently. Maybe there is a pre-made one, but i didnt find it? Or maybe someone cold make it? Thank you.

TOP

I just bought a fridge with LEDs. It seemed dark in the store mostly because the store is brightly lit to show off the appliances. In our home, the fridge lights work perfectly and they do a great job of illuminating the contents of the refrigerator, even when it is full of food.

TOP

I just bought a fridge with LEDs. It seemed dark in the store mostly because the store is brightly lit to show off the appliances. In our home, the fridge lights work perfectly and they do a great job of illuminating the contents of the refrigerator, even when it is full of food.

TOP

I just bought a fridge with LEDs. It seemed dark in the store mostly because the store is brightly lit to show off the appliances. In our home, the fridge lights work perfectly and they do a great job of illuminating the contents of the refrigerator, even when it is full of food.

TOP

because our circuit have solved all the 12v led strip query at the back stage.So this allow that you can cascade as more piece as you can.

However it occupy T5 LED Tube wholesale few MCU interface and own the ability of scrolling display LED Panel Light manufacturer of hundreds of words.
Support text、cartoon、etc scrolling display, so you can build electronic billboards and any other application you need easily.

TOP

Post Last Edit by Fullenwider at 2012-5-2 13:18

you need easily.

TOP

i need to make this bar either get wider ir be of different heights.
you can build electronic billboards and any other application as you wish but the only thing you need to care that the voltage and the current   .



--------------------------
led strip
Flexible LED Strip Lights
Outdoor LED Lighting

TOP

Back Forum