Current ACS712 Module

I hooked up a Current ACS712 Module and a Display_HD44780 to a Cerberus mainboard running the latest 4.2.3.2 firmware. Code is pretty simple:


using Microsoft.SPOT;

using GT = Gadgeteer;

namespace ACS712
{
    public partial class Program
    {
        void ProgramStarted()
        {
            Debug.Print("Program Started");

            GT.Timer timer = new GT.Timer(500);

            timer.Tick += new GT.Timer.TickEventHandler(timer_Tick);
            timer.Start();
        }

        void timer_Tick(GT.Timer timer)
        {
            display_HD44780.Clear();
            display_HD44780.PrintString(current_ACS712.Read_AC_Current().ToString());
        }
    }
}

First test is my standard zero state test, nothing connected at all to the current module. Trying different sockets I get values like:

Socket 4: -0.404
Socket 2: -0.388
Socket 3: -0.391

Makes me wonder if I would be able to detect a power off condition.

Now making up a simple circuit hooking up the current module in series (ie I’ve got a short extension cord I’ve cut one line and hooked it up to the current module) using my cheap variable power soldering iron which I’ve had on my digital meter and at full power uses 0.5 Amps (the iron does come on and gets hot so my circuit is passing power). So at full power I see:

Socket 4: -0.422 (ie same as the zero case above)
Socket 2: -0.395 (ie same as the zero case above)
Socket 3: -0.411 (ie same as the zero case above)

Basically the readings just bounce around so I let them go for 39 readings and the average was -0.3898, min = -0.3985, max = -0.3814, this was for a zero state doing it again for a power situation avg = -0.3812, min = -4038, max = -0.3673

I tried a test where I read the module as DC ( current_ACS712.Read_DC_Current() ) in a zero power condition and the results were:
avg = 0.4007, min = 0.3871, max = 0.4192 (note these are positive values unlike above where they are all negative).

Other module tested with similar results.

Any suggestions as these aren’t the readings I was expecting.

Duke,

did you read this: mobileapes.com

Hello,

I plan on using an ACS712 in the near future. Did you figure out what went wrong ?

Thanks.
Best regards.

I pretty much punted this module through the goal posts of life for 2 reasons, first it never did seem to work in the application I was trying to use it in and second when looking at the chip it is a:

ACS712T ELC-05B

and I believe the 05B means its designed for +/-5A range which is below what I was needing it for. A ACS712T ELC-20A would have likely worked better in my application.

Thanks. I’ll give it a try soon, and get back with, hopefully, positive results.

@ stefanu - how did you get on?

We have another discussion about this module on this thread as well:

http://www.tinyclr.com/forum/topic?id=11110

As per the datasheet, the ACS712 “provides economical and precise solutions for AC or DC current sensing in industrial, commercial, and communications systems”. However, for AC current sensing, it will give you instant reading. I’m not 100% sure on that, as I’m waiting for my DSO to be shipped, and when I get it, I will be able to provide more information.

In the meantime, I have found several PDF files with information about current sensing. There are several methods, even micro-controllers that will do all the math for you and provide power measurements.

For my application, as I do not need extremely precise measurements, I am trying to go for a RMS-to-DC Converter, more precisely, an Analog Devices AD736. The chips are also being shipped, but they come from much closer and I hope to get them by the end of the week, and hopefully play a little during the weekend.

I will try to upload the datasheets and other documents that I have found in a different post, as I do not have the original links; found them by googling and saved them locally; they are all as downloaded as © respective owners.

… can’t upload PDFs, so here’s the list of some useful parts/files/application notes that I found.

AD736 - True RMS-to-DC Converter
78M6610 - Energy measurement Processor
CRD5490-Z - Cirrus Logic Power monitor
CS5490 - Cirrus Logic Two-channel energy measurement
Current Sense Circuit Collection (by Linear Technology, application note 105) *** by far the most interesting read
Current Sensing Circuit Concepts and Fundamentals (by Microchip, application note AN1332)

It looks like the LTC1966 Precision Micropower ΔΣ RMS-to-DC Converter by Linear Technology is one of the mose precise chips available, but it’s not available for me to purchase easily, so I went for the AD736; I plan to test with the schematic if figure 26 on page 15 of the datasheet.

Googled again for the “Current Sense Circuit Collection”; here’s the link

Ok, so here it goes; a few data based on my first tests (I was unable to save a hard copy of the wave from the DSO, but hopefully I can find a way to do that too).

Using a classic light bulb as load, I connected the ACS712 to 5V DC. With the load disconnected, the output is at 2.5V DC, as explained in the datasheet.

With the load connected, the output is a sine wave at 50Hz, in line with the mains.

So, the ACS712 will give instantaneous current reading; for AC, I will try to use an AD736 along with an AO to allow for low current measurements.

Will get back with more info.