SCT013 reading inconsistencies

Is that “appliance” by any chance a hair dryer?

Thank you for your reply, Robert.

After calibrating for a 9A current then increasing the power draw of the appliance to 13A the reading I get from the Arduino is in the 20A-21A range.

I will increase the number of times the load wire passes through the CT as you have mentioned.

Yes, I am using a hair dryer for testing. Any similar experiences with this?

Yes!

Typically the low setting on a hair dryer uses a diode in series with the heating element
for the “low” setting.

Have you got something like a toaster or space heater that you can use as a test load?

Here’s an explanation of what’s happening:

The calibration constant - I think you must be using emonLib - is the current that gives 1 V rms at your Arduino input. That’s easily calculated, it is 60.6 (or 20.2 if you have 3 turns for the primary winding). If you set that, does it read the correct current at full power (with due allowance for component tolerances) and with a “well-behaved” load?

What results do you get if you calibrate using only the full power setting on the hair dryer?

I adjusted the calibration constant to 61 to match the 13.16A reading on the Kill-A-Watt meter with the hair dryer on hot high setting. Then when I switched the hair dryer to the hot low setting the meter read 9.26A while the Arduino read 5.95A.

This is because the hair dryer is effectively working on direct current (the heating element is, the motor of course will not be, but that represent a tiny fraction of the overall current), but no transformer will pass direct current, therefore the half wave that passes through the rectifier diode gets shifted so that the average current is zero. emonLib still calculates the rms value correctly, but it is calculating the rms value of the shifted half-cycles from the c.t., not the unshifted wave. There’s little you can do about this safely, because for your safety, you must continue to use a transformer to isolate your Arduino from the mains electricity.

After you calibrate (with the dryer on the high setting) how far apart are the readings when you use a different load? e.g a toaster or space heater.

I passed the load wire through the CT four times, then divided the reading by 4. This along with @Robert.Wall 's explanation on why my hairdryer readings were so different between settings seems to have solved the problem I was having. I calibrated and tested using a fan and my soldering iron getting readings that look correct. I will do more testing later to verify further as the extension cord I am currently using to separate the load/neutral wires is not grounded.

Thank you @Robert.Wall and @Bill.Thomson for your help and explanations!

You may want to take a look at the FAQ.

A soldering iron isn’t a good test load because it’s likely too small, or possibly powered by
a switching mode power supply. (i.e. if it’s not heated directly by the mains)
The fan isn’t good because a motor is a reactive load.

The ideal load is a resistive load (there’s that damn toaster again!) like a space heater with a
small (or better yet no motor) or any other device that uses a heating element that draws
approximately the power you’ll likely be monitoring.

The FAQ addresses these issues as well as a couple more.

Thank you, I will look at the FAQ more closely when I do my further testing.

Actually, Bill, as Jake is interested only in the current, that doesn’t matter. But it would if/when he comes to measuring real power.

For my purposes I will only be interested in measuring current as the circuits I am interested in measuring carry more electricity than household mains power. I have found other current transformers that have current measurement ranges that fit my application. Is the burden resistor the only component of my setup that needs to be adjusted according the other CTs with higher measurement ranges?

Yes - for an Arduino running at 5 V, you should choose the burden so that, at the maximum current you are likely to want to measure, the voltage that the c.t. secondary current drops across the burden is not greater than 1.6 V. (This allows a small amount of headroom for component tolerances.)

But you should also bear in mind that a c.t. is at its most accurate when working into a short circuit, so increasing the burden value to increase the sensitivity comes at a cost of reduced accuracy at the lower end of the measuring range. In order of increasing preference, for increasing sensitivity you can (1) increase the value of the burden, (2) use a multi-turn primary, or (3) use a c.t that’s rated for the load. You must balance that against the need for 1.6 V across the burden to fully use the input range of the Arduino, unless instead of the 5 V supply, you use the internal 1 V reference and redesign your analogue bias circuit accordingly.

(I’ve added a diagram to my post above to show the waveforms.)

What would be the differences/advantages between using the 5V supply vs the internal 1V? Would the two setups offer similar measurement accuracies? I plan to specifically get CTs for each circuit based on amperage with the average reading toward the upper limit of the measurement range.

The principal advantage of using the (nominal) 1 V input is you have a very much wider choice of c.t.

As far as accuracy is concerned, you’re unlikely to notice the difference unless the c.t. you’re trying to force into generating 1.6 V is overloaded and distorts the wave shape. If you look in the Learn section at the test reports on the two c.t’s that the OEM Shop sells, you’ll see how the errors increase when using a high value burden (as in the emonTx high sensitivity input), and especially how the SCT016 fails completely to reach its rated maximum current.

You might run into trouble with:

You should rate the c.t. and the input for the maximum current that you’re likely to want to measure. If you have appliances that demand a high inrush current – induction motors in refrigerators are common examples – you must take that into consideration too.

Here are some real pictures of a SCT-013-000 current transformer faced with half-wave rectified d.c.

First, at about 22 A primary current. (20 turns @ 1.1 A)
The upper (yellow) trace is the voltage across a 0.33 Ω shunt, the lower (blue) trace the voltage across the c.t’s 10 Ω burden.
In each case, the zero level is marked by the arrows on the left-hand edge of the window.

The “base” of the wave, which is a flat line at zero in the primary circuit has become a sloping line (because of the limited low-frequency response of the c.t. - see Measuring AC current output from a VFD - #18 by dBC) and it’s offset negatively so that the average over a cycle is zero - again because the c.t. blocks d.c.

Here is the same c.t. at about 100 A - no rectifier:

And with the rectifier, using the same scales, but slightly less current. It is not at all happy with that:

Had that been a steel core in the c.t. rather than ferrite, it would probably need demagnetising now to restore accuracy.

1 Like

Here’s an example from the test rig described in the thread referenced above. Yellow is the voltage across a small shunt in the primary circuit and Blue is the voltage out of the CT connected to a 22R burden.


Everything balanced around 0.


A DC offset added to the primary circuit (the Yellow trace pushed south by 1V).

What the scope calls “DC RMS” is really total RMS of the signal. “AC RMS” is the measurement of the sinewave with any DC offset removed. In the first pic they’re the same because there is no DC offset. In the second pic the sinewave is still 1.7V RMS, but the total RMS has jumped up to 1.98V because of the 1V DC offset. The other thing to note is that 12 + 1.72 = 1.982

So there’s considerably more work being done by Yellow signal in the second pic - things are getting hotter faster, but the Blue signal is identical between the two. The CT just thinks there’s 4A flowing in both cases, and remains nicely balanced around 0.

1 Like