Electronic – How to protect against voltage surges from sensors

currentcurrent measurementtransformer

I'm attempting to use a CT to measure AC current. I got a lot of information in this answer to another question which led me to huge amount investigation.

I want to measure the current in use by an AC appliance from a 5V ADC chip (e.g. an arduino, but I've got a couple different things, so it might be an arduino itself).

My first attempt involved taking the output of a CT, hooking it up to a bridge rectifier, grabbing a 10k resister and measuring the value relative to 5V off the ADC. My test appliance is a lamp with a 75W bulb. It basically worked, but was giving me "off the chart" numbers when I turned on the lamp. This made me think something bad was happening.

The other poster suggested I put a 3300 Ohm resistor across the voltage of the output. The expectation was that I'd get 680mV. Doing this with my old DMM wasn't giving me much information, so I ordered an oscilloscope and decided to see what was really going on.

This is basically my story of attempting that.

turning on the light with a 3300 Ohm CT reading

While the voltage seems to go slightly negative, the difference between my minimum and maximum seems to be the predicted 680mV. However, you can see a giant spike of 7.12V when the device is actually turned on.

I'd like to not plug 7.12V into the 5V ADC, so how might I go about suppressing that?

(I'd also like to level out the results so I can get a solid read, but that's a different problem I'll try to solve after preventing chip explosions when switches flip)

Best Answer

A typical and simple solution is a schottky diode (low forward voltage drop) from your signal line to +5V (anode to signal, cathode to +5V) will limit the voltage spikes to a few 100mV above +5V.
Similarly a diode to ground (cathode to signal, anode to ground) can prevent negative swings.

For something like a CT that is capable of huge voltage spikes, a TVS (transient voltage suppressor) instead or as well as the diodes might be a good idea too.

I would suggest a buffer (e.g. non inverting opamp, unity gain) in between your CT output and ADC. This would add a stage of protection before your ADC. You can use the diodes on it's inputs to protect it, and if you power it from +5V it is guaranteed not to swing higher than the ADC can handle. Also you could add a few gain taps (e.g. 1,5,10,etc) to switch between for different current ranges - this way you will be able to use the full range of the ADC better.
For instance your 680mV signal is only using (0.68V / 5V) * 100 = 13.6 % of the ADCs range. For an 8-bit ADC this equates to ~35 out of 256, 680mV / 35 = 19mV per ADC step (e.g. 00000001 = 19mV, 00000010 = 38mV, etc). If you had a gain tap of 5 (e.g 0.68V * 5 = 3.4V) it would be more like 4mV per step.