It all started with a youtube video that shown a 3 channels dimmer with arduino. It didn't have the visual part (so you couldn't control it, it was a simple function changing the lights luminosity "randomly"), but it was a good start. Also, I found an Instructable with a 1 Channel 220V / 50 Hz AC dimmer controlled by an Arduino that seemed promising. I had to do some calculations and to adapt some parts to my 127V / 60Hz local voltage. Not too hard, but...
For starters, you have to know how many channels you're going to need to make this kind of project successful. For me, 4 channels. Second, you would have to have an idea of how many levels would you permit your users (me and my wife, in this case) to interact with this dimmer. I thought of 100 levels would suffice. Later, with some experimentation, you will realize that you will NOT need that level of granularity for this kind of application: about 20 will suffice. I've ended up using 80 levels, much for laziness than any other specific reason. Going a little further in the planning part, you may add a kill switch if you just want to turn off all channels at once. That could be a hardware or software switch, it will depend on how much of space you will have left in the interface. Also, I've added a "presence" detector (a simple PIR sensor did the trick), so we can turn off the display in case that the space is empty.
Jaques Lopes Schroeder
davedarko
CJ Rose
Mike Hendricks
Sam