In a car(motorcycle) environment I've been using a a power diode, series 100 ohm resistor, and a 24v zener to ground in front of a regulator rated for 30V.
it occurs to me though that if there was (say) a 70v spike and the zener conducted, the resistor would disappear in a puff of smoke. This is not what I want!
Also, I'm using 47uf caps on each side of the resistor but my current draw is like 25ma max - can I lighten up on the caps? Is there a formula? I googled around but the calc's I found were mostly about reducing ripple which isn't my issue.
I think your configuration is quite all rigth.
The 24V Zener will protect the regulator against "spikes".
A resistor (or the Zener) will not "puff" through spikes They will need a certain energy so it can heat up - this is VIt. "t" beeing the most important part of this equation. Though the ratings say "watt", this means permant dissipation, for a very (!) short time the power resitance is much higehr with reasonably sized devices (this is more complex inside integrated circuits)
It you are not much interested in ripples, tha a 4.7uF cap will do for your 30 mA
A 70V spike is usually just that, a very short term condition that doesn't really carry a lot of power, but the voltage will do the damage. Your circuit sounds like it will take care of momentary spikes pretty well.
Now if you are talking complete alternator regulator failure and 70V over voltage conditions, you might have worries. The way this is usually handled is to have an SCR Crowbar circuit and a fuse. The over-voltage trips the SCR into conduction which shorts the power input to the device you are trying to protect, eliminating voltage and the fuse blows to remove the power into the circuit.
There are also voltage regulators specifically rated for automotive use that are designed to withstand the really nasty spikes that can happen in a load-dump scenario. There's a fairly extensive discussion on designing power supplies for vehicle applications in "Practical Arduino" in the "Vehicle Telemetry Platform" project.
I still haven't got around to putting the schematics up (sorry) but there's a little bit of info about the project here in case you don't have the book:
Ok, the book looks like fun and I see the ref to the lm2940ct-5. I also see you have an enormous capacitor after the diode on the 12v side of your circuit - why so big?
I also see you have an enormous capacitor after the diode on the 12v side of your circuit - why so big?
Ah yes, that's a bit of a trick. It's explained in detail in the book, but the short summary is that it holds the output high for long enough for the Arduino to go through a managed power-down routine such as closing the logfile on the USB memory stick. It has one of the interrupts connected to a voltage-divider (protected by a Zener clamp) on the input side of the diode you mentioned which is there prevent the input-side cap discharging back into the loom when the power goes away, and the ISR forces the main loop to bail on whatever it's doing and clean up after itself.