The ACS712, available at Tomson Electronics, Kochi, Kerala, provides an economical and precise solution for AC or DC current sensing in an industrial and domestic system. Typical applications include motor control, load detection and management, switched-mode power supplies, and overcurrent fault protection. This product should not be used for automotive applications.
The device consists of a precise, low-offset, linear Hall sensor circuit with a copper conduction path located near the surface of the die. Applied current flowing through this copper conduction path generates a magnetic field which is sensed by the integrated Hall IC and converted into a proportional voltage. Device accuracy is optimized through the close proximity of the magnetic signal to the Hall transducer. A precise, proportional voltage is provided by the low-offset, chopper-stabilized BiCMOS Hall IC, which is programmed for accuracy after packaging.
The output of the device has a positive slope when an increasing current flows through the primary copper conduction path (from pins 1 and 2 to pins 3 and 4), which is the path used for current sensing. The internal resistance of this conductive path is 1.2 mΩ typical, providing low power loss. The thickness of the copper conductor allows survival of the device at up to 5× overcurrent conditions. The terminals of the conductive path are electrically isolated from the sensor IC leads (pins 5 through 8). This allows the ACS712 current sensor IC to be used in applications requiring electrical isolation without the use of opto-isolators or other costly isolation techniques.
Copy this Arduino Code for Current Reading in mA,
Measuring Current Using ACS712 - Arduino
By, Tom. Tomson Electronics
Connect the Signal from ACS 712 Module to A0 of the Arduino.
const int analogIn = A0;
int mVperAmp = 185; // use 100 for 20A Module and 66 for 30A Module
int RawValue= 0;
int ACSoffset = 2500;
double Voltage = 0;
double Amps = 0;
RawValue = analogRead(analogIn);
Voltage = (RawValue / 1024.0) * 5000; // Gets you mV
Amps = ((Voltage - ACSoffset) / mVperAmp);
Serial.print("Raw Value = " ); // shows pre-scaled value
Serial.print("\t mV = "); // shows the voltage measured
Serial.print(Voltage,3); // the '3' after voltage allows you to display 3 digits after decimal point
Serial.print("\t Amps = "); // shows the voltage measured
Serial.println(Amps,3); // the '3' after voltage allows you to display 3 digits after decimal point
The current sensor chips: ACS712ELC-30A;
Pin 5V power supply, on-board power indicator;
The module can measure the positive and negative 30 amps, corresponding to the analog output 100mV / A;
No test current through the output voltage is VCC / 2;
PCB board size: 31 (mm) x13 (mm);
Note: ACS712 is based on the principle of the Hall test, please use this field to avoid an impact!