Thursday, 2 October 2014

How to Design Arduino Voltage and Current Sensing Shield


I am trying to design an Arduino shield that measures raw voltage and current of a small refrigerator (115V, 60W). I have an Arduino Mega board. To one of the ADC inputs I have connected a (non-split) AC current transformer sensor with an 1M resistor in parallel. The value of the resistor, I have chosen such that voltage range is within approx 0 - 3 V. so I can maximize the ADC precision.


This works fine and I manage to sample at 200Hz and although the current is not a sine (not surprising as the load is an AC motor), it seems similar to what I see with a scope.


My question is how to also get the voltage. I was thinking of some kind of a voltage divider, but I am reluctant to do it for the 115 V. I am learning how to design these things, so any pointers would be welcome. Also is there a better way to get current readings? I was thinking of using a small resistor and measure the voltage drop, but then I would get into a electrical safety problems and the accuracy doesn't seem to be much better than when using a transformer.



Answer



You could use a voltage divider, but it will probably be simpler and safer to use a step down transformer to scale the mains voltage down to something the Arduino ADC can read.


Make sure that you use an actual bare transformer that outputs an AC waveform and not a switching or rectifying power supply that outputs DC. You can use any transformer that brings the voltage down to a safe level (12 VAC is common for door bells) and then use one voltage divider to scale down to the Arduino's 5 volt peak-to-peak range and another voltage divider to center the output voltage in the middle of the Arduino's 0-5 Volt range.



Great info here..


http://openenergymonitor.org/emon/buildingblocks/measuring-voltage-with-an-acac-power-adapter


As for measuring current, the typical strategies include...



  1. Measuring the output of a current transformer like you are doing.

  2. Measuring the voltage across a very low resistance (and high power) shunt resistor. These are typically just a piece of metal with a known resistance. You also often amplify the voltage across the shunt because you you want the smallest resistance (and thus voltage) possible otherwise the shunt will get hot.

  3. Using a hall effect sensor to detect the magnetic field generated by the current in the wire.


These are all used in practice, although current transformers are probably best for projects like yours because they are simple and do not require actually touching the high voltage wires.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...