Arduino DHT22和ESP32-湿度不工作,温度错误
我试图从DHT22传感器()中获取一个值,它连接到我的ESP32板,但即使从示例程序中,我也从湿度函数和-3200 C左右的温度中获取NaN 这是代码Arduino DHT22和ESP32-湿度不工作,温度错误,arduino,esp32,Arduino,Esp32,我试图从DHT22传感器()中获取一个值,它连接到我的ESP32板,但即使从示例程序中,我也从湿度函数和-3200 C左右的温度中获取NaN 这是代码 #include "DHT.h" #define DHTPIN 4 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); Serial.println("DHTxx test!"); dht.begin(); } voi
#include "DHT.h"
#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!");
dht.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
}
你知道为什么会这样吗?我是不是弄错了?
谢谢你的建议。这可能不是正确答案,但我会解释,你可以测试一下。我身上没有DHT22,但如果我之前在Arduino上使用DHT22时记忆正确,那么DHT22是一个获取温度数据的非常慢的传感器(需要250毫秒)。因此,我建议您稍微修改一下程序:
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
// Check if any reads failed and exit to try again
if (isnan(h) || isnan(t)) {
delay(10); // you can fine tune this delay
return;
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
delay(2000);
}
你们在输入引脚和Vcc之间有上拉电阻器吗?我认为那个电阻器应该焊接在电路板上。这有点帮助,有点。。。湿度现在起作用了,但函数返回了疯狂的数字。。。(-3200摄氏度和6500%)