Go Down

Topic: Low Cost Current Sensing (Read 10 times) previous topic - next topic



I am working on a project where I want to be able to measure the current running through several 120V AC lines. I am using magnetic hall effect current sensors as they have a complete separation of circuits between the arduino and AC. I've gotten it all setup and working with this honeywell sensor - http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&storeId=10001&catalogId=10001&productId=1851915&  
however, this costs $17 each and i was hoping to look for something cheaper so i can use several of them.

As a result, I purchased of few of these - http://www.jameco.com/webapp/wcs/stores/servlet/ProductDisplay?langId=-1&storeId=10001&catalogId=10001&productId=627621& -  for $4, however after staring at the datasheet for a long time I have no clue how they work. It says they are "Current Sense Transformers" designed for switching power supply applications. They have two pins.

Could anyone be so kind and take a look at the datasheet (on the link) and explain if they could work for me, and if so, how? If not, other solutions or suggestions are appreciated!

Thanks! -Martin

Don Kinzer

I have no clue how they work.
See the Wikipedia entry for a description of how it works.  http://en.wikipedia.org/wiki/Current_transformer

The idea is that you'll get a current in the secondary that is (ideally) proportional to the primary current (i.e., that flowing through the center).  You can convert this current to a voltage using a suitably-sized resistor.  The center-tap construction of the current transformer lends itself to using two diodes to convert the resulting AC voltage to DC, filtered with a capacitor and sampled with the Arduino's ADC.

You'll probably want to get one of them and experiment with it.  It is likely that the transfer curve (current to DC voltage) will be non-linear due to various magnetic losses.  However, you can probably construct a piecewise linear approximation to the transfer curve that will work suitably well for your application.

ZBasic Microcontrollers


Thanks Don!

I have bought 4 of these guys, I guess my sticking point is how do I wire up the 2 pins? Do I need to give it any voltage to start with?


Nov 22, 2008, 05:59 am Last Edit: Nov 22, 2008, 06:01 am by retrolefty Reason: 1
If your intent is to measure the current flowing in a 120VAC 60Hz circuit then these transformers are not going to cut it. From the data sheet you linked:

"These transformers are very
reliable and operate effectively over the frequency range of 20 kHz-
200 kHz."

These are designed to measure current in high frequency switching regulator circuitry.

Of course there are current transfomers designed for 50/60hz and they are an easy non intrusive method of measuering AC current. You might check E-bay for bargains.



I want to do the same thing using this transformer and I have a question regarding the output to the arduino. Since it is a transformer its outputs will be AC and the arduino wants a DC input. Do I only have to setup a full bridge rectifier with a couple big capacitors to rectify and smooth it all or is there something I am not aware of?


Lova Andriamanjay


"Do I only have to setup a full bridge rectifier with a couple big capacitors to rectify and smooth it all or is there something I am not aware of?"

Basically yes, however don't forget that first a resistor has to be wired across the secondary winding as shown in your data sheet. This provides a load for the transfomer (very important! safety item) and it's value sets the range of how much AC secondary voltage equals how many primary amps are flowing.

Also keep in mind that the bridge rectifier / filter capacitor will charge to the peak value of the AC voltage not it's RMS valve. You want to make sure that full scale filtered DC voltage is 5VDC max to the AVR analog input pin. It would probably be safer to add a series resistor between the analog input pin and the rectifer/filter output in case the measurement value ever 'spikes' above 5vdc as seen by the AVR chip.



Nov 25, 2008, 12:27 am Last Edit: Nov 25, 2008, 12:31 am by martini Reason: 1
Lova - That part looks really interesting, where did you get it from? How much does it cost? As I am not good with hardware I have just been reading the AC data quickly into an array and processing the curve data afterwords in the arduino.


FWIW, down near the bottom of this page
http://www.cs.uiowa.edu/~jones/step/current.html is a current sensor that uses a ferrite core with a slot cut into it with a Hall Effect device in the slot.

It's not calibrated, but it looks like a simple current sensor solution for some applications.
"Data is not information, information is not knowledge, knowledge is not understanding, understanding is not wisdom."
~ Clifford Stoll


Nov 25, 2008, 02:56 pm Last Edit: Nov 25, 2008, 03:16 pm by landriamanjay Reason: 1
Martini: This is not a cheap part since it is a 16$ at digikey. Depending of your application you may want to look at more possiblities at digikey. I want to use the 16$ one because it has high amp capability and the split core allows an easy installation on a machine in service.

Retrolefty: Essentially what I should do is like the schematic below but with a load resistor before the bridge?


"Retrolefty: Essentially what I should do is like the schematic below but with a load resistor before the bridge?"

Yes that is correct. However I would use two resistors, the first across the secondary of the tranformer that is sized for the correct (and safe measurement range you require) and a second one as you show on the output of the filter caps. Keep in mind that you will need to size the caps and final output resistor for the sample speed and signal response time that you need. If the caps and resistor are too large your measurement voltage will lag as it will act like a large low pass filter. It's an R/C time constant calculation and it all depends on how fast you want to be able to measure a change in current in the primary circuit.

Good luck


Ok, if I don't want to create a smoothing circuit, is it possible to do differential voltage input on the Arduino?

Go Up