Connecting a TRIAD CSE187L Current Sensing Xformer

I would like to know if the Uno board can accept for input the voltage out of a TRIAD CSE187-L current sensing Xformer? They are typically used to sense AC line current loads, such as when a vent fan motor is running. They output about 110mV AC for each amp of current passing through the primary side. Since the voltage is so low, is it possible to use this voltage directly (even though it is AC) on the Uno inputs? I would like to design a project where the Uno reads from a few of these devices and lights an LED when each of the sensed loads are pulling amperage.

They are designed to sense 0.1 to 30A but the loads I plan to monitor would mostly be less than 20A loads.

try this

use 1 meg resistor and 0.1 uF capacitor and a 1N5711 diode (DigiKey 497-2499-1-ND less than $4 for 10)

its simple and it will work, well, sorta...

Because your voltage is so small the forward drop of the diode is a major issue. Use a "Schottky diode" like 1N5711 which has very low forward drop. In this regime a diode works as a "square law detector" so AC line current will be a square root function of your analogRead().

If you want a circuit that gives you a simple voltage proportional to amps you need a more complicated "precision rectifier" which uses an op amp.

Unless you want to generate a negative supply voltage you need an op amp that operates at the negative rail.

Thanks to both of you for the suggestions. I'll see what I can do with this information. :slight_smile:

By "operates at the negative rail" you mean one that can use negative Vcc values, right? I do recall requiring the opposite polarity on Vin for what I wanted on Vout the last time I used op amps.

I had built a project with discrete components which does the same thing I would like to try to do here. It monitors the current to an attic vent fan and uses LEDs to tell me if the fan is at off, low or high speed. But for my next monitoring projects I am only interested in monitoring whether something is on or off, so I thought maybe the Arduino Uno would be a good place to start and I would not have to build something from scratch again. In that project I used a transistor to boost the output of the current sensor to a voltage above the typical forward drop of a semiconductor. But I am curious if I can avoid having to do that here.

I have here some UA741 op amps which I had also used in the other project. They are +/- 22V Vcc. Can I use one of them in your suggested circuit?

Also, is the diode in that precision rectifier circuit also a Shottky like you used in the first drawing?

Thanks! :slight_smile:

The precision rectifier turns a non-ideal diode into a nearly ideal diode, so the diode type is far less critical. You can use common small signal diodes like 1N914 or 1N4148 from RadioShack.

Wiki page on precision rectifier Precision rectifier - Wikipedia mentions that the simple version is slow due to saturation, but 60 Hz is pretty slow so the simple version should work fine. Add a capacitor in parallel with RL to filter the output.

Whats all this "negative rail" stuff, anyhow?

Most op amps dont do well for signals near their positive or negative supply pins (or rails), check data sheet for "common mode" input range. Back when the Earth was cooling, op amps ran off of +15V to -15V so signals near ground were right in the middle of the op=amp supply rails.

Ability to run off a single supply, like +5V and Gnd is highly convenient and many newer op amps are good at this. The venerated 741 is not one of them, sorry. Likewise the LM1458 will accept inputs near ground, but its output cannot go closer than about 2v from the negative rail. Look on Data sheet for words like "single supply" "rail-to-rail" and "common mode input range includes ground". TLV2472 or OP727 or LT1013 come up in searches.

Texas Instruments has a good tutorial "Op Amps For Everyone", chapter 4 is "Single-Supply Op Amp Design Techniques" http://focus.ti.com/lit/ml/sloa076/sloa076.pdf

There are cheap ways to generate a negative supply rail like -5V but if you chose the right op-amp you dont need to.

Having an op-amp that can run on "+ rail" power ranges and still yield +V results certainly simplifies things. I didn't know they were out there, but I'll certainly switch to the more modern type. When I built the other circuit I mentioned I had to buy a +/- 15V power supply and then add a regulator circuit. Getting the power the way the 741 needed it was as much of the project as making the part that did the actual task. :slight_smile:

I'll give that TI chapter a read.

Thanks for your advice! :slight_smile:

One thing you must do and understand with CTs is that their secondary winding must be shunted with a resistor. The very high turns ratio used in CT winding can cause failure of the winding insulation if not properly terminated with a 'burden' resistor. You measure the voltage across this resistor and you must ground one side of the secondary to your arduino ground. You will find that you really must rectify and filter this AC voltage to end up with a DC voltage proportional to the AC current flowing through the center hole of the CT. You will have to play with the Arduino mapping function to be able to calibrate the readings.

The info for this CT is the next to last shown on this datasheet:

Lefty

Hi Lefty,

Thanks for clarifying this information. I was aware of the need for the burden resistor (it is mentioned in the data sheet packed in the box with the transformer) but may not have caught the need to ground one side of its output common to the Arduino ground.

Understand that on the original project I built using this transformer, the objective of lighting the LEDs based upon what level of current was sensed was fed into comparators. 3 different LEDs are triggered based upon output from the transformer at rates I had to deduce through experimentation. But the transformer outputs were not filtered. The fellow who was helping me with that project felt that the comparators could handle the task even with the voltage being AC going into them.

Also please understand that I am working with values often less than 0.5V coming off the transformers, so I was of the opinion rectifying such a low voltage would be hard to do, given it is less than the typical forward drop of a semiconductor. I believe that is why Altair Labs suggested the first circuit diagram with a Shottky diode, in hoping that it may pass enough of that very low voltage to be useful. If not, the Op Amp he also suggested is my second plan.

All that said, are you saying that the Arduino would have a problem with the 'pulsed DC' that I would expect to see coming off either arrangement? All I need is for it to know it needs to light the LED when it is seeing 'some' input from the current sensing transformer. In this project, it doesn't matter how much current is being sensed, so the actual value of the voltage making it to the Arduino is not important. I'd like the LED to light no matter if the input voltage to the Arduino is far less than 0.1, or up to 2.2V (20 A x 0.110V per amp off the sensor transformer).

So in my original project, technically, the LED is blinking at 30 Hz (half the house current frequency, because the comparator input is AC), but it provides sufficient brightness (by regulating its current) to be a useful indicator. If I can achieve the same result here, I'll be happy.

I welcome all suggestions. :slight_smile:

Lefty, could you point me to some information on the Arduino Mapping Functions (a tutorial would be great!). I don't recall them being covered in the Getting Started book I am reading. I'd like to become acquainted with that function on the test bench before I try to implement it in this project. Thanks!!

I did some research on Schottky diodes, and found this in Wiki:

A Schottky diode is a special type of diode with a very low forward-voltage drop. When current flows through a diode there is a small voltage drop across the diode terminals. A normal silicon diode has a voltage drop between 0.6–1.7 volts[1], while a Schottky diode voltage drop is between approximately 0.15–0.45 volts.

However, that range of 0.15 to 0.45 V drop happens to be exactly the range most of my monitoring projects will fall in for voltage coming off the sensing transformer. So I am thinking perhaps I could supplement the sensor output voltage entering the diode with a value just below equal to whatever I can determine one of these 1N5711 diodes actually drops. That way when the sensor output rises above 0V it will make it through the Schottky and be able to be sensed by the Arduino. Does this sound logical?

As such, all the Arduino would then need to do is see the voltage either at 0 or above zero, and react accordingly.

supplement the sensor output voltage entering the diode with a value just below equal to whatever I can determine one of these 1N5711 diodes actually drops

Sorry, the forward voltage of Schottky diodes is not very precise nor stable, so thats not gonna work out too well.

A distinctly different but related technique is to offset your sensor "zero" (your CT, diode, etc) a volt or two above ground and subtract that from your ADC reading. The voltage has to be precisely known and stable, it helps with op-amps that dont operate near negative rail but it still doesnt help you with diode forward drop. I metion it here so you can distinguish between the two.

Increasing the burden resistor increases the voltage, but dont get carried away! See the data sheet. In your case the forward drop even for a Schottkey is probably intolerable so try something like this:

Thats a head start you need to work the details.

The ideal diode is the naive circuit thats probably sufficient for you.

The R and C filtering the output should be slow enough to smooth the AC into DC but not hold up the output for a misleadingly long time after the input goes away.

The components on the left side of op-amp are not required, but recommended for protecting your circuit and Arduino. Please well heed retrolefty that a CT with no burden resistor is instant destruction. I've shown a burden resistor permanently attached to the CT terminals. In worst case the burden resistor fails open but the wires to your box are intact, so the voltage protection device (TVZ, zeners, MOV, your favorite here) conducts any current the CT will FORCE in. Make sure it can withstand. Also clips spikes. The capacitor filters noise but all the RC constants on the left need to pass well thru 60 Hz. The last resistor to the op amp input can be up to 1% of the op amp input impedance which might be quite high. This adds still more protection.

Imperative that everyting in YOUR box shares the same ground. If I talk about "earth ground" and power box ground and lightning protection etc. it will start a flame war of myth and opinion here. If you want my views see
http://www.altair.org/emc.html

Good Luck with your project !

The CSE187L data sheet lists ONLY a 60 ohm burden resistor. It doesn't mention any other alternatives. So, just how MUCH higher does changing that resistor change the CT output? Can it rise over 2V?

The CSE187L data sheet lists ONLY a 60 ohm burden resistor. It doesn't mention any other alternatives. So, just how MUCH higher does changing that resistor change the CT output? Can it rise over 2V?

Well the datasheet says at 60ohms burden it generates 110mv per amp of primary, so at max 30amp it should max out at 3.3vac. Keep in mind that these are RMS ratings and 3.3vac has peak + and - value of 4.66 volts. Changing the burden to 120 ohms would double that, no? I forget the ratio of AC input voltage to half wave rectified and filtered DC output voltage, but it needs to be studied. Keep in mind that you must not have any negative voltage applied to the arduino pin, thats why the need for rectification/filtering and also pin voltage must not exceed the Vcc voltage of the avr chip.

Lefty

The DC signal will be the peak voltage.

Actually true for capacitor input filter, whihc this is, minus the diode drop, which the op amp cancels out, so its nearly the ideal case of DC = AC peak.

A possible problem is now that peak may include noise. In this naive version of ideal rectifier the op-amp spends most of its time in "saturation" where the inputs are unequal and it wishes it could go below gnd (neagtive). The consequence is when positive peak comes along, it takes a while for op-amp to de-saturate and get back into the linear mode it was born for. It is slow to responde.

So if a very short pulse, motor brush noise for example, comes along the op-amp cant de-saturate quick enough to turn on diode and pump up the capacitor to follow it before its gone. This is a good thing as you probably want the real current, not the noise.

But in the case of AC wave with smooth sinusoid top, the op-amp is hopefully got plenty of time (milliseconds is an eternity for them) to de-saturate and push the capacitor to follow the input. A noise pulses near the peak of the AC when the op-amp is already de-saturated and in its linear mode might indeed get included as "peak AC load current".

In the case of noise near the AC peak we are totally dependent on the R-C to the left of the op amp to prevent noise from creating a false reading. I would recommend testing at first with a simple tungsten filament light bulb (are they still legal?) or other purely resistive load that draws a sine wave current. Complex currents like Dimmers will be more tricky and home electronics like PCs, audio, video, and even the CFL bulbs mostly draw pulses of current only near the AC peaks.

Real power is the integral (area under curve) of product of yellow and red curves. Since the current (red) is narrow the peak reading overestimates the real power. The popularity of these type loads is becoming a serious problem for utility companies.
Motors with mechanical brushes are the noisiest (drill, blender, vacuum cleaner) but I disnt find a good picture.

The CT will pass many times the AC line freq, which is near the BOTTOM of their useable freq range. Transformer manufacturers do this to save iron and copper, to make the transformer smaller, lighter and cheaper.

More sophisticated instruments digitize the actual waveform for voltage and for current, they compute the lead or lag of phase to separate "real current" from "reactive current", they "integrate the area under the curve" for complex waveforms and despite all the fancy stuff they still fail to read accurately when "crest factor" is too high. (google the terms in quotes for more info). Besides beign waaay too much processing for an Arduino, its a complicated way to do not very much better than the simple approach.

So just keep in mind load current "peak" may not be pure sine wave. An oscilloscope will help. When strangely high readings are seen, go back to simple resistor load and make sure the numbers are what you expect. Play with the RC values on the left side to filter out "peak noise" for ugly current waveforms and I believe this simple approach will end up working pretty well.

Thanks for makin me think on AC current monitoring with CTs, its on my list of projects to do some day. If you find a great discount on CT prices, let me know!

Thank you for the rather complex pieces of information :slight_smile:

I got these current sensing transformers from Mouser Electronics for the remarkably low price of $2.47 each. I bought 10 of them at that price, since most of these devices I had been researching back then listed for WAYYY more than that. I bought them in 2007 to use in the previous project I mentioned early in this thread, and for the future project ideas I am exploring now. They list them as 553-CSE187L, ans I see that the price has dropped to $2.30 each for 10 or more.

@retrolefty - The reason I had not considered other values for the burden resistor is because they only list the one value of 60 ohms as 'recommended'. Just how much can I vary this value and still operate without damage to the device? Because if I can simply adjust the burden resistor to 'always' produce more than, say, 3V minimum for each type of current load I would be monitoring, then I can more easily rectify the output to make it be DC and solve some of these discussed issues. In fact, if I could get the voltage a little higher, I could simply drive an LED directly from the rectified output, and wouldn't even need the Arduino for this project. Keep in mind that all I am out to achieve is a remote LED to tell me when the monitored device is operating (pulling current). Unlike my earlier project which told me what speed a 2 speed fan was running, this is just an "off or on" indicator.

The effective ceiling for the output of the CSE187L, using a current load of approx. 0.5A (a pedestal fan on low speed) seems to top out around 0.320V as I increased the burden resistor using a resistor substitution box and got between 2.2K and 3.3K. Any further increase has no effect on the output voltage within values up to 10K for the burden resistor.

I chose this half-amp load as it is typical of the things I am intending to monitor (whether I forgot and left the AC unit on in my garage, for example, by monitoring its fan's AC power).

So the bottom line is that even the Schottky diode suggested would block all of the sensor output on a 0.5A load through the CT.

And my idea of possibly driving an LED directly also won't fly, because most of the LEDs I have drop somewhere from 1.7 to 2V across them. Given that most of my projects will be monitoring things of probably less than 5A draw, I'll need a different approach, for sure.

It looks like Altair Labs' most recent circuit is the one to try. Could you recommend some values for those components to get me on the right path (especially that Zener you have in there)? I am thinking you intended to shunt across the CT output if it were to rise above X volts, right? But I don't know what a good value might be for that Zener.

And should I just stick with the 60 ohm burden resistor then, or would there be advantage in using an increased value to get a higher voltage off the CT for your design?

Well maybe you can get something kluged up to work, but fundamentally you are fighting a situation where you run at 1/2 amp normal running current and the sensor is designed for 0-30 amps range, so you are using the bottom 1/60th of the sensors range, never a good place to be in instrumentation world. You might look into hall effect sensors.

Lefty

It is looking like my best option is not to employ the Arduino on this project. I can clone the original board I made, less the options for monitoring multiple current loads, and use the parts I have already, so I guess that's how I'll do it.

Thanks for your opinions. I am new to the Arduino and this would have been my first project to use it, but I am sure something else more suitable will come up.