Will my coil gun circuit work?
It's a little trickier than maybe you thought...

You apply a DC voltage to the coil and the current ramps up to some maximum in possibly (say) 10 ms. Then consider what happens when you reduce that current or try to reverse it. That ramping-up current has created energy in the magnetic field and so this has to be wholly got rid of just as the magnet reaches the mid-point of the coil before reversal. So the current has to be ramped down a few milliseconds before the magnet hits the mid-point then reversed. This will provide optimal timing and minimal loss in decelleration of the magnet.

I would use MOSFETs for this because with the appropriate choice of device they are more easily driven from the output of an Arduino. But please do choose MOSFETs that activate on low gate-source voltage. Maybe use something like this: -




Step 1 activate B and C to ramp up current (B and C active)
Step 2 deactivate C and activate D to ramp it down to zero (B and D active)
Step 3 deactivate B and activate A to ramp up current in reverse (A and D active)
Step 4 deactivate D and activate C to ramp back to zero (A and C active)


Turn off A, B, C and D.