

The ACS724 is a Hall-effect current sensor manufactured by Pololu, designed for accurate and isolated current measurements. It is capable of measuring both AC and DC currents, making it suitable for a wide range of applications. The sensor provides a linear analog voltage output proportional to the current being measured, ensuring precise and reliable readings. Its high-voltage isolation capability makes it ideal for use in industrial, automotive, and consumer electronics.








The ACS724 is available in different variants to support various current ranges. Below are the key technical details:
| Parameter | Value |
|---|---|
| Manufacturer | Pololu |
| Part Number | ACS724 |
| Current Sensing Range | ±5 A, ±20 A, or ±50 A (variant-dependent) |
| Supply Voltage (Vcc) | 4.5 V to 5.5 V |
| Output Voltage Range | 0.5 V to 4.5 V |
| Sensitivity | 40 mV/A (±50 A variant) |
| Isolation Voltage | 2.1 kV RMS |
| Operating Temperature Range | -40°C to 150°C |
| Response Time | 5 µs |
The ACS724 is typically available in an SOIC-8 package. Below is the pinout and description:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | VCC | Power supply input (4.5 V to 5.5 V) |
| 2 | GND | Ground connection |
| 3 | IP+ | Positive current input terminal |
| 4 | IP- | Negative current input terminal |
| 5 | NC | No connection (leave unconnected) |
| 6 | NC | No connection (leave unconnected) |
| 7 | VIOUT | Analog voltage output proportional to sensed current |
| 8 | NC | No connection (leave unconnected) |
Below is an example of how to connect the ACS724 to an Arduino UNO and read the current:
// Define the analog input pin connected to the ACS724 VIOUT pin
const int currentSensorPin = A0;
// Define the sensitivity of the ACS724 (in V/A)
// Example: 40 mV/A for the ±50 A variant
const float sensitivity = 0.04; // Sensitivity in volts per ampere
// Define the zero-current output voltage (2.5 V for ACS724)
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(currentSensorPin);
// Convert the analog value to voltage (5 V reference, 10-bit ADC)
float sensorVoltage = sensorValue * (5.0 / 1023.0);
// Calculate the current (in amperes)
float current = (sensorVoltage - zeroCurrentVoltage) / sensitivity;
// Print the current to the Serial Monitor
Serial.print("Current: ");
Serial.print(current);
Serial.println(" A");
delay(500); // Wait for 500 ms before the next reading
}
No Output Voltage on VIOUT
Inaccurate Current Readings
Output Voltage Stuck at 2.5 V
Overheating
Can the ACS724 measure both AC and DC currents?
What is the maximum current the ACS724 can handle?
Is the ACS724 output isolated from the current path?
Can I use the ACS724 with a 3.3 V microcontroller?
By following this documentation, you can effectively integrate the ACS724 into your projects for accurate current sensing.