为什么我的 PZEM-004T 模块无法测量?

Why does my PZEM-004T module not measure?

我的工作任务是测量带有 Arduino 和 PZEM-004T 模块的设备的功耗。我将 Arduino Mega R3 2560 连接到 PZEM(TX 和 RX 的引脚 18 和 19)。 Arduino Mega 通过 USB(A 到 B)连接到计算机。这是代码:

#include <PZEM004Tv30.h>

PZEM004Tv30 pzem(18, 19); // Software Serial pin 18 (RX) & 19 (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);
}

当我上传代码时,串行监视器打印:

Voltage: nanV
Current: nanA
Power: nanW
Energy: nankWh
Frequency: nanHz
PF: nan

我的 PZEM 将 L 和 N 连接到电压,但不测量电压。为什么?

问题解决了。引脚 10 和 11 支持 Arduino Mega R3 2560 上的 SoftwareSerial,所以我不得不将它们从引脚 18TX 和 19RX 移开。