Step 8: A little micro makes all the difference
now you've got a fully digital controlled high-power LED light.
the micro-controller's output pins are only rated for 5.5V usually, that's why the zener diode is important.
if your micro-controller is 3.3V or less, you need to use circuit #4, and set your micro-controller's output pin to be "open collector" - which allows the micro to pull down the pin, but lets the R1 resistor pull it up to 5V which is needed to fully turn on Q2.
if your micro is 5V, then you can use the simpler circuit #5, doing away with Z1, and set the micro's output pin to be normal pull-up/pull-down mode - the 5V micro can turn on Q2 just fine by itself.
now that you've got a PWM or micro connected, how do you make a digital light control? to change the brightness of your light, you "PWM" it: you blink it on and off rapidly (200 Hz is a good speed), and change the ratio of on-time to off-time.
this can be done with just a few lines of code in a micro-controller. to do it using just a '555' chip, try this circuit. to use that circuit get rid of M1, D3 and R2, and their Q1 is our Q2.