Sampling ZMPT101Bs Through ADS1115 With Arduino Uno Using EmonLib

For discussions related to emonPi, emonTx, emonBase and emonGLCD hardware and Arduino firmware

Hello House! For days, I have been trying to figure out how I can use ZMPT101B or AC Adapter and CT to monitor AC Voltage and Current using Arduino and Emonlib but seemed to be unsuccessful!

It looks to me as impossible thig to do. Please can someone here give me a sample code how to do this. What to change in the library itself and what to change in Arduino sketch for the Emonlib.
Thanks in advance.

First, you should not attempt to use the ZMPT101B MODULE. That, or at least the one I found credible data for, incorporates a filter circuit that renders it useless for real power measurements.

And second, you don’t need the ADS1115 - you will probably get better results (a higher sampling rate) when you use the Arduino analogue inputs.

It is perfectly OK to use a ZMPT101B current transformer on its own (no op.amp filter circuit, etc) as we will be doing in the next version of the emonTx. The circuit you need is exactly as the ZMPT101B data sheet shows: you have a series “multiplier” resistor (R’) - or ideally several resistors in series - in the c.t. primary circuit to give a rms current of 2 mA (at the maximum mains voltage - usually 110% of the nominal voltage) and then you have a burden resistor R that will develop approx 1 V given the same 2 mA secondary current, and you connect the c.t. secondary and burden exactly as you connect an ordinary c.t. - but using the input pin for voltage. The code is identical, the only change will be the calibration constant, and that is the alternating voltage that you would need at the mains to give you 1.00 V (the alternating component, not counting the d.c. bias) at the ADC input pin.

I don’t have a circuit diagram drawn - if you have a fairly standard 240 V mains where you are, I would suggest R’ = 5 × 24 kΩ in series (so that the voltage appearing across each resistor is only 48 V for safety), and the burden resistor R = 560 Ω. This will give about 1.23 V rms input to the Arduino, which is fine for a 5 V supply (a 3.3 V Arduino would need a 470 Ω or smaller burden). If you use those resistor values, your calibration constant is 214.3

Remember you must have 8 mm space between anything on the mains side of the ZMPT101B and anything connected on the secondary side, and of course everything on the mains side is live and therefor must be shrouded to prevent accidental contact.

1 Like

After posting this, something came up that I left house. That’s why I have not replied. I’m sorry for the late reply.
Tomorrow morning I will post a schematic. My nominal voltage is 220V 50Hz. Actually I am using only the ZMPT101B transformer and resistors.