Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use ACS712 30A: Examples, Pinouts, and Specs

Image of ACS712 30A
Cirkit Designer LogoDesign with ACS712 30A in Cirkit Designer

Introduction

The ACS712 30A is a Hall effect-based current sensor designed to measure both AC and DC currents up to ±30A. It provides an analog voltage output that is proportional to the current flowing through the sensor. This compact and reliable sensor is widely used in power monitoring, motor control, battery management systems, and overcurrent protection circuits. Its ability to measure high currents with electrical isolation makes it a popular choice for various industrial and hobbyist applications.

Explore Projects Built with ACS712 30A

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Wemos S2 Mini Controlled Smart Device with OLED Display, Thermal Printing, and RGB LED Strip
Image of DT NEA - Noah Patel: A project utilizing ACS712 30A in a practical application
This circuit features a Wemos S2 Mini microcontroller that controls a WS2812 RGB LED strip and communicates with a 0.96" OLED display and a 58mm mini thermal printer. The ACS712 Current Sensor is interfaced with the microcontroller to monitor current, and power is managed by a CD42 BMS connected to two 18650 Li-ion batteries, with a USB-C PD Trigger Board for power delivery. The circuit is designed for visual output (LED strip, OLED display), printing capabilities, and current sensing, likely for a portable, battery-powered monitoring and display device.
Cirkit Designer LogoOpen Project in Cirkit Designer
Arduino and GSM-Based Power Monitoring and Wi-Fi Controlled Lighting System
Image of light monitoring system: A project utilizing ACS712 30A in a practical application
This circuit is designed to monitor voltage and current using ACS712 current sensors and voltage sensors, calculate power, and control lighting via relay modules. It features an Arduino Uno R3 for processing sensor data and executing control logic, which includes sending alerts via a GSM module (sim 800l) if power falls below a threshold and connecting to WiFi using an ESP8266 module. The circuit also includes a battery with a charging module (TP4056), a step-up boost converter, and multiple AC power supplies with circuit breakers for safety.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Current Monitoring and Temperature Sensing System
Image of SISTEMA DE MONITOREO: A project utilizing ACS712 30A in a practical application
This circuit is designed to measure current using an ACS712 Current Sensor and temperature using a DS18B20 sensor, with an ESP32 microcontroller to process and possibly communicate the sensor data. The ACS712 sensor output is connected to one of the ESP32's analog input pins (D34), while the DS18B20's signal line is interfaced with a digital input pin (D23) through a pull-up resistor (4.7k Ohms). The ESP32 is powered through its Vin pin, and both sensors share a common ground with the ESP32.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Power Monitoring and SMS Control System
Image of Light monitor project final: A project utilizing ACS712 30A in a practical application
This circuit is designed to monitor and control power consumption for two separate sets of AC loads using current and voltage sensors. It features an ESP32 microcontroller that reads sensor data to calculate power, communicates via a GSM module for remote monitoring and control, and uses a 2-channel relay to switch the loads. The system can send notifications when power consumption falls below predefined thresholds and respond to SMS commands to control the connected lights.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with ACS712 30A

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of DT NEA - Noah Patel: A project utilizing ACS712 30A in a practical application
Wemos S2 Mini Controlled Smart Device with OLED Display, Thermal Printing, and RGB LED Strip
This circuit features a Wemos S2 Mini microcontroller that controls a WS2812 RGB LED strip and communicates with a 0.96" OLED display and a 58mm mini thermal printer. The ACS712 Current Sensor is interfaced with the microcontroller to monitor current, and power is managed by a CD42 BMS connected to two 18650 Li-ion batteries, with a USB-C PD Trigger Board for power delivery. The circuit is designed for visual output (LED strip, OLED display), printing capabilities, and current sensing, likely for a portable, battery-powered monitoring and display device.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of light monitoring system: A project utilizing ACS712 30A in a practical application
Arduino and GSM-Based Power Monitoring and Wi-Fi Controlled Lighting System
This circuit is designed to monitor voltage and current using ACS712 current sensors and voltage sensors, calculate power, and control lighting via relay modules. It features an Arduino Uno R3 for processing sensor data and executing control logic, which includes sending alerts via a GSM module (sim 800l) if power falls below a threshold and connecting to WiFi using an ESP8266 module. The circuit also includes a battery with a charging module (TP4056), a step-up boost converter, and multiple AC power supplies with circuit breakers for safety.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of SISTEMA DE MONITOREO: A project utilizing ACS712 30A in a practical application
ESP32-Based Current Monitoring and Temperature Sensing System
This circuit is designed to measure current using an ACS712 Current Sensor and temperature using a DS18B20 sensor, with an ESP32 microcontroller to process and possibly communicate the sensor data. The ACS712 sensor output is connected to one of the ESP32's analog input pins (D34), while the DS18B20's signal line is interfaced with a digital input pin (D23) through a pull-up resistor (4.7k Ohms). The ESP32 is powered through its Vin pin, and both sensors share a common ground with the ESP32.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Light monitor project final: A project utilizing ACS712 30A in a practical application
ESP32-Based Power Monitoring and SMS Control System
This circuit is designed to monitor and control power consumption for two separate sets of AC loads using current and voltage sensors. It features an ESP32 microcontroller that reads sensor data to calculate power, communicates via a GSM module for remote monitoring and control, and uses a 2-channel relay to switch the loads. The system can send notifications when power consumption falls below predefined thresholds and respond to SMS commands to control the connected lights.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Power monitoring in appliances and industrial equipment
  • Battery management systems
  • Motor current sensing and control
  • Overcurrent protection in circuits
  • Energy metering and load monitoring

