Home > Hardware, Video > ACS712 Module Measures Currents up to 30A for as Low as $1 Shipped

ACS712 Module Measures Currents up to 30A for as Low as $1 Shipped

Usually, if I buy a high power electric appliance, I like to double check it power consumption either with a Kill-a-watt when possible, and when not, e.g. cable directly hooked to the device or current intensity is too high, I use a digital electric clamp meter. Both methods are quite convenient as you don’t need to cut any wire to measure the current and determine the power consumption, but they don’t allow for data gathering since they don’t connect to the network. Earlier this week, I’ve come across a projects using ESP8266 for a mains energy monitor for a solar panel setup, and measuring mains current, electric meter, and gas meter. They use a photosensor to measure power consumption on their electric meter, which works, but may be problematic if the meter is on the street, and iSnail current sensor, using hall effect just like clamp meter, but instead of showing the current on a display the sensor output 0 to 5V, meaning you can connect it to a micro-controller to handle the data however your like. That’s nice, but while a clamp meter costs about $10, the 25A version of iSnail goes for $40, so I looked for alternatives. I wanted to find an always-on connected hall effect current sensor that either harvest energy or works of a fews with a battery, but did not find any, an instead discovered cheap current sensor modules based on Allegro Systems ACS712 supporting either 5A, 20A or 30A , working easily with analog inputs of Arduino boards, and selling for as low as $1 shipped on eBay for the 5A, while the 20A & 30A versions usually sell for less than $2.

ACS712The hardware specifications are pretty basic:

  • ACS712 Hall-Effect-Based Linear Current Sensor IC (Datasheet)
  • 2-pole terminal for DC or AC load
  • 3-pin header with VCC (5V), GND and OUT pins
  • Input Current and Sensitivity (measurement scale)
    • -/+ 5A – 185 mV/A
    • -/+ 20A – 100 mV/A
    • -/+ 30 A – 66 mv/A
  • Dimensions – 31 x 13mm

Since the IC can measure in both direction, OUT pin outputs VCC/2 (2.5v) when there’s no current, and other values which may be lower and greater than VCC/2 depending on current direction to report the actual current.

ASC712_ArduinoMeasuring DC current is very easily as you just need to take one measurement, subtract VCC/2, and divide this by the sensitivity. Alternative current is only a little more complicated as you have to take many measurement to find the RMS value as explained on Henry’s bench website. If you are playing with high voltage (110V/220V) be very careful, and using non-invasive current sensor might be a better idea, especially if you are a beginner.

Since the board had been available for a few years, there’s plenty of documentation on the web for Arduino. One person (Julian) did a pretty good video showing how it works.

ACS712 current sensor can also be interfaced with ESP8266, but since the wireless chip’s analog input only takes 0 to 1V, ACS712 output must be reduced leading to a lower accuracy, unless used via an external ADC chip. ESP32 won’t have this problem however as the analog input supports up to 0 to 4V range, although I understand ESP32 may has some built-in functions for energy monitoring.

  1. jn
    January 23rd, 2016 at 16:52 | #1

    hmm I will definitely not let my main AWG7 AC power line go through this :). there are better & safer – non invasive – options for measuring higher AC currents – measuring transformers: popular SCT-013-xxx family or others “google: Precision Current Transformer Coil”

  2. January 23rd, 2016 at 17:29 | #2
  3. Mitek
    January 23rd, 2016 at 20:15 | #3

    Intersting to see 30A through 2 SOIC pin. I think good fire.

  4. deets
    January 24th, 2016 at 05:22 | #4

    @Mitek
    If you like that check out the 60a qfn version

  5. Squa0L
    January 25th, 2016 at 03:12 | #5

    What makes you think the chip on the Chinese board are authentic and not a copycat? Accuracy aside, I’d be concerned about the isolation failing.

  6. January 25th, 2016 at 09:32 | #6

    @Squa0L
    That’s a good point, and that’s a risk to take into account, but I can’t find any reports about fake ACS712 on the web despite the thing being available for a few years.
    They talked about this + the safety of the thing on EEVBLOG @ http://www.eevblog.com/forum/beginners/acs712-module/

    It’s magnetic isolation. Can it fail?

    I forgot to check safety certifications in the post. The chip has UL and other certifications @ http://www.allegromicro.com/en/Products/Current-Sensor-ICs/Zero-To-Fifty-Amp-Integrated-Conductor-Sensor-ICs/ACS712/ACS712-ACS713-Frequently-Asked-Questions.aspx#Q21.

    I don’t think the module is certified however.

  7. gicho
    January 26th, 2016 at 04:06 | #7

    The chip might be fine, but look at the PCB traces of the board! No way this could pass any certification. In fact, it is quite dangerous, definately Arduino beginners should stay away from it.
    Please put a note in the article that there are high voltage circuits involved and it is not recommended for DIY.

  1. No trackbacks yet.