0

我目前正在将温度数据从传感器发送到 lcd 16x2 显示器,我可以显示温度,但它会不断地从温度到 -999 交替显示,当我打印它们时,它也会在串行监视器中显示这样的数据。谁能告诉我我做错了什么?这是我草率的代码,抱歉没有正确注明,但我仍在掌握基础知识。

#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);
}
4

1 回答 1

1

首先,作为建议,将lcd.begin()函数放在 setup 函数中,而不是在循环中,因为 lcd 必须只初始化一次。

然后,阅读 DHT11 传感器的数据表,我发现两个传感器读数之间的最短时间应至少为 2 秒,因此可能更改delay(1000)delay(2000)应该可以完成这项工作。

于 2019-10-02T23:03:24.440 回答