Technical Specifications

The following are the key technical details of the ACS712 30A current sensor:

Parameter Value
Supply Voltage (Vcc) 4.5V to 5.5V
Current Measurement Range ±30A
Sensitivity 66mV/A
Output Voltage at 0A Vcc/2 (typically 2.5V for 5V Vcc)
Response Time 5 µs
Bandwidth 80 kHz
Operating Temperature -40°C to 85°C
Isolation Voltage 2.1 kV RMS

Pin Configuration and Descriptions

The ACS712 30A module typically has three pins for interfacing:

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 current being measured.
3 GND Ground connection. Connect to the ground of your circuit.

Additionally, the module has two screw terminals for the current-carrying wire:

  • IP+: Connect to the positive side of the current path.
  • IP-: Connect to the negative side of the current path.

Usage Instructions

How to Use the ACS712 30A in a Circuit

  1. Power the Sensor: Connect the Vcc pin to a 5V power supply and the GND pin to the ground of your circuit.
  2. Connect the Current Path: Pass the wire carrying the current to be measured through the screw terminals (IP+ and IP-). Ensure the current flows in the correct direction as indicated on the module.
  3. Read the Output: Connect the Out pin to an analog input pin of a microcontroller (e.g., Arduino). The output voltage will vary linearly with the current being measured.

Important Considerations

  • Calibration: The sensor's output voltage at 0A is typically 2.5V. You may need to calibrate your system to account for small offsets.
  • Noise Filtering: Add a capacitor (e.g., 0.1 µF) between the Out pin and GND to reduce noise in the output signal.
  • Current Direction: Positive current flows from IP+ to IP-, and negative current flows in the opposite direction.
  • Isolation: The ACS712 provides electrical isolation between the current-carrying wire and the sensor's output, ensuring safety in high-current applications.

Example Code for Arduino UNO

The following code demonstrates how to use the ACS712 30A sensor with an Arduino UNO to measure current:

// Define the analog pin connected to the ACS712 output
const int sensorPin = A0;

// Define the sensitivity of the ACS712 30A sensor (66mV per amp)
const float sensitivity = 0.066; // 66mV/A

// Define the supply voltage (Vcc) in volts
const float Vcc = 5.0;

// Define the zero-current output voltage (Vcc/2)
const float zeroCurrentVoltage = Vcc / 2;

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 a voltage
  float sensorVoltage = (sensorValue / 1023.0) * Vcc;

  // Calculate the current in amps
  float current = (sensorVoltage - 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
}

Notes on the Code

  • The sensitivity value (66mV/A) is specific to the ACS712 30A version. Ensure you use the correct value for other versions.
  • The zeroCurrentVoltage is assumed to be 2.5V for a 5V supply. If your sensor has a slight offset, adjust this value accordingly.

Troubleshooting and FAQs

Common Issues and Solutions

  1. No Output or Incorrect Readings

    • Ensure the sensor is powered with a stable 5V supply.
    • Verify that the current-carrying wire is securely connected to the screw terminals.
    • Check for loose or incorrect connections between the sensor and the microcontroller.
  2. High Noise in Output

    • Add a decoupling capacitor (e.g., 0.1 µF) between the Out pin and GND to filter noise.
    • Use shielded cables for the current-carrying wire to reduce electromagnetic interference.
  3. Output Voltage Does Not Return to 2.5V at 0A

    • Calibrate the sensor by measuring the output voltage at 0A and adjusting the zeroCurrentVoltage value in your code.
  4. Output Voltage Saturates at High Currents

    • Ensure the current being measured does not exceed the ±30A range of the sensor.

FAQs

Q: Can the ACS712 30A measure currents below 1A?
A: Yes, but the resolution may be limited due to the sensor's sensitivity (66mV/A). For higher precision at low currents, consider using a lower-range ACS712 variant (e.g., 5A or 20A).

Q: Can I use the ACS712 30A with a 3.3V microcontroller?
A: Yes, but the output voltage range will be limited, and you may need to adjust the zeroCurrentVoltage and sensitivity values in your calculations.

Q: Is the ACS712 suitable for high-frequency AC current measurements?
A: The ACS712 has a bandwidth of 80 kHz, making it suitable for most AC applications. However, for very high-frequency signals, additional filtering may be required.

Q: How do I protect the sensor from overcurrent?
A: Use a fuse or circuit breaker in series with the current path to protect the sensor from damage due to excessive current.