Arduino练习使用DHT 11温度/湿度传感器,但存在问题
我目前正在将温度数据从传感器发送到lcd 16x2显示器。我可以显示温度,但它会从温度到-999交替显示。当我打印数据时,它也会在串行监视器中显示这样的数据。谁能告诉我我做错了什么? 这是我的草率代码,很抱歉没有正确地标注,但我仍然掌握了基本知识Arduino练习使用DHT 11温度/湿度传感器,但存在问题,arduino,lcd,arduino-c++,Arduino,Lcd,Arduino C++,我目前正在将温度数据从传感器发送到lcd 16x2显示器。我可以显示温度,但它会从温度到-999交替显示。当我打印数据时,它也会在串行监视器中显示这样的数据。谁能告诉我我做错了什么? 这是我的草率代码,很抱歉没有正确地标注,但我仍然掌握了基本知识 #include <LiquidCrystal.h> #include <dht.h> dht DHT; #define DHT11_PIN 12 LiquidCrystal lcd(13 ,11,10,9,8,7,6 ,
#include <LiquidCrystal.h>
#include <dht.h>
dht DHT;
#define DHT11_PIN 12
LiquidCrystal lcd(13 ,11,10,9,8,7,6 ,5 , 4, 3 );
void setup(){
Serial.begin(9600);
}
void loop()
{
int chk = DHT.read11(DHT11_PIN);
lcd.begin(16,2);
lcd.print("Temperature =");
lcd.setCursor(0,2);
lcd.print(DHT.temperature);
delay(1000);
}
首先,作为建议,将lcd.begin函数放在setup函数中,而不是循环中,因为lcd必须只初始化一次
然后,阅读DHT11传感器的数据表,我发现两个传感器读数之间的最短时间应至少为2秒,因此,将delay1000更改为delay2000应该可以完成这项工作。谢谢,错误消失了,显示的数字正确。我从来都不知道他们的传感器读数有这么大的差距,这让我知道我将来会阅读传感器的数据表。删除了DHT标签,因为它是用于分布式哈希表,而不是温度传感器。