Simplified power monitor

Hi all,

I’m working on a simplified power monitor for my Arduino. My goal is mainly to detect overloads in my house.
Very basic: a CT Sensor SCT-013-000, a burden resistor (22 Ohms), then I plug this between ground and analog pin of the arduino.

I read power with this :
for(i=0;i<1000;i++){
myResult += analogRead(5);
delay(1);
}
Serial.println(myResult);

I divide by 20 (arbitrarily found by testing), and I get the result in Watts.
I like this, as it’s very very simple, but as I’m sending a sinus signal to the arduino pin, I’ve two questions.

  1. Can the sinus damage the analog pin ? During half of the time, the voltage is negative. Can this be an issue on long term?
  2. I assume that the negative part that I don’t read is just opposite of the positive side. I know that’s not always true, but in practice, can this be “good enough” for most loads found in an house?

The negative voltage must never go below -0.5 volts. You will damage the Arduino it you apply -2 volts from a voltage source. If the negative wiring includes a high resistance, the damage will be less than a low resistance in series with the negative voltage source.

The melting of Arduino materials will destroy its functionality. Negative voltages forward bias some diodes in Arduino and cause latch-up or vaporization of wires . You can protect the Arduino with a schottky diode and resistor. With those in place, negative voltages are allowed.

You are measuring AC, so the output of the CT will be AC hence the voltage into the arduino analog will be AC, not good.
You will have to rectify this AC and do it using a precision rectifier (google it), a diode will not work properly because it will introduce a voltage drop and make your readings a little non linear.

Tom

There is an excellent thread on the Sparkfun forum which describes the circuit you need to interface to this device.

zaz789:

  1. Can the sinus damage the analog pin ? During half of the time, the voltage is negative. Can this be an issue on long term?

Yes, if you apply the current transformer output direct to the pin then you may well damage it. The simplest mitigation is to add a series resistor between the current transformer/burden resistor interface and the pin, to limit the current to a safe value for the pin protection diode. I would use 47K to 100K. If you're paranoid then you can also connect a Schottky diode, cathode to pin and anode to ground.

zaz789:
2. I assume that the negative part that I don't read is just opposite of the positive side. I know that's not always true, but in practice, can this be "good enough" for most loads found in an house?

Yes, except for very old television sets, and some electric drills with built-in variable speed controllers.

An alternative is not to connect the other side of the transformer secondary to ground, but to connect it to a voltage divider of two equal resistors, giving 2.5V. You will then be able to measure negative currents too.

Thank you all for your replies.

So, if I understand well, it’s “bad” to send <0V to the inputs.

Possibilities to limit this are :

  • use a series resistor, to limit the risk
  • add a shottky diode
  • or a precision rectifier (better, but more complex)
  • or use a voltage divider to avoid negative values

I think option 1 and 4 are the easiest for me regarding the components I have.
Thank you very much for your time.

Personally I would add the diode for a rectifier, as they are not expensive and do not add anything significant to the overall cost. An additional step you can take is add a relatively large cap (5-10uF) in parallel to the arduino's pins after the series resistor, creating a low-pass filter. What this will do is create a relatively DC signal for your Arduino to read, rather than getting into more complicated DSP of an AC signal. It will also reduce the risk of a big surge from propogating through to your arduino.

Perhaps some ideas in http://myelectronichome.altervista.org/joomla/it/il-sensore-di-corrente-non-invasivo-sct-013-020.html