2 /**************************************************************
4 * Sample sketch for driving 32x16 LED PANEL (1/4 scan) with
6 * http://blog.vettore.org/building-a-large-led-sign-with-inexpensive-standard-modules-and-arduino/
8 *************************************************************/
12 //Pins specific for Mega .See Arduino SPI for a different board.
21 //row to be shown (1-4 since it is 1/4 scan)
24 //brightness: increase->more bright
27 //some digits from a 8x8 font (numeric 1-8)
109 pinMode(CLK, OUTPUT);
110 pinMode(STB, OUTPUT);
116 //display alternatively scan lines
125 //Load and show row (1-4) i.e. 1 and 5, 2 and 6.....
126 void showRow(int row){
128 SPI.transfer(~(digits[row+36])); //5
129 SPI.transfer(~(digits[row+32]));
131 SPI.transfer(~(digits[row+4])); //1
132 SPI.transfer(~(digits[row]));
134 SPI.transfer(~(digits[row+44])); //6
135 SPI.transfer(~(digits[row+40]));
137 SPI.transfer(~(digits[row+12])); //2
138 SPI.transfer(~(digits[row+8]));
140 SPI.transfer(~(digits[row+52])); //7
141 SPI.transfer(~(digits[row+48]));
143 SPI.transfer(~(digits[row+20])); //3
144 SPI.transfer(~(digits[row+16]));
146 SPI.transfer(~(digits[row+60])); //8
147 SPI.transfer(~(digits[row+56]));
149 SPI.transfer(~(digits[row+28])); //4
150 SPI.transfer(~(digits[row+24]));
152 digitalWrite(STB,LOW);
153 digitalWrite(STB,HIGH);
155 scanrow(row);//enable encoder for the line loaded
157 //PWM like. Change br to adjust brightnes
158 digitalWrite(OE,HIGH);
159 delayMicroseconds(br);
160 digitalWrite(OE,LOW);
161 delayMicroseconds(900);
165 //enable encoder for this row in order to show it