

The ACS724 50A Hall Current Sensor is a non-invasive current sensor designed to measure both AC and DC currents up to 50A. It utilizes Hall effect technology to provide an analog output voltage that is proportional to the current being measured. This sensor is highly versatile and can be used in a wide range of applications, including power monitoring, motor control, battery management systems, and overcurrent protection.








The following table outlines the key technical details of the ACS724 50A Hall Current Sensor:
| Parameter | Value |
|---|---|
| Manufacturer | Generic |
| Part ID | ACS724 50A |
| Current Sensing Range | ±50A |
| Supply Voltage (Vcc) | 4.5V to 5.5V |
| Output Voltage Range | 0.5V to 4.5V |
| Sensitivity | 40mV/A |
| Bandwidth | 120 kHz |
| Response Time | 5 µs |
| Operating Temperature Range | -40°C to +150°C |
| Isolation Voltage | 2.1 kV RMS |
The ACS724 50A sensor has a simple pinout, as shown in the table below:
| Pin | Name | Description |
|---|---|---|
| 1 | Vcc | Power supply input (4.5V to 5.5V). Connect to the 5V pin of your microcontroller. |
| 2 | OUT | Analog output voltage proportional to the sensed current. |
| 3 | GND | Ground connection. Connect to the ground of your circuit. |
| 4 | IP+ | Current input terminal (positive). Connect to the high side of the current path. |
| 5 | IP- | Current input terminal (negative). Connect to the low side of the current path. |
The following code demonstrates how to interface the ACS724 50A sensor with an Arduino UNO to measure current:
// Define the analog pin connected to the ACS724 OUT pin
const int sensorPin = A0;
// Define the sensor's sensitivity (40mV/A for ACS724 50A)
const float sensitivity = 0.04; // Sensitivity in V/A
// Define the reference voltage at 0A (typically 2.5V)
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 (assuming 5V reference)
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 500ms before the next reading
}
zeroCurrentVoltage value may vary slightly between sensors. Measure the output voltage at 0A and adjust this value accordingly.No Output Voltage or Incorrect Readings
High Noise in Output Signal
Output Voltage Does Not Match Expected Values
zeroCurrentVoltage and sensitivity values. Recalibrate if necessary.Sensor Overheating
Q: Can the ACS724 50A measure both AC and DC currents?
A: Yes, the sensor can measure both AC and DC currents up to ±50A.
Q: What is the typical output voltage at 0A?
A: The typical output voltage at 0A is 2.5V, but this may vary slightly between sensors.
Q: Is the sensor safe for high-voltage applications?
A: Yes, the ACS724 provides electrical isolation up to 2.1 kV RMS, making it suitable for high-voltage applications.
Q: Can I use this sensor with a 3.3V microcontroller?
A: The sensor requires a 5V power supply, but the output voltage can be read by a 3.3V ADC if the voltage levels are compatible. Use a voltage divider if necessary.
Q: How do I improve the accuracy of the sensor?
A: Calibrate the sensor by measuring the output voltage at 0A and adjusting the zeroCurrentVoltage value in your code. Additionally, use proper filtering to reduce noise.