How to get 8 PWM outputs

Hey, help... please... :)

I'm working on a project and need to drive 8 LED's with PWM with as little wires as possible. (preferably on 3,3V)

Multiplexing I would rather not use this method as it uses a high amount of pins, decreases the brightness of the LED's and when the arduino's loop is not running will not be able to light all LED's. (also no PWM)

MAX7219 This one seemed like a viable option though it is a bit large and designed for matrixes or 7 segment LED displays

74HC595 Not enough current (need around 50~60 mA) to drive the LED's though in combination with some transistors or a transistor IC this might be the best option (3 wires sounds like a dream). Though seperate transistors will complicate the PCB design and again I'm tight on space.

TLC5940 This one looked alright but finding much information about this one was a little hard.

WS2811 IC's Ideally i would want something like this, able to provide a current of ~60 mA per LED but I would have to join the three channels (R,G & B) for this and I'm already using WS2812's, these use a different frequency and i don't know if this would be a problem? (800 kHz and 400 kHz respectively I think)

ATINY I really don't know about this, seems way to complex for just driving 8 single color LED's.

I really really really hope someone can send me in the right direction for I have been stuck for a while and really need to send of my PCB's.

Oh and here a picture of what I need it for:

|500x333

And a GIF of the working WS2812's

|281x500

What micro controller or Arduino board are you using ?

I am using a Teensy LC one a current project with 7 PWM pins ( up to 16 bit resolution) but the Teensy has 10 PWM pins.

I am driving 2 Onsemi CAT4109 LED driver chips with 3 channels each from these PWM pins. This chip is extremely simple to operate and only needs 3 resistors to define the constant current. It drives up to 175 mA per channel.

I haven't tried to combine them, but as far as I understand a WS2811 can handle data at speeds of 400Kbps or... 800Kbps, while the WS2812 uses the same protocol, but handles 800kbps only.

Setting the ws2811 to 800Kbps (leaving its set pin open), might do the trick.

Headroom: What micro controller or Arduino board are you using ?

I am using a Teensy LC one a current project with 7 PWM pins ( up to 16 bit resolution) but the Teensy has 10 PWM pins.

I am driving 2 Onsemi CAT4109 LED driver chips with 3 channels each from these PWM pins. This chip is extremely simple to operate and only needs 3 resistors to define the constant current. It drives up to 175 mA per channel.

The the documentation on that chip is quite scarce too so in that case I might be better off picking the TLC5940.

Simpson_Jr: I haven't tried to combine them, but as far as I understand a WS2811 can handle data at speeds of 400Kbps or... 800Kbps, while the WS2812 uses the same protocol, but handles 800kbps only.

Setting the ws2811 to 800Kbps (leaving its set pin open), might do the trick.

Yhea the only thing that bothers me is that I would have to connect the RGB leads together, since the chip is not meant to be used in that way I don't know how it would react.

Hi, you really need to explain your problem/project better, because your questions just make me want to ask more questions back!

These 8 leds: Are they single colour or RGB? Do you need independent control? If they are RGB, and you need independent control, you actually need 24 PWM outputs, not 8! If they are single colour and you don't need independent control, you only need 1 PWM output.

Why can't you just use more ws2812?

Why do you say multiplexing uses more wires? Compared to what? The whole point of multiplexing is to use fewer wires.

Max7219 will drive up to 64 leds, but will not give you independant PWM control.

Did you know you can get ws2812 leds in thru-hole, 5mm, round shape (like an "ordinary" led) as well as the square surface mount type?

Paul

PaulRB: Hi, you really need to explain your problem/project better, because your questions just make me want to ask more questions back!

These 8 leds: Are they single colour or RGB? Do you need independent control? If they are RGB, and you need independent control, you actually need 24 PWM outputs, not 8! If they are single colour and you don't need independent control, you only need 1 PWM output.

Why can't you just use more ws2812?

Why do you say multiplexing uses more wires? Compared to what? The whole point of multiplexing is to use fewer wires.

Max7219 will drive up to 64 leds, but will not give you independant PWM control.

Did you know you can get ws2812 leds in thru-hole, 5mm, round shape (like an "ordinary" led) as well as the square surface mount type?

Paul

Hey Paul tnx for your relpy,

As i mentioned they are single color LED's, and yes they need to be controlled independently. I said multiplexing uses a high amount of pins (4 I believe?). The WS2812 I currently use are SMD but the reason i cant use more of these is that the led's I need to drive are inside of a tactile push button.

I think i'm going to pick the TLC5940.

Rutierut

rutierut: Hey, help... please... :)

I'm working on a project and need to drive 8 LED's with PWM with as little wires as possible. (preferably on 3,3V)

Multiplexing I would rather not use this method as it uses a high amount of pins, decreases the brightness of the LED's and when the arduino's loop is not running will not be able to light all LED's. (also no PWM)

MAX7219 This one seemed like a viable option though it is a bit large and designed for matrixes or 7 segment LED displays

74HC595 Not enough current (need around 50~60 mA) to drive the LED's though in combination with some transistors or a transistor IC this might be the best option (3 wires sounds like a dream). Though seperate transistors will complicate the PCB design and again I'm tight on space.

TLC5940 This one looked alright but finding much information about this one was a little hard.

WS2811 IC's Ideally i would want something like this, able to provide a current of ~60 mA per LED but I would have to join the three channels (R,G & B) for this and I'm already using WS2812's, these use a different frequency and i don't know if this would be a problem? (800 kHz and 400 kHz respectively I think)

ATINY I really don't know about this, seems way to complex for just driving 8 single color LED's.

I really really really hope someone can send me in the right direction for I have been stuck for a while and really need to send of my PCB's.

Oh and here a picture of what I need it for:

|500x333

And a GIF of the working WS2812's

|281x500

Seems like you missed the pca9685, there are a number of boards out there cheap with it ready to go ( http://www.ebay.com/itm/311188037855?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT ). 16 channels and 12 bits, you can run a number of them off the same i2c bus. I'm using a different one for servos and have that one for LEDS

cyberjeff: Seems like you missed the pca9685, there are a number of boards out there cheap with it ready to go ( http://www.ebay.com/itm/311188037855?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT ). 16 channels and 12 bits, you can run a number of them off the same i2c bus. I'm using a different one for servos and have that one for LEDS

Ouch, this would have indeed been the best option, just finished the PCB