Below is some simple code which I've written which may be of use.
Turn your Arduino Mega (ATMega1280) into a hard real time experimental timing controller/sequencer. NB: At the moment, this thing is controlled by bash scripts! If you have a phobia of the command line, you might want to stay away, but it really isn't that hard!
(NB: I originally wanted to do this outside of the arduino environment, but I couldn't get the linking to work for some reason. In any case, the arduino code is probably accessible to more people, and the microcontroller hardcore can easily add the correct header, etc, and compile with avrgcc)
You can probably use your Arduino Mega as is for experimental control by just connecting the relevant pins to the modulation inputs of the equipment you want to control. However, this is not recommended. In principle, you should add an output stage to decouple the arduino from the equipment you are controlling. I will try to post schematics of this output stage soon.
Use your Arduino 168 (ATMega168) to frequency lock a laser to a hyperfine absorption peak. (NB: This requires a bit of extra electronics to actually get working. I will try to post the schematics soon )
Burning the arduino bootloader to a naked ATMega168 or 328P
Here are the commands and tricks I used to accomplish this apparently simple, but sometimes frustrating task.