为什么我的 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 移开。
我的工作任务是测量带有 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 移开。