How do I make a piston go up and then down?

Solution 1:

You want to use a monostable circuit. This turns any input pulse into a pulse with an exact length (in ticks). Hook this up to your clock and you can pulse the piston on for 1, 2, or however many ticks you want.

By tweaking your clock speed and monostable circuit you can get very precise piston pulses, e.g. 1 tick on, 5 ticks off; 3 ticks on, 7 ticks off etc.

sethbling, noted redstone genius, gives a very good guide to monstable circuits, as well as other redstone components in this video: