Driving 18 AC Dimmers using Arduino Uno

Hi all.

I have 18 A.C. Lamps I want to dim using 5 A.C. dimmer boards (4 channel each) :
http://www.inmojo.com/store/krida-electronics/item/4-channel-ac-light-dimmer-arduino--v2/

Now, since the Arduino Uno has not had enough PWM pins for this matter, I am using ADAFRUIT TLC4957 24channel 12-bit PWM LED Driver to extend the number of PWM pins I can get.

Each of these boards has its library and code. My question is:

1- Is it a good way to go around the insufficient number of PWM pins problem?
2- If yes, how can I use a piece of code that drives each channel on the A.C. dimmer board with the PWM generated by the TLC5947?

Sorry if it is a bit confusing in the description. Looking forward to your thoughts.

Thanks.

P.S.: the attachments is a piece of code that works well using AC PWM (4 channel) driver and Arduino.

Black_Dimmer3.ino (735 Bytes)

Regular phase-control AC dimmers don't use regular PWM. You just need a short pulse timed/synchronized with the AC waveform.

.................
Standard dimmers are built with TRIACs.

When a TRIAC is triggered, it latches-on until current fall to zero (at the next zero-crossing).

The brightness depends on how long you delay after the zero crossing. If there is no delay you get a full half-cycle and full-brightness (with the TRIAC triggered again at the next zero-crossing).

If you delay and trigger just-before the next zero crossing, it's only on for a short time before the zero-crossing cuts it off and the light is dim.

It is one thing controlling one channel. It is an altogether other matter to control 18 of them.

The biggest problem is one of interference from the circuits triggering off the other circuits so they fire at random.

Beginners often think that scaling up is simply a matter of making more of a thing but it is not as easy as that.
Just like scaling up a small chemical lab process into a production plant, it is a whole other skill set.

DVDdoug:
Regular phase-control AC dimmers don't use regular PWM. You just need a short pulse timed/synchronized with the AC waveform.

.................
Standard dimmers are built with TRIACs.

When a TRIAC is triggered, it latches-on until current fall to zero (at the next zero-crossing).

The brightness depends on how long you delay after the zero crossing. If there is no delay you get a full half-cycle and full-brightness (with the TRIAC triggered again at the next zero-crossing).

If you delay and trigger just-before the next zero crossing, it's only on for a short time before the zero-crossing cuts it off and the light is dim.

DVDdoug,

The problem is that I have 5 AC dimmer boards (4 channels each) and each of them has their own AC-input. To connect the zero-cross from each of them to Arduino, based on the manufacturer's library, the Z-cross pin is defined as pin 2 on Arduino Uno and Mega (and they mentioned it is unchangeable).

To go around the problem I tried:

  • Connecting all Z-Cross signals from all the dimmers and then connected it to Arduino. (Didn't work/the Whole system off)
  • Connecting one of the Z-Cross signals to Arduino -> Only 4 channels on the respective board work, the rest of the lamps are almost off.

Any suggestion?

Thanks

Unless all the devices are plugged into the same outlet, the zero crossing point is likely not to be the same for all the devices.

Paul

The zero crossing point is likely not to be the same for all the devices.

I disagree....
Unless they’re on different phases house-wiring-wise, for which I think they’d need to be pretty “far” apart.

We had a squirrel take out one phase of our house power once. The results were “interesting”