Go Down

Topic: Multiply the analog Outputs up to 12 channels (Read 1 time) previous topic - next topic


Aug 20, 2006, 03:28 pm Last Edit: Aug 20, 2006, 04:42 pm by matthiasBasel Reason: 1
Hello there,
Does anyone know, how to multiply the pwm outputs? I want to control 12 Power Led's from my arduino board, and they should be fading out individually. Everything works fine with digitalWrite, hooking up the led's is not the problem.  

I found the article about analog inputs (from Massimo), is this chip also useful for outputs, or do i need another chip.

Liebe Grüsse Matthias


you can use normal outputs and a software pwm to do the job. but that's very slow


you could youse an analog multiplexer like described in tutorials thread. with that device you can send or recive a certain voltage, or a pulsed signal, or whatever via one wire to the ic where its spread (multiplexed) over up to 16 ch if you youse the 4067b for example. you need again 5 wires to controll the multiplexer.
its a serial technique, so if you run the controll programm very quick it seems to be same time.
if you combine them you'll have even more chs.
costs around 1,50 eur.




It has been a long time since I dabbled in electronics... but couldn't you also add a counter in between the arduino  and the multiplexer?  Then just use a single pin out from the arduino and step through the counter for the output you want?    

Hmm, maybe you would need two pins from the arduino.   One to step the counter and the other to tell the device to activate...  that would probably mean an additional flipflop or something...




i have no idea, but seems interesting.
someone got a hint?
e.g. part number



Oct 23, 2006, 06:19 am Last Edit: Oct 23, 2006, 06:39 am by Florito Reason: 1
I am struggling with the same thing:
Doing the PWM in software does not result in smooth 'dimming' on all outputs.
Multiplexing doesn't work because it is serial in the end.

So my thoughts are:
  • Use a CMOS Serial Digital Pulse Width Modulator (CDP68HC68W1) for each Led/Dimmer. (This device can be programmed to continuously produce a pulse with a specified pulse-width and even frequency.)
  • Drive 12 of these from a multiplexer connected to the Arduino board.

On the programming side it would look something like this:
for (int i=0;i<12;i++) {
 // set multiplexer to output i;
 // write serial message through multiplexer to corresponding CMOS Serial Digital Pulse Width Modulator

Go Up