Triac/Optocoupler Dimmer

I still haven't solved zero-cross or interrupts, they are both complicated hardware and software issues that I don't have the expertise or training to handle.

However, if you just want to dim a standard light (LED strings or incandescent lights) off of AC power, just rectify the AC to DC and then control that voltage with PWM (native to the Arduino) at the gate of a MOSFET of appropriate voltage and amperage for the project.

You can then use even the simplest code to control the light (including the "blink" and "fade" example sketches).

Add a schottky diode to the circuit in the right place and you can control DC motors, too!

Using an optoisolator is recommended to keep the 120v isolated from the Arduino.

If you want help with that solution, let me know. If you want to learn about someone else's circuit (including interrupts and zero cross detection), I can't help you. I know this works and it's amazingly simple.

Using DC on incandescent bulbs does theoretically reduce the lifespan of the bulb, but not drastically (or for me, even noticeably!).

Good luck!