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.
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.