Pages: [1]   Go Down
Author Topic: Make  LED matrix  be more powerful  (Read 2357 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 22
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset




Arduino Multi 16*16 LED Matrix Brick is 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.

Now show you an DIY experiment of LED Array Screen.
Tools need :
   1. Arduino Duemilanove With ATmega 328
   2. Arduino Sensor shield v4.0
   3. 4-pin jumper wire
   4. 1-pin jumper wire
   5. Arduino Multi 16*16 LED Matrix Brick










Features[ch65306]
1[ch12289]Use high-quality bright LED 16*16 dot-matrix block.
2[ch12289]Optimized circuit design, with symmetrical brightness.
3[ch12289]Standard interface that can be expanded in a variety of development boards.
4[ch12289]Support Multi-Pcs connectivity.
5[ch12289]138 line scanning, 595 data.
6[ch12289]Applicable to a variety of platforms including  Arduino / AVR / ARM etc.
7[ch12289]Size/pcs : 75mm*75mm*11mm.

Able to support derect 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[ch12289]cartoon[ch12289]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.

The test code[ch12289]schematic diagram and more information on the : http://www.emartee.com/Modules/bbs/viewthread.php?tid=711&extra=page%3D1
« Last Edit: May 09, 2010, 11:56:35 am by Alexander_Kevin » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 22
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The Code :

Code:
  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.

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

   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.     0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  13.     0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  14.

  15.


  16.     //=============================================================================
  17.

  18.


  19.     /*0xff,0xff,0x80,0x01,0x80,0x01,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x80,0x03,
  20.     0x80,0x03,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x80,0x01,0x80,0x01,0xff,0xff, //"E"
  21.

  22.     0xff,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,
  23.     0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x80,0x01,0x80,0x01,0xff,0xff,// "L"
  24.

  25.     0xff,0xff,0x80,0x01,0x80,0x01,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x80,0x03,
  26.     0x80,0x03,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x80,0x01,0x80,0x01,0xff,0xff, //"E"
  27.

  28.     0xff,0xff,0xe0,0x07,0xc0,0x03,0xcf,0xf3,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,
  29.     0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0xcf,0xf3,0xc0,0x03,0xe0,0x07,0xff,0xff,// "C"
  30.

  31.     0xff,0xff,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x80,0x01,
  32.     0x80,0x01,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0xff,0xff,// "H"
  33.

  34.     0xff,0xff,0xf8,0x1f,0xf0,0x0f,0xe3,0xc7,0xe7,0xe7,0xc7,0xe3,0xcf,0xf3,0xcf,0xf3,
  35.     0xcf,0xf3,0xcf,0xf3,0xc7,0xe3,0xe7,0xe7,0xe3,0xc7,0xf0,0x0f,0xf8,0x1f,0xff,0xff,// "O"
  36.

  37.     0xff,0xff,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,
  38.     0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x9f,0xf9,0x8f,0xf1,0xc0,0x03,0xe0,0x07,0xff,0xff,// "U"
  39.

  40.     0xff,0xff,0xfc,0x3f,0xf9,0x9f,0xf3,0xcf,0xe7,0xe7,0xe7,0xff,0xf3,0xff,0xf8,0x3f,
  41.     0xfc,0x1f,0xff,0xcf,0xff,0xe7,0xe7,0xe7,0xf3,0xcf,0xf9,0x9f,0xfc,0x3f,0xff,0xff,// "S"
  42.

  43.     0xff,0xff,0x80,0x01,0x80,0x01,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x80,0x03,
  44.     0x80,0x03,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x80,0x01,0x80,0x01,0xff,0xff, //"E"
  45.

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

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

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

  55.     0xff,0xff,0xe7,0xcf,0xe7,0x9f,0xe7,0x3f,0xe6,0x7f,0xe4,0xff,0xe1,0xff,0xe3,0xff,
  56.     0xe7,0xff,0xe7,0xff,0xe7,0xff,0xe7,0xff,0xe7,0xff,0xe7,0xff,0xff,0xff,0xff,0xff,//"r"
  57.

  58.     0xff,0xff,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xff,0x9f,0xf0,0x1f,0xe0,0x1f,0xc7,0x9f,
  59.     0xcf,0x9f,0xcf,0x9f,0xcf,0x9f,0xc7,0x9f,0xe0,0x0f,0xf0,0x0f,0xff,0xff,0xff,0xff,//"d"
  60.

  61.     0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,
  62.     0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,0xe3,0x8f,0xf0,0x0f,0xf8,0x27,0xff,0xff,0xff,0xff,//"u"
  63.

  64.     0xff,0xff,0xfe,0x7f,0xfe,0x7f,0xff,0xff,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,
  65.     0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xfe,0x7f,0xff,0xff,0xff,0xff,//"i"
  66.

  67.     0xff,0xff,0xff,0xff,0xf8,0x3f,0xf0,0x1f,0xe3,0x8f,0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,
  68.     0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,0xe7,0xc7,0xff,0xff,0xff,0xff,0xff,0xff,//"n"
  69.

  70.     0xff,0xff,0xff,0xff,0xf8,0x3f,0xf0,0x1f,0xf3,0x9f,0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,
  71.     0xe7,0xcf,0xe7,0xcf,0xe7,0xcf,0xf3,0x9f,0xf0,0x1f,0xf8,0x3f,0xff,0xff,0xff,0xff//"o"
  72.

  73.     };
  74.     byte BUFF[2*ScreenNO+2];
  75.     byte col,disrow;                                   //col--moving pointer;disrow--scanning row
  76.     unsigned int wordnumber;                           //the bytes of words you want to display
  77.     int Dpin[]={4,5,6,7};
  78.     int OOE=2;
  79.     int RCK=10;
  80.     int SCK=9;
  81.     int SER=8;
  82.     int VCC=11;
  83.     int GND=3;
  84.

  85.     void setup()
  86.     {
  87.        pinMode(2,OUTPUT);
  88.        pinMode(3,OUTPUT);
  89.        pinMode(4,OUTPUT);
  90.        pinMode(5,OUTPUT);
  91.        pinMode(6,OUTPUT);
  92.        pinMode(7,OUTPUT);
  93.        pinMode(8,OUTPUT);
  94.        pinMode(9,OUTPUT);
  95.        pinMode(10,OUTPUT);
  96.        pinMode(11,OUTPUT);
  97.      
  98.             //Serial.begin(9600);
  99.        digitalWrite(OOE,HIGH);
 100.             digitalWrite(VCC,HIGH);
 101.             digitalWrite(GND,LOW);
 102.             digitalWrite(SCK,LOW);
 103.     }
 104.     void loop()
 105.     {
 106.     byte i;
 107.     col=0;wordnumber=0;
 108.     while(1)
 109.     {
 110.        while(col<16)               // circulate for 16 time, which is moving a letter through a creen
 111.        {
 112.           for(i=0;i<SPEED;i++)    //the time of static display for a letter
 113.           {
 114.              for(disrow=0;disrow<16;disrow++)            //scanning the row
 115.              {
 116.                              digitalWrite(OOE,HIGH);
 117.                              digitalWrite(RCK,LOW);
 118.              loadoneline();                              //load the data of a row
 119.              sendoneline();                              //send the data of a row
 120.              sendPin(disrow);
 121.              digitalWrite(OOE,LOW);                     // enable the row scanning
 122.                   digitalWrite(RCK,HIGH);                    //light a row
 123.                             delay(1);
 124.              }
 125.           }
 126.        col++;                                                  //moving pointer
 127.        }
 128.     col=0;
 129.     wordnumber+=32;               // point to the next word
 130.     if(wordnumber>=WordNO*32)wordnumber=0;              //while all the letters are dispalyed, back to the beginning
 131.     }
 132.     }
 133.     /***************** load the data of a row *****************/
 134.     void loadoneline( )
 135.     {
 136.     byte s;
 137.     unsigned int k;
 138.        for(s=0;s< ScreenNO+1;s++)          
 139.        {
 140.             k = wordnumber+32*s+2*disrow;
 141.             if (k>=WordNO*32)k -= WordNO*32;
 142.        BUFF[2*s]=HZ[k];
 143.        BUFF[2*s+1]=HZ[k+1];
 144.        }
 145.     }
 146.     /*************** send the data of a row *******************/
 147.     void sendoneline( )
 148.     {
 149.     byte s;
 150.     byte inc;
 151.     if(col<8)inc=0;else inc=1;
 152.        for(s=2*ScreenNO+inc;s>=1+inc;s--)
 153.        {
 154.        sendUtra(two_onechar(BUFF[s-1],BUFF[s]));
 155.        }
 156.     }
 157.     /*********** generate data which makes word moving ************/
 158.     byte two_onechar(byte h1,byte h2)
 159.     {
 160.     byte temp,tempcol;
 161.     if(col<8) tempcol=col;
 162.     else tempcol=col-8;
 163.     temp=(h1<<tempcol)|(h2>>(8-tempcol));
 164.     //temp=255-temp;
 165.     return temp;
 166.     }
 167.     /***************************************************************/
 168.     void sendPin(byte j)
 169.     {
 170.             for (int n=0;n<4;n++)
 171.        {
 172.           if((0x01&j) < 0x01)
 173.                     {digitalWrite(Dpin[n],LOW);}
 174.                     else
 175.                     {digitalWrite(Dpin[n],HIGH);}
 176.           j>>=1;
 177.        }
 178.     }
 179.     /**************************************************************/
 180.     void sendUtra(byte j)
 181.     {
 182.        for (int n=0;n<8;n++)
 183.        {
 184.           digitalWrite(SCK,LOW);
 185.                     if((0x01&j) < 0x01)
 186.                     {digitalWrite(SER,LOW);}
 187.                     else
 188.                     {digitalWrite(SER,HIGH);}
 189.           j=j>>1;
 190.           digitalWrite(SCK,HIGH);
 191.                     //delay(1);
 192.

 193.        }
 194.     }
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 22
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Here is some function which moves the words from right to left:

Code:
  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.     }
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 2
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I am new of this forum. smiley

nice work
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 2
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I think these guys make the Arduino Scrolling 56x8 LED matrix PCB  come true

http://  http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1267391793/0
 
I just query so can I make any size LED Screen I need  by this brick ?
Is there any voltage or circuit limit ?
How to connect this brick with my Arduino and how to control the input I want to show ?

Thanks for all. smiley
Logged

North Yorkshire, UK
Offline Offline
Faraday Member
**
Karma: 104
Posts: 5531
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Can you stop spamming your own posts with fake accounts.

Please ban him someone!

I don't care what he's selling in his webstore. If I want something I will search for it.
It may be good stuff but I am not going to buy anything from there ever if this keeps up.

[edit]It seems like you are not quite how you appear on the surface. Please stop spamming the forums with products but I am ok with your arduino contributions that you seem to be making.  smiley[/edit]

Mowcius
« Last Edit: May 09, 2010, 03:00:56 pm by mowcius » Logged

Pages: [1]   Go Up
Jump to: