

The ACS758 is a Hall-effect-based current sensor designed for accurate and isolated current measurement. It is capable of measuring both AC and DC currents, making it a versatile component for a wide range of applications. The sensor outputs an analog voltage proportional to the current flowing through its primary conductor, enabling real-time monitoring and control.








The ACS758 is available in various models with different current ranges. Below are the key technical details:
| Parameter | Value | 
|---|---|
| Supply Voltage (Vcc) | 3.0V to 5.5V | 
| Current Measurement Range | ±50A, ±100A, ±150A, ±200A (model-dependent) | 
| Sensitivity | 20mV/A to 40mV/A (model-dependent) | 
| Output Voltage Range | 0.5V to 4.5V (nominal) | 
| Bandwidth | 120 kHz | 
| Response Time | 4 µs | 
| Isolation Voltage | 3.0 kV RMS | 
| Operating Temperature Range | -40°C to +150°C | 
The ACS758 is typically available in a 5-pin package. Below is the pinout description:
| Pin Number | Pin Name | Description | 
|---|---|---|
| 1 | Vcc | Power supply input (3.0V to 5.5V) | 
| 2 | GND | Ground connection | 
| 3 | VIOUT | Analog output voltage proportional to current | 
| 4 | IP+ | Positive current input terminal | 
| 5 | IP- | Negative current input terminal | 
Below is an example of how to interface the ACS758 with an Arduino UNO to measure current:
// Define the analog pin connected to the ACS758 VIOUT pin
const int sensorPin = A0;
// Define the zero-current output voltage (2.5V for 5V supply)
const float zeroCurrentVoltage = 2.5;
// Define the sensitivity of the ACS758 (e.g., 40mV/A for ±50A model)
const float sensitivity = 0.04; // 40mV/A
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 voltage = sensorValue * (5.0 / 1023.0);
  // Calculate the current in Amperes
  float current = (voltage - zeroCurrentVoltage) / sensitivity;
  // Print the current 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 or Incorrect Readings:
Noisy Output Signal:
Output Voltage Does Not Match Expected Value:
Temperature-Related Drift:
Q: Can the ACS758 measure both AC and DC currents?
A: Yes, the ACS758 can measure both AC and DC currents accurately.
Q: What happens if the current exceeds the sensor's rated range?
A: Exceeding the rated current may damage the sensor or result in inaccurate readings. Always choose a model with an appropriate current range for your application.
Q: Is the ACS758 suitable for high-voltage applications?
A: Yes, the ACS758 provides electrical isolation up to 3.0 kV RMS, making it suitable for high-voltage applications.
Q: How do I select the correct ACS758 model for my application?
A: Choose a model with a current range that matches or slightly exceeds the maximum current in your application. For example, use the ±50A model for currents up to 50A.
Q: Can I use the ACS758 with a 3.3V microcontroller?
A: Yes, the ACS758 operates with a supply voltage as low as 3.0V, making it compatible with 3.3V systems.