I am reading unstable zero value when a SCT013 is connected to the emontx shield.
However when I turn on a load, readings although apparently a bit off (I haven’t analyzed it exactly yet), they are a bit more consistent. Still fluctuating, but less
any idea why?
No AC adapter, Shield_CT1234 sketch
That is a clue. When you calculate a rms value, the signal is squared. This rectifies the signal. Therefore, any noise that has found its way into the ADC in the Arduino has been rectified, so it will not fluctuate about zero and average to nothing over time, but instead produce a measurable value. I am almost certain that this is what you are reading.
When you add the a.c. adapter, power comes from multiplying voltage and current and then averaging - there is no squaring, and the noise, although still present, is noticeably smaller.
I found a 2x9V transformer locally, so I installed it and indeed the precision improved a lot
I had to tune the calibration a lot, as in open circuit the transformer output was ~9.9V
I ended up with
if (CT1) ct1.voltage(0, 303, 1.7);
yes, I plan to fully calibrate it, I have a plug meter somewhere that measures V, I, real power, total power and the power factor. So far I only used a multimeter, but that measures only total power. It worked fine for a incandescent light bulb but it was way off for a led bulb, as expected.
I haven’t fully understood what 1.7 power factor does in the sketch. Should I change it or not?
Almost certainly you should change it. It’s there to compensate for the phase errors that are inherent in the transformers. Like the other calibration factors, “1.7” will be wrong for you - how much wrong I cannot say. It should be possible to calculate it, if you know the phase error for each transformer, but by far the easiest is by trial and error, by following the calibration procedure.
If you are only reading a lamp current - most certainly yes!
All manufacturers say that you should choose the c.t. so that its rated current is as close as possible to, but less than, the maximum current that you want to measure.
But you can multiply the sensitivity of your c.t. by threading the wire through the centre a number of times. For example, when I test the 100 A c.t., I use a coil of 20 turns and a current of 5 A, and the c.t. reads 100 A. If I wanted my sketch to display 5 A, I would change the current calibration constant from 90.9 to 4.545
I’ve purchased 5 CTs
1 for total house current
1 for PV panels output
2 for monitoring PHEV charging
1 for monitoring AC current draw
I will also build a diverter to use the PV unused power, so I guess that will require another CT.
AC draws ~1kw max.
the most important will be PV output (2kw max) and diverter power usage, to make sure it does it’s job correctly and does not use power when it shouldn’t. I guess it will be 2kw too, so these both last ones will require threading the wire multiple times to improve accuracy, right?
Quite probably. The SCT-013-000 is specified for linearity from 10% - 120% of rated current, i.e below 10 A, they don’t guarantee the 3% accuracy. They don’t specify phase error at all, but I’ve measured it, and the phase error goes silly below about 300 mA (not surprising really as the c.t. is designed to handle 100 A).
If you do use a multiple turn primary winding (because that is what it is), make sure the wire has an adequate current rating bearing in mind the conductors are bunched together and will overheat very easily.