Since the solenoid requires higher current than the arduino can provide we will be using an alternative power source for the solenoid (a couple batteries) and will be "driving" it with a TIP120 transistor.
The circuit we're using can be found online here. This instructable draws from the excellent documentation in Tod Kurt's bionic arduino workshops.
Build time was exactly one-beer. Excluding the arduino and computer you use to program it, we are using less than $10 in parts. Ok!
Step 1: Parts
• USB cable for programming and powering the Arduino
• Some jumper cables
• A 1K resistor
• TIP120 transistor (TIP102 will also work fine)
• 1N4004 diode (1N4001 also works)
• Some batteries and connectors for solenoid power
• A solenoid with leads to connect to the breadboard
Step 2: Building the circuit - power connections
Step 3: Building the circuit - transistor time
We will connect the output pin of the arduino to the Base leg of the transistor through a 1K resistor. The Collector leg of the transistor will be connected to the ground leg of the device we are driving (our solenoid). The Emitter leg is connected to the ground channel of our circuit.
Step 4: Building the circuit - connecting the solenoid
The diode connects the power channel to the solenoid-ground-leg/transistor-collector-leg, preventing the kickback voltage from damaging the circuit. The diode is polarized and should be oriented with white/sliver stripe on the power channel side of the connection.
I'm using a pull-type solenoid rated for 12 to 24 volts (got it here), which has plenty of kick. You'll need some kind of spring to pull the shaft back out after it's been pulled in - I used a small length of insulated wire wrapped around the shaft to create a makeshift spring. In a different sort of configuration one could use gravity to pull the shaft back out (but you'd need some of stopper to prevent the shaft from falling all the way out).