Calibrating ZMPT101B Voltage sensor issues

Hello everyone. First post here so I apologize if I'm not in the right section, didn't read something I should have etc. Now before I state my issue,. I HAVE searched online for this issue, and either the info didn't seem to relate to exactly what I'm doing, or I honestly just did not comprehend what was being said. I'm fairly new to Arduino so please help explain things as if I was an idiot. (I'm just a hair above one)

I am making a project to monitor the power output of an amplifier. The amplifier in question has a maximum clean output of around 62VAC. I am driving the amplifier into a purely resistive load bank for this project. I can vary the bank from 16, 8, 4, 2, 1.6, and 1 ohm settings.

I am using the emonlib library in my sketch with parts of their openenergymonitor example sketch.

I am using a SCT013 current sensor with a 33ohm burden resistor. The calibration value i'm using on the sketch is "CURRENT_CAL 60.6" This seems to work just fine and it is measuring current correctly.

The issue is with the voltage sensor. The sensor uses a ZMPT101B and has the other components required built on such as a 100K potentiometer and LM358. I honestly don't understand how I am supposed to calibrate this to measure correct voltage. I have played around with the set screw on the potentiometer and have it turned almost all the way to its lowest resistance level. And after playing with the numbers in the sketch for calibration I have "VOLT_CAL 110". This gave me accurate readings at 16-ohm. The voltage was the same as I was monitoring with my multimeter at various output levels from 8-62VAC.

The issue arises when I change the load on the amplifier. As I go down in resistance, the voltage I'm reading, which should stay constant, goes up. So if it is accurate at 16-ohm, by the time I am at 1-ohm it's reading much much higher. Maybe 15v higher than actual or more.

How do I properly calibrate this? And why would it change with different loads? The current goes up (which is read accurately by the current sensor), but voltage should not change.

You failed to tell us the frequency of your AC. Is your meter AC calibration correct for that frequency?

Paul

Paul_KD7HB:
You failed to tell us the frequency of your AC. Is your meter AC calibration correct for that frequency?

Paul

Well, the frequency I was testing these with is 40Hz, but that will vary. It may not always be 40Hz being tested. My multimeter reads the same voltage as my AMM-1 Audio Multimeter, which is designed to accurately measure varying audio signals from amplifiers and read Vrms, Arms, frequency, live impedance, power factor, Volt-Amps, and actual Wattage.

I am basically trying to duplicate the results I get on the AMM-1 on my arduino project.

Nobody has had experience calibrating this voltage sensor?

Why did you use transformer based sensors for an audio amplfier.
If you use a resistive load, then all you have to do is to drop amplifier output voltage with a voltage divider to the voltage limits of the Arduino. Voltage/current/watt can all be calculated from that.
Leo..

Wawa:
Why did you use transformer based sensors for an audio amplfier.
If you use a resistive load, then all you have to do is to drop amplifier output voltage with a voltage divider to the voltage limits of the Arduino. Voltage/current/watt can all be calculated from that.
Leo..

Well from what I was reading it was suggested as the only way to sense high voltage AC. Something about any negative voltage would damage the arduino. I don't know for 100% sure to be honest. Just everywhere I reasearched measuring high voltage AC this seemed to me a common sensor to do so. But I'm basing my info off people who were doing home mains voltage monitoring. It was the closest thing I could relate to my project. 110V AC @ 60HZ is basically the same thing as playing a 60HZ sine wave through an amplifier capable of producing around 110v AC.

Negative voltages can indeed be unhealthy for an Arduino input, but that is usually fixed by pulling the voltage divider output up to mid-voltage (~2.5volt) with an extra resistor to VCC.

62VAC (175volt peak/peak) is rather high for an audio amp.
What sort of amp are we talking about. Car booster? Class-AB or class-D?
Single output or bridge-mode?
Leo..

CLASS-D Single output. A few of the amps we deal with use a bridged-mono type output and have signal on + and - speaker terminals instead of a ground reference on the negative terminal, but those are somewhat rare.

And 62VAC is actually what I would consider medium power for what we deal with. We deal with amplifiers that produce over 100V AC clean output. We deal with 10-12K Watt amplifiers somewhat regularly. I would like to make this also be able to measure amplifiers that large as well.

Any links or diagrams on how to build this circuit you could help me with?

If... ground of the amp can be shared with Arduino ground, then you only need three resistors to measure AC output voltage of the amp.
One from amplifier speaker output (hot) to an analogue input, one from analogue input to Arduino ground (the normal voltage divider), and one from analogue input to Arduino VCC (5volt). The resistor to VCC pulls the pin up to about 2.5volt, so AC measurements are possible.
Try 100k between amp and analogue pin, 4k7 from pin to VCC, and 5k (2*10k parallel) from pin to ground.
That should do ~200volt peak/peak.
Post#3 in this thread should give you ideas how to get peak/peak value.
From there you can calculate the rest (if you use a resistive load).
Leo..

How are these resistor values calculated? So I can scale this up and down for different voltage outputs?

AMPLAB1:
How are these resistor values calculated?

Did it the quick way, so might not be that accurate (not that it matters a lot).

I assumed VCC is 5.0volt (which it rarely is).
I assumed pin protection can handle ~1mA in case of overload (not documented).

  1. If I want to measure ~70volt AC (100volt peak, 200volt peak/peak),
    then I pick 100k between amp and analogue pin (the 1mA limit).

  2. Then calculate the resistor to ground, assuming I want 5volt max on the analogue pin. 5k is about right.
    That gives me 5% headroom (105volt peak+).
    The resistor from pin to VCC is irrelevant, because there is 5volt on both sides (no current flowing through it).

  3. I calculate combined resistances (R pin<>amp and R pin<>ground),
    so I have 2.5volt in the pin when the amp is idle (0volt, ground) if I use that calculated value from pin to VCC.
    (100k * 5k) / (100k + 5k) = 4k76. 4k7 (E12 value) is close enought.
    Leo..

I will certainly try it the way you decribed. In the meantime I found this, and did the calculations for the resistors. Problem is, I can get an accurate reading at a single voltage, say 58VRMS, but when I turn the amp down, the voltage isnt accurate. By the time I'm down to 11V reading on my meter, the arduino is reading 21v.

Not sure why that is.

I'm facing the problem with ZMPT101B voltage sensor , when I read the output of the sensor with the serial monitor it is showing 35 instead of 1023 or 512 ,it should has to give 512 when the AC voltage is 0!!!