如何解决为什么我的PZEM-004T模块无法测量?
我的工作是测量带有Arduino和PZEM-004T模块的设备的功耗。我将Arduino Mega R3 2560连接到PZEM(用于TX和RX的PIN 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移出。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。