12x24 matrix LED - how to use it?


hi everyone!
i have 12x24 led matrix, 4094 8-bit magistral register. how code matrix? how connect it? ideas? please fast reply :d


how matrix wired? 12 common anodes going across rows of display , 24 common cathodes going down columns of each display?

what full shift register part number?  have better drive capability others.
cd4094 example low
http://www.ti.com/lit/ds/symlink/cd4094b.pdf
while cd74hc4094 , cd74hct4094 better, rated +/-5ma
http://www.ti.com/lit/ds/symlink/cd74hct4094.pdf
http://www.ti.com/lit/ds/symlink/cd74hct4094.pdf

ideally have part can source more current 12 anodes while part sinks 240ma common cathode.
cd74ac164 can source 24ma, use 2 drive current anodes
tpic6a595 high current sink (350ma) use cathodes, use 3 sink current cathodes.

example code using spi transfer() shift registers. set spi divisor 2, have 0.1uf cap vcc gnd on each device
code: [select]

//if ( time update? test using blink-without-delay code, new update every 1300us )
{
for (pointer=0; pointer<24; pointer=pointer+1){ // walk thru 24 columns, 0 23
// turn off cathodes
digitalwrite (cathodess, low);
spi.transfer(0);
spi.transfer(0);
spi.transfer(0);
digitalwrite (cathodess, high);
// setup anode data
digitalwrite (anodess, high); // use 2-input , gate w/ (anodess + sck) to  enable cp '164
spi.transfer(highbyte(dataarray[pointer])); // upper 4 bits of int dataarray
spi.transfer(lowbyte(dataarray[pointer])); // lower 8 bits
digitalwrite (anodess, low);
// turn on next cathode
digitalwrite (cathodess, low);
spi.transfer(cathodearray[(3 * pointer)+0)]); // see cathodearray below. use bytes 0,1,2,
spi.transfer([(3 * pointer)+1]);                     // 3,4,5 6,7,8 etc
spi.transfer([(3 * pointer)+2]);                     // 66, 67, 68, ending 69,70,71
digitalwrite (cathodess, high);
}
// other stuff while 1300us passing

with
code: [select]

int dataarray[24]; // holds 12-bit anode message displayed in column vertically

and
code: [select]

byte cathodearray[]= { // holds 1 enable each cathode 1 @ time, read out 3 @ time
0b10000000, 0, 0, // column 0
0b01000000, 0, 0, // column 1
:
0, 0b10000000, 0, // column 8
0, 0b01000000, 0, // column 9
:
0, 0, 0b10000000, // column 16
0, 0, 0b01000000, // column 17
:
0, 0, 0b00000001, // column 23
};


Arduino Forum > Using Arduino > LEDs and Multiplexing > 12x24 matrix LED - how to use it?


arduino

Comments