Skip to content

Arduino Based AC Current Sensing Circuit 1Arduino Based AC Current Sensing Circuit Using LM358 and Current Transformer

In this project, we’ll design an Arduino based AC current sensing circuit using the LM358 operational amplifier and a current transformer. This Arduino based AC current sensing circuit helps measure the flow of alternating current in electrical loads accurately. With this Arduino based AC current sensing circuit, you can monitor current variations, analyze consumption, and ensure safety in various electronic projects.

The Arduino based AC current sensing circuit uses LM358 for signal amplification and a current transformer for sensing AC. By following this Arduino based AC current sensing circuit guide, you’ll understand the working, code, and practical setup. Learn to assemble and test the Arduino based AC current sensing circuit easily at home or in your lab. This project is ideal for students, hobbyists, and engineers exploring Arduino based AC current sensing circuit techniques.


Introduction

Measuring AC current is one of the most essential tasks in electrical monitoring and automation systems. With the help of a current transformer (CT) and an operational amplifier (LM358), we can easily sense AC current and feed the data to an Arduino, which then processes and displays it.

In this guide, we’ll build an Arduino based AC current sensing circuit capable of detecting current flow through an electrical load and displaying the results through serial output.

This type of circuit is extremely useful for:

  • Power monitoring systems

  • Energy management projects

  • Overload protection circuits

  • Smart home automation systems

Let’s get started with the components you’ll need.


 Materials for the Project

S.NoComponent NameQuantityDescriptionBuy Link
1Arduino UNO1Main microcontroller boardBuy Arduino UNO
2LM358 IC1Dual operational amplifierBuy LM358 IC
3Current Transformer (CT) 5A/5mA1For AC current sensingBuy CT Sensor
4Resistor 10kΩ1Used for signal conditioningBuy 10k Resistor Pack
5Resistor 100Ω1Burden resistor for CTBuy 100Ω Resistor Pack
6Breadboard1For circuit prototypingBuy Breadboard
7Jumper WiresAs requiredFor circuit connectionsBuy Jumper Wires
8Laptop/PC1For Arduino programming

Useful Tools 

ToolQuantityPurpose / NotesClick & Buy
Soldering Iron Kit1For making permanent connectionsClick & Buy
Solder Wire (60/40, 0.8mm)1Electrical solderingClick & Buy
Wire Stripper & Cutter1Stripping jumper wiresClick & Buy
Mini Screwdriver Set1For module and relay terminal screwsClick & Buy
Multimeter1Testing voltages and continuityClick & Buy
Hot Glue Gun (optional)1Securing components in placeClick & Buy
Small Pliers1Holding and bending wiresClick & Buy
Heat Shrink Tubing Set1Insulating exposed wiresClick & Buy

 


Circuit Diagram Explanation

The Arduino based AC current sensing circuit consists of three main sections:

  1. Current Transformer (CT) Sensor
    The CT sensor detects the alternating current flowing through a load. It outputs a small AC voltage proportional to the current.
    Example: A CT rated at 5A/5mA means that when 5A current flows through the primary, it outputs 5mA on the secondary.

  2. Signal Conditioning with LM358
    The CT’s output is small and oscillates around 0V (AC signal). Since Arduino cannot read negative voltages, we use the LM358 op-amp to amplify and offset the signal to a readable range (0–5V).
    The LM358 is powered from the Arduino’s 5V supply and is configured as a non-inverting amplifier.

  3. Arduino Interface
    The amplified output from the LM358 is fed into Arduino’s analog input pin (A0). Arduino reads the voltage signal and converts it into a digital value using its 10-bit ADC.
    Then, it calculates the RMS current based on the signal amplitude.

Download Circuit Diagram

Arduino Based AC Current Sensing Circuit
10/10/2025

Working Principle

  1. AC Current Detection:
    The CT senses the AC current from the load and produces a corresponding small AC voltage.

  2. Signal Amplification:
    The LM358 amplifies this small voltage so Arduino can read it effectively.

  3. Analog Reading:
    The Arduino samples the analog signal repeatedly to find the peak voltage value.

  4. Current Calculation:
    Using a calibration factor, the Arduino converts the peak voltage to RMS current.

    IAC=Vout×CalibrationFactorI_{AC} = V_{out} \times CalibrationFactor

  5. Data Display:
    The result is displayed via the Serial Monitor.


Arduino Code Explanation

  • analogRead(A0) reads the amplified signal.

  • The loop collects multiple readings to find the maximum voltage.

  • The maximum voltage is then converted into current using a scaling factor.

  • Finally, the measured current is printed to the Serial Monitor.


Step-by-Step Build Guide

Step 1: Connect Arduino

  • Place your Arduino UNO on the breadboard or workspace.

  • Connect it to your computer via USB for power and programming.

Step 2: Connect the LM358 IC

  • Insert the LM358 IC on the breadboard.

  • Pin 8 → Connect to 5V from Arduino.

  • Pin 4 → Connect to GND of Arduino.

Step 3: Connect the Current Transformer

  • Connect one side of the CT coil to the load wire (e.g., AC line).

  • The secondary output wires of the CT go to a burden resistor (100Ω).

Step 4: Connect the LM358 Input

  • The voltage across the burden resistor is fed to pin 3 (non-inverting) of LM358.

  • Pin 2 (inverting) connects through a resistor network to ground for stability.

Step 5: Connect LM358 Output to Arduino

  • Pin 1 (output) of LM358 connects to A0 of Arduino.

Step 6: Upload the Code

  • Copy and paste the above Arduino code into the IDE.

  • Select your board (Arduino UNO) and COM port.

  • Click Upload.

Step 7: Open Serial Monitor

  • Open the Serial Monitor (Ctrl+Shift+M).

  • Set baud rate to 9600.

  • Observe current readings as you vary the load.


Applications

  • Power consumption measurement

  • Load monitoring systems

  • Overload protection circuits

  • Smart home energy management

  • Industrial current monitoring


Precautions

  • Do not directly connect high-voltage AC lines to the Arduino. Always use a CT sensor for isolation.

  • Double-check connections before powering the circuit.

  • Use proper insulation and avoid touching live AC wires.


Advantages

  • Simple and low-cost design

  • Safe current measurement using CT isolation

  • Compatible with Arduino for digital monitoring

  • Easy calibration and coding


Limitations

  • Cannot measure DC current

  • Accuracy depends on CT specifications and calibration

  • Noise in AC lines can slightly affect readings


Conclusion

This Arduino based AC current sensing circuit is an excellent starting point for anyone interested in current monitoring and measurement. With just a few components — Arduino, LM358, and a CT sensor — you can build a reliable system to read and analyze AC current safely.

By fine-tuning the calibration factor and applying filtering, the accuracy of this Arduino based AC current sensing circuit can be further improved. It’s a simple, affordable, and educational project for both beginners and engineers.


Frequently Asked Questions (FAQs)

Q1. Can this circuit measure DC current?
No, it’s designed for AC current only because the CT sensor works on electromagnetic induction, which requires a changing current.

Q2. How can I increase measurement accuracy?
Use a precision burden resistor, shielded wires, and calibrate using a known load.

Q3. Can I display current on an LCD instead of Serial Monitor?
Yes, you can easily connect a 16×2 LCD or OLED display to show the measured current.

Q4. Is LM358 mandatory, or can I use another op-amp?
LM358 is preferred due to its single-supply operation, but other single-supply op-amps can work with proper biasing.

Q5. What is the purpose of the burden resistor?
It converts the CT’s current output into a measurable voltage that can be amplified and read by the Arduino.

Leave a Reply

Your email address will not be published. Required fields are marked *