

The ACS712 30A Current Sensor Module is a Hall effect-based sensor designed for precise current measurement in both AC and DC circuits. It can measure currents up to ±30A and outputs an analog voltage proportional to the current flowing through it. This module is widely used in applications such as motor control, power monitoring, battery management systems, and overcurrent protection.








Below are the key technical details of the ACS712 30A Current Sensor Module:
| Parameter | Value |
|---|---|
| Supply Voltage (Vcc) | 4.5V to 5.5V |
| Current Measurement Range | ±30A |
| Sensitivity | 66mV/A |
| Output Voltage Range | 0V to Vcc |
| Zero Current Output | ~2.5V (at Vcc = 5V) |
| Response Time | 5 µs |
| Accuracy | ±1.5% |
| Operating Temperature | -40°C to 85°C |
| Dimensions | 31mm x 13mm x 15mm |
The ACS712 module has three pins for interfacing and two terminals for current input/output:
| Pin | Name | Description |
|---|---|---|
| 1 | Vcc | Power supply input (4.5V to 5.5V). Typically connected to 5V from a microcontroller. |
| 2 | Out | Analog voltage output proportional to the measured current. |
| 3 | GND | Ground connection. |
| Terminal | Name | Description |
|---|---|---|
| 1 | IP+ (Input+) | Connect to the positive side of the current-carrying wire. |
| 2 | IP- (Input-) | Connect to the negative side of the current-carrying wire. |
Vcc pin to a 5V power supply and the GND pin to the ground of your circuit.IP+ and IP- terminals. Ensure the current does not exceed ±30A.Out pin provides an analog voltage proportional to the current. At 0A, the output voltage is approximately 2.5V. For positive currents, the voltage increases, and for negative currents, it decreases.Out pin and GND to reduce noise in the output signal.Below is an example code to measure current using the ACS712 module and an Arduino UNO:
// Include necessary libraries
const int sensorPin = A0; // Connect the 'Out' pin of ACS712 to Arduino A0
const float sensitivity = 0.066; // Sensitivity for ACS712 30A module (66mV/A)
const float zeroCurrentVoltage = 2.5; // Voltage at 0A (approximately 2.5V)
void setup() {
Serial.begin(9600); // Initialize serial communication
pinMode(sensorPin, INPUT); // Set the sensor pin as input
}
void loop() {
int sensorValue = analogRead(sensorPin); // Read the analog value from the sensor
float voltage = (sensorValue / 1023.0) * 5.0; // Convert ADC value to voltage
float current = (voltage - zeroCurrentVoltage) / sensitivity;
// Calculate current in Amperes
Serial.print("Current: ");
Serial.print(current, 2); // Print current with 2 decimal places
Serial.println(" A"); // Append unit
delay(1000); // Wait for 1 second before the next reading
}
zeroCurrentVoltage matches the actual output voltage of your sensor at 0A.No Output or Incorrect Readings:
Vcc and GND pins are properly connected to a 5V power supply and ground.IP+ and IP- terminals.High Noise in Output:
Out pin and GND.Output Voltage Does Not Match Expected Values:
Sensor Overheating:
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: What happens if the current exceeds 30A?
Exceeding the ±30A limit may damage the sensor or cause inaccurate readings. Use a higher-rated sensor for larger currents.
Q3: How do I improve measurement accuracy?
Calibrate the sensor in your specific application, use a stable power supply, and add noise filtering capacitors.
Q4: Can I use the ACS712 with a 3.3V microcontroller?
Yes, but the output voltage range will be limited. Ensure the microcontroller's ADC can accurately read the sensor's output within this range.
Q5: Is the ACS712 isolated from the current-carrying wire?
Yes, the Hall effect-based design provides electrical isolation between the current path and the sensor's output.