Multiplexing leds, faint leds

Hi, im using 5 digital pins and one 4067 16channel multiplexer to multiplex 16 x 5 LED's. To multiplexer pulls the LED's to ground. (Its for my 16steps sequencer)

The problem im having is that, some led's glow faint when they should be off... I have the feeling im missing some diodes? but dont know where?

here is the schematic, Ow before the LEDS are 220 ohm resistors ofcourse.

I had similar problems with a 4051 multiplexer. The answer I got that it was not good with driving LEDs, read this discussion: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1281382049

Sorry but that is just not the way to multiplex LEDs or the way to use that multiplexer.
You seem to be feeding 5V into the vase of your transistors with no current limiting resistors at all.
That circuit is just pants.

Ok so it need a 1K resistor on the Base?

I dont see the problem with the idea? I got it from this:


I replaces the 7seg with led's and hooked the transistors to the 4067.

But like i said i know something is wrong with it, so any suggestions?

I dont see the problem with the idea?

Only that what you have is nothing like that schematic you posted, and this is not the way to use an analogue multiplexer.

Ok... Any suggestion how i multiplexer 16x5 leds? And i dont want so daisychain shiftregisters, thats way to slow (updating 80 leds every time).

Well for an 8X8 matrix:-
http://www.thebox.myzen.co.uk/Hardware/Econo_Monome.html

Or with more control:-
http://www.thebox.myzen.co.uk/Hardware/Mini_Monome.html

i dont want so daisychain shiftregisters, thats way to slow (updating 80 leds every time).

In fact it is very fast....
With standard shiftOut() it will take 1 ms (still fast)
With digitalWriteFast() it should be < 50us.

And i dont want so daisychain shiftregisters, thats way to slow (updating 80 leds every time).

Your eyes are are much, much slower.

Hm, well maybe speed isnt the real issue, but its just that i have to wire up all the 80 leds seperatly... If i multiplex them per 5 (per step on the sequencer), i have 5 wires and then i can connect them all to them on the frontpannel.

To stop Mike's cat-and-mouse play.

You should use a DIGITAL multiplexer (and of course also base resistors).
The analog multiplexer outputs (well, "throughputs") will become high impedance when de-selected.

You can mend this by base pull-downs (100k or such)

OTOH the internal resistance of the analog channels (100 ohms) results to a current limitation (45mA) that MIGHT be acceptable to your transistors.

Ok digital multiplexer makes more sence indeed, its just that i have the analog laying around :slight_smile:

So would need to make a pulldown construction like this? The switch would be the multiplexer then?

Yes, that should work. One typically would connect R3 directly to the base to stress its intention, but that makes no difference at all.

Edit:

.. and it would suffice to have just ONE base resistor (1k or such) at the 5V INPUT of the multiplexer rather than 8 at the outputs. But you need 8 base pull-downs, of course!

Ok thanks all! Ill try some stuff on my breadboard :slight_smile:

Nice, works perfectly! :smiley: :smiley:

I had similar issues when I made a 4051 multiplexer setup. What I found was the chip control lines were floating when in the low state. I put a high value resistor (~47k) on each of the control lines connected to ground. This solved the issues. You might want to try it on your A, B, C, and D control lines. Putting resistors on the chip I/O lines might introduce errors if analog signals were being multiplexed.

What I found was the chip control lines were floating when in the low state.

What do you want to say???

What do you want to say???

What was said:

  1. Unpredictable outputs may occurr with a 4051 type chip (this is the chip I have experimented with) when the input control lines (A, B, C, and D in the post) are either not driven at ~5v input or not connected to ground.
  2. If the arduino digital output pins do not sink to ground when in the "low" state, then the control lines to the multiplex chip my "float" and produce undesired results.
  3. The solution provided might just be a workaround for the real problem.

Easy enough to to test. In the origional wiring configuration, jumper the low control pins to ground and see if the dim leds go dark.

If the arduino digital output pins do not sink to ground when in the "low" state,

Ah but they do.

Ah but they do.

So, what is causing the problem other than your usual "..and this is not the way to use an analogue multiplexer."? I've never tried driving transistors with the 4051. The fact that the transistor is connected to another 5v source could be introducing issues by having some backfeed to the 4067 output pins. One could check this by adding a diode between the chip output pin and the current limiting resistor, and removing the grounding resistor. Also, pin 15 (E bar) on the 4067 chip probably needs to be connected to ground if not already done so. I'm interested in finding a cause and not just a fix.