Hi everyone,
I’ve been working on a project using the PZEM-004T module with the default current transform that comes with it, and I’m running into a strange issue. Here’s a quick rundown of what I’m seeing:
-
When I connect a 60W bulb to the circuit, the module gives the following readings:
- Voltage: 236.60V
- Current: 0.03A
- Power: 0.40W
- Energy: 0.001kWh
- Frequency: 50.0Hz
- Power Factor: 0.05
-
The expected current should be around 0.25A for a 60W bulb at 240V, so this reading seems too low.
-
The strange part is that even when I turn off and disconnect the load, the module still reads:
- Voltage: nanV
- Current: 0.03A
- Power: 0.40W
- Energy: 0.001kWh
- Frequency: 50.0Hz
- Power Factor: 0.05
Things I've Checked:
- The CT is positioned correctly around any one of the load wires.
- There is no visible damage to the module or the CT.
Has anyone experienced similar issues with low current readings, especially when the load is off? Could this be a faulty CT or a configuration problem? Any suggestions for troubleshooting would be really helpful!
This is my hardware setup, also would like to point out that only 1 led is blinking on the pzem, the one right above the 5v writing, i.e d3 led.
The code I am running is the first code from this website: PZEM Sensor tutorial with Arduino and NodeMCU (miliohm.com)
which is:
#include <PZEM004Tv30.h>
#include <Wire.h>
PZEM004Tv30 pzem(8, 9); // Software Serial pin 8 (RX) & 9 (TX)
void setup() {
Serial.begin(9600);
}
void loop() {
float voltage = pzem.voltage();
if (voltage != NAN) {
Serial.print("Voltage: ");
Serial.print(voltage);
Serial.println("V");
} else {
Serial.println("Error reading voltage");
}
float current = pzem.current();
if (current != NAN) {
Serial.print("Current: ");
Serial.print(current);
Serial.println("A");
} else {
Serial.println("Error reading current");
}
float power = pzem.power();
if (current != NAN) {
Serial.print("Power: ");
Serial.print(power);
Serial.println("W");
} else {
Serial.println("Error reading power");
}
float energy = pzem.energy();
if (current != NAN) {
Serial.print("Energy: ");
Serial.print(energy, 3);
Serial.println("kWh");
} else {
Serial.println("Error reading energy");
}
float frequency = pzem.frequency();
if (current != NAN) {
Serial.print("Frequency: ");
Serial.print(frequency, 1);
Serial.println("Hz");
} else {
Serial.println("Error reading frequency");
}
float pf = pzem.pf();
if (current != NAN) {
Serial.print("PF: ");
Serial.println(pf);
} else {
Serial.println("Error reading power factor");
}
Serial.println();
delay(2000);
}
