Multiplexing signals

I don't know if I'm going down the right path here. I'm an electronics hobbyist with no formal training.

I've got an Arduino board and I want to drive an 8x8 LED matrix. The thing is there are 24 pins on the matrix.

Figured out that with six bits I could control all 24 lines if I could multiplex it somehow.

I believe what I'm looking for is probably in a 74LS type chip but what I've run across so far takes eight bits and shoots out a serial signal. Not what I need at all, I need something with a bit of smarts.

Reply to
T
Loading thread data ...

Maybe each LED is a red/green pair with one end (anode or cathode) common?

Nope.

First, you need to be able to select any anode and any cathode. If it is red/green, you could skip half of them and drive 16 lines (8 anodes and

8 cathodes) with 6 bits (3+3) or all 24 with 9 bits (3+3+3), but that isn't really practical. You would only be driving one LED (or one red and one green) at a time, so each would only be at 1/64th duty cycle.

LED matrices normally have one axis (row or column) multiplexed and the other driven directly. E.g. a normal 8x8 with 16 lines (8 rows, 8 columns) would need 11 bits (8+3), with 3 bits driving a 3->8 line decoder and the other 8 connected directly, resulting in a 1/8th duty cycle.

For a red/green matrix, you could either use 19 bits (8+8+3) with 1/8th duty cycle or 12 bits (8+4) with 1/16th duty cycle.

For decoding an 3- or 4-bit number to one of 8 or 16 lines:

137 (3->8, latching), 138 (3->8), 154 (4->16), 159 (4->16, open-collector).
Reply to
Nobody

The easiest way to control a lot of I/O with just a few pins is to use a latching shift register. Data is presented serially (1 bit at a time) to the data input, and then clocked in with another I/O pin. These data bits are shifted in one bit at a time until you've got 'em all. Then you toggle another pin to latch the data to the shift register output pins. Simple, and you can daisy-chain the latching shift register chips to allow you almost an unlimited number of outputs.

Here's a data sheet for an inexpensive IC that will do the job:

formatting link

The 'HC 595 (or actually three of them daisy-chained together) will cover your 24 outputs quite nicely. You can just tie a small (.01uF) cap to Vcc and a 10K pulldown resistor on the other side to have a good power-on reset signal to ensure the chips all come up with all zeroes, if you want it. The output enable shouldn't be necessary for your application, so just tie it low. Be sure to tie SQh of the first IC to the data input of the second and SQh of the second to the data input ofthe third IC to daisy chain.

Depending on which Arduino board you have, you've probably got software commands available to shift out data bytes serially -- Read The Fine Manual for more info.

Remember that the HC595 outputs can source only 6mA or so with all of them on, so if you're driving the LEDs directly, choose resistors accordingly. Either that, or go for greater complexity and get some driver ICs.

Good luck Chris

Reply to
Chris

Thanks for the info. Yes, I'm aware of the functionality on the Arduino, it's the Diecimila board. I had a feeling I'd have to feed it serially.

Reply to
T

--
These are handy:

http://www.allegromicro.com/en/Products/Part_Numbers/6275/6275.pdf

http://www.allegromicro.com/en/Products/Part_Numbers/6276/6276.pdf
Reply to
John Fields

I requested samples of the 6276. Hopefully they don't sit on it forever like some of the chip vendors out there.

I'm still waiting for an FM transmitter chip sample I ordered a long time ago.

Reply to
T

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.