Arduino Projects

Interfacing ZMCT103C Current Sensor with Arduino

Monitor AC Current using ZMCT103C CT sensor & Arduino

Overview: ZMCT103C with Arduino

In this tutorial, we will learn interfacing ZMCT103C Current Sensor with Arduino. The ZMCT103C Current Sensor is a high-precision micro current transformer that can be used to measure AC mains current up to 5 Amps. It has a turns ratio of 1000:1, which means that a 5 Amp current through the primary will produce a 5mA current in the secondary. This small current can be easily read by an Arduino.

Interface ZMCT103C Current Sensor with Arduino

Components Required

To connect the ZMCT103C to an Arduino, you will need the following components:

  • ZMCT103C Current Sensor
  • Arduino Nano
  • 33-ohm resistor
  • 2 x 100k ohm resistor
  • 10uf capacitor
  • Jumper wires
  • Breadboard

You can purchase them from below:

1Arduino Nano1 Amazon | AliExpress
2ZMCT103C Current Sensor1 Amazon | AliExpress
333-ohm resistor1 Amazon | AliExpress
4100k ohm resistor2 Amazon | AliExpress
510uf capacitor1 Amazon | AliExpress
6Jumper wires10 Amazon | AliExpress
7Breadboard1 Amazon | AliExpress

ZMCT103C CT sensor

The ZMCT103C CT sensor can be used for a variety of applications, including:

  • Metering (electrical energy meters)
  • AC Voltage measurements
  • Sensing Overload Current
  • Ground fault detection
  • Household electrical equipment
  • Industrial applications
  • Electrical testing equipment and relay protection
  • Analog to digital circuits

If you are looking for a high-precision current transformer for your next project, the ZMCT103C is a great option.


Features of ZMCT103 Micro Precision Current Transformers

ZMCT103C CT Sensor
  • low price
  • small size ( 18.3mm x17 mm) and lightweight
  • Easy PCB mounting
  • Good consistency
  • widely used


Rated input current0-10A(50Ω)
Rated output current5mA at input 5A
phase angle error≤15'(input 5A,sampling resistor 50Ω)
Isolation withstand voltage4500V
Turns Ratio1000:1
Measurement accuracy Class0.2
InstallationPCB mounting(Pin Length>3mm)
Operating Frequency45-55Hz
operating temperature-40℃~+85℃
ZMCT103C Current Transformer

ZMCT103C Datasheet

Download the datasheet of ZMCT103C it provides details specifications, dimensions, mounting, etc.

Download ZMCT103C Datasheet

Interfacing ZMCT103C Current Sensor with Arduino

First, connect the ZMCT103C to the breadboard as follows:

Interfacing ZMCT103C 5A Current Sensor with Arduino

To connect a CT to an Arduino, connect R6 as a burden resistor, R8 and R7 as a potential divider, and C3 as a smoothing capacitor. 

When 5 amps of current flow through the primary, 5 milliamps flow through the secondary (calculated using the transformation ratio). This secondary current produces a voltage drop of 165 mV, calculated using Ohm’s law (V = I * R), where V is voltage, I is current, and R is resistance. The voltage from the burden resistor (165 mV) is added to the DC voltage from the potential divider (2.5 V) to give a total voltage of 2.665 V, which is then fed to the analog pin A5 of the Arduino.

Hence the voltage received by the analog pin A5 of Arduino when 5 Amp current flows is 2.665V.

To install the ZMCT103C current transformer, pass a mains wire (either phase or neutral) through the hole in the top of the device. This wire will become the primary winding of the transformer. The leads that are brought out of the device are from the secondary winding.


  • Never pass current through the primary winding of the transformer when the secondary winding is open-circuited. This can damage the transformer.
  • Always keep a burden resistor connected across the secondary winding of the transformer. This resistor helps to protect the transformer and ensures that it operates correctly.

In this example, a burden resistor of 33 ohms is used.

ZMCT103C Sensor with Arduino

PCB Design, Gerber Files & PCB Ordering

To assemble the components for testing, you can use a breadboard. However, for a more reliable and professional solution, I recommend using a custom PCB. I have already designed a custom PCB specifically for this project.

Interfacing ZMCT103C Current Sensor with Arduino Nano

To access the Gerber file of the PCB, you can download it from the provided link.

Download the PCB Gerber File


Once you have the Gerber file, you can place an order for the PCB from PCBWay offers affordable prices and provides high-quality PCB manufacturing services. They have exciting offers such as a new user signup bonus and various coupons that you can take advantage of for your order.

  • PCB for ZMCT03C CT Sensor and Arduino
  • PCB of CT Sensor with Arduino
  • Interfacing ZMCT103C Current Sensor with Arduino Nano

ZMCT103C Arduino Code

The following code will read the current from the ZMCT103C sensor and print it to the Serial Monitor. You can then use this value to monitor the current in your circuit.

#include "EmonLib.h"                   // Include Emon Library
EnergyMonitor emon1;                   // Create an instance
int CT_pin = 5; //  CT sensor pin connected to A5 pin of Arduino
void setup()
  emon1.current(CT_pin, 32.59);             // Current: input pin, calibration.

void loop()
  double Irms = emon1.calcIrms(1480);  // Calculate Irms only
  Serial.print(Irms*230.0);	       // Apparent power
  Serial.print(" ");
  Serial.println(Irms);		       // Irms

The EmonLib.h library is an electricity monitoring library designed by that is best for voltage and current measurement using Arduino Code. With this simple Arduino code using the EmonLib library, you will get proportional current output.

Program Code Explanation

This code uses the EmonLib library to measure the current flowing through a CT sensor connected to the A5 pin of an Arduino. The code first includes the EmonLib library and then creates an instance of the EnergyMonitor class. The CT_pin is set to 5, which is the pin connected to the CT sensor. The setup() function initializes the serial port and then calibrates the emon1 object. The loop() function calculates the RMS current and then prints the apparent power and RMS current to the serial port.

Current sensor data monitoring

Real-World Projects Using ZMCT103C

  1. Overcurrent protection device: The ZMCT103C can be used to monitor the current in a circuit and shut it down if the current exceeds a certain threshold. This can be used to protect appliances and equipment from damage due to overcurrent.
  2. Energy monitoring: The ZMCT103C can be used to measure the current in a circuit and calculate the power consumption. This can be used to monitor the energy usage of appliances and equipment.
  3. Load monitoring: The ZMCT103C can be used to measure the current in a circuit and calculate the load on the circuit. This can be used to monitor the load on appliances and equipment.
  4. Motor control: The ZMCT103C can be used to control the speed of a motor by controlling the current that is supplied to the motor.
  5. Current measurement: The ZMCT103C can be used to measure the current in a circuit for a variety of purposes, such as troubleshooting, calibration, and research.
Interfacing ZMCT103C CT sensor with Arduino Nano


In conclusion, this project has been a success. The ZMCT103C current transformer has been successfully installed and calibrated, and the Arduino code is working as expected. The ZMCT103C can be used for a variety of applications, such as overcurrent protection, energy monitoring, load monitoring, motor control, and current measurement.

Related Articles

One Comment

Leave a Reply

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

Back to top button