2 /**************************************************************
4 * Sample sketch for driving 32x16 LED PANEL (1/4 scan) with
7 *************************************************************/
11 //Pins specific for Mega .See Arduino SPI for a different board.
20 //row to be shown (1-4 since it is 1/4 scan)
23 //brightness: increase->more bright
26 //some digits from a 8x8 font (numeric 1-8)
117 pinMode(CLK, OUTPUT);
118 pinMode(STB, OUTPUT);
124 //display alternatively scan lines
133 //Load and show row (1-4) i.e. 1 and 5, 2 and 6.....
134 void showRow(int row){
136 SPI.transfer(~(digits[row+36])); //5
137 SPI.transfer(~(digits[row+32]));
139 SPI.transfer(~(digits[row+4])); //1
140 SPI.transfer(~(digits[row]));
142 SPI.transfer(~(digits[row+44])); //6
143 SPI.transfer(~(digits[row+40]));
145 SPI.transfer(~(digits[row+12])); //2
146 SPI.transfer(~(digits[row+8]));
148 SPI.transfer(~(digits[row+52])); //7
149 SPI.transfer(~(digits[row+48]));
151 SPI.transfer(~(digits[row+20])); //3
152 SPI.transfer(~(digits[row+16]));
154 SPI.transfer(~(digits[row+60])); //8
155 SPI.transfer(~(digits[row+56]));
157 SPI.transfer(~(digits[row+28])); //4
158 SPI.transfer(~(digits[row+24]));
160 digitalWrite(STB,LOW);
161 digitalWrite(STB,HIGH);
163 scanrow(row);//enable encoder for the line loaded
165 //PWM like. Change br to adjust brightnes
166 digitalWrite(OE,HIGH);
167 delayMicroseconds(br);
168 digitalWrite(OE,LOW);
169 delayMicroseconds(900);
174 //enable encoder for this row in order to show it