

The ACS712 Low Current Sensor Board v12 (Manufacturer Part ID: SEN-08883) by SparkFun Electronics is a current sensing module designed to measure both AC and DC currents. It leverages the Hall effect to provide an analog voltage output proportional to the current flowing through the conductor. This module is widely used in applications such as power monitoring, energy management, motor control, and overcurrent protection.








The following table outlines the key technical details of the ACS712 Low Current Sensor Board v12:
| Parameter | Value |
|---|---|
| Supply Voltage (Vcc) | 5V DC |
| Current Measurement Range | ±5A (depending on the variant) |
| Sensitivity | 185 mV/A |
| Output Voltage Range | 0.5V to 4.5V (centered at 2.5V for 0A) |
| Accuracy | ±1.5% |
| Bandwidth | 80 kHz |
| Operating Temperature Range | -40°C to +85°C |
| Dimensions | 31mm x 13mm x 3mm |
The ACS712 module has three pins for interfacing:
| Pin | Name | Description |
|---|---|---|
| 1 | VCC | Power supply input (5V DC). |
| 2 | OUT | Analog output voltage proportional to the measured current. |
| 3 | GND | Ground connection. |
Additionally, the module has two screw terminals for connecting the current-carrying conductor:
| Terminal | Name | Description |
|---|---|---|
| 1 | IP+ (Input+) | Connect to the positive side of the current-carrying conductor. |
| 2 | IP- (Input-) | Connect to the negative side of the current-carrying conductor. |
Below is an example code snippet to read current using the ACS712 module with an Arduino UNO:
// Include necessary libraries (if any)
// Define the analog pin connected to the OUT pin of ACS712
const int sensorPin = A0;
// Define the sensitivity of the ACS712 module (185 mV/A for ±5A variant)
const float sensitivity = 0.185; // in volts per ampere
// Define the reference voltage of the Arduino (typically 5V)
const float vRef = 5.0;
// Define the zero-current voltage (2.5V for ACS712)
const float zeroCurrentVoltage = 2.5;
void setup() {
Serial.begin(9600); // Initialize serial communication
}
void loop() {
// Read the analog value from the sensor
int sensorValue = analogRead(sensorPin);
// Convert the analog value to voltage
float sensorVoltage = (sensorValue / 1023.0) * vRef;
// Calculate the current in amperes
float current = (sensorVoltage - zeroCurrentVoltage) / sensitivity;
// Print the current value to the Serial Monitor
Serial.print("Current: ");
Serial.print(current);
Serial.println(" A");
delay(1000); // Wait for 1 second before the next reading
}
No Output Voltage or Incorrect Readings
High Noise in Output Signal
Output Voltage Does Not Change
Overheating of the Module
Q1: Can the ACS712 measure both AC and DC currents?
Yes, the ACS712 can measure both AC and DC currents. The output voltage will vary proportionally with the instantaneous current.
Q2: How do I interpret the output voltage?
The output voltage is centered at 2.5V for 0A. A positive current increases the voltage above 2.5V, while a negative current decreases it below 2.5V.
Q3: Can I use the ACS712 with a 3.3V microcontroller?
Yes, but ensure the output voltage range of the ACS712 (0.5V to 4.5V) is compatible with the ADC input range of your microcontroller.
Q4: What is the maximum current the ACS712 can handle?
The ACS712 module is designed for a maximum current of ±5A. Exceeding this limit may damage the sensor.
Q5: How do I improve the accuracy of the sensor?
Calibrate the sensor by measuring the output voltage at 0A and adjusting your calculations accordingly. Use a stable power supply and minimize noise in the circuit.
This concludes the documentation for the ACS712 Low Current Sensor Board v12.