Arduino controlled star LED star field ceiling

Hi all, I'm thinking about putting up a star effect ceiling in my lounge. I'm already going to use a bit of MDF lowered down bout 20mm or so to enable me to mount RGB leds behind to act as a colour wash so I guess I may as well do the star thing too :slight_smile:

My initial idea is to use a Nano and softpwm to fade about the LEDs. I'm thinking use about 15 channels and maybe up to a mixture of up to 10 3&5mm LEDs on each channel?

I know in the past it has been done with fibre optic cable but to me that seems like more hassle, and I want a lot of differing levels of brightness at once hence using 15 channels.

What are your thoughts?

You won't get happy with SoftPWM on 15 channels (or more). I'd use some WS2801 chips (or something similar) to drive your LEDs. The PWM generator and the constant current driver is in the LED then and it's easy to chain them together.

Hi thanks for the response!

Would I run into issues using softPWM on that many channels then? I could imagine lots of extra wiring and loads of PCB's made if i'd need a WS801 IC per every 3 LEDS though :frowning:

I could use a mega for the 14 hardware PWM channels but that seems a bit overkill to do a job like this?

Any further input would be great :slight_smile:

Would I run into issues using softPWM on that many channels then?

I'd guess so, depends a bit on the base frequency you need to have with your PWM channels and the resolution it should have. But a frequency of 1kHz and 8bit resolution (15 channels) is probably more than the ATmega328 can offer.

I could imagine lots of extra wiring and loads of PCB's made if i'd need a WS801 IC per every 3 LEDS though smiley-sad

The WS2801 is integrated into a lot of LED strings available in many online shops. If you wanna do it centrally, there is the MAX7219 chip with lot's of channels or the TLC5940 which may drive a whole strip of about 10 LEDs with its 120mA.

WS2803, 18 IO, control 6 RGB LEDs with each one.
If you can live with 64 LEDs all faded together, then MAX7219. $1.25 at taydaelectronics.

Thanks for the info, I will look into the options :slight_smile:

I think id be OK putting the hardware side together but the code would be hard work for me if using those IC's

MAX7219, easier than you think.
Write to 3-4 registers to set it up in void setup().
Then you are only writing to 8 registers, 8 bits each, where each bit controls the state of 1 LED.
So you have an array of 8 bytes representing your 64 LEDs.
1 register controls the output brightness.