Fairly new to electronics and new to these forums. So sorry if I say or do something stupid or against the rules. Also, sorry for the long post.
I’m working on setting up a system to monitor my house’s power. I think I have everything working pretty well, but I’m getting larger amounts of noise than I expected.
- I’m using 8 SCT-013-000 (input 100amp, output 50ma) which are a bit big for most of my circuits (two 100A mains, one 50A, one 40A, two 30A and a few 20A because I had extra CTs), but should work just fine.
- I’m using an ADC to convert the signals to digital
- Data is being read by a python script on a raspberry pi running emonpi (vanilla raspberry pi, not the emonpi enclosure)
- All the CTs are sharing an op-amp to supply the stable 2.5v reference (as outlined https://openenergymonitor.org/forum-archive/node/673.html and https://learn.openenergymonitor.org/electricity-monitoring/voltage-sensing/acac-buffered-voltage-bias)
Here’s a rough diagram: (diagram shows a cap between the voltage divider and ground, which I added to try and reduce the noise, but upon further research, it would only fix HF noise on the input, which isn’t my problem)
And here is a picture of my current breadboard. Sorry the wiring under the CT leads is a mess and hard to follow. Basically each CT lead is connected by green wires to the 2.5v ref, and then either a blue or yellow to one of the input pins on the ADC. There are also 22Ohm resisters between the 2.5v ref and each ADC input pin. I’m only using 7 pins, because I plan to add a AC/AC transformer for voltage measurement soon.
This all works fine when I only have one CT sensor plugged in, but once I have multiple, everything goes wonky. To show you what I mean here are the readings from the ADC with nothing attached to any pins. So no CTS even connected to the board. So it should be measuring the base noise of the PI, ADC and 5v source all working together. There is some noise as expected, but 93%+ of the values are within 1% of 0. (Sorry for the weird range on these graphs, it’s a 10 bit ADC so 1024 counts. For these measurements I subtract 512 so it’s centered on 0. And yes, I don’t have an oscilloscope, so I wrote a script to output csv and imported to google spreadsheets)
Here are the readings while a single CT is plugged in, but with no load on it. Slightly more noise, but I get values of around 100-200W, which is way better than I would expect given the tolerances of all of the components.
The problem comes when I plug all the CTs in, some of which are measuring loads. This is the readings from a CT without any load (not even a wire going through it) but while the other CTs are plugged in.
As you can see, the noise level has increased by a lot. My rudimentary RMS function calculated that this was using around 8% of the 100A max while unloaded, which makes calculating a rough estimate of power usage pretty useless when my calculations say every circuit is just always burning 8A when it’s really not.
For reference, here is a 40A load measurement, again while all other CTs are connected.
Still some random bits of noise, but the calculations come out pretty accurate to what I get with 3 different ammeters. The problem though is that in emoncms this circuit shows as pulling 40a when on, and 8a when it’s off (due to the noise) even though it should read close to 0. I’ve been working an implementing a fast fourier transform to filter the data I’m getting, but while I work on that my questions are:
Is this amount of noise normal and expected with multiple CTs sharing a 2.5v ref point from an op-amp? Have I done something incredibly stupid or missed something obvious? I know my CTs are oversized and I don’t expect miracles like being able to tell a single lightbulb being turned on, but measuring 8% usage on an unloaded circuit using rudimentary RMS calculation seems off.