Arduino 练习使用 DHT 11 temp/humid 传感器但遇到问题
Arduino practice with a DHT 11 temp/humid sensor but having an issue
我目前正在将温度数据从传感器发送到 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);
}
首先,作为一个建议,将 lcd.begin()
函数放在设置函数中,而不是在循环中,因为 lcd 必须只初始化一次。
然后,阅读 DHT11 传感器的数据表,我发现两个传感器读数之间的最短时间应至少为 2 秒,因此可能将 delay(1000)
更改为 delay(2000)
应该可以完成这项工作。
我目前正在将温度数据从传感器发送到 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);
}
首先,作为一个建议,将 lcd.begin()
函数放在设置函数中,而不是在循环中,因为 lcd 必须只初始化一次。
然后,阅读 DHT11 传感器的数据表,我发现两个传感器读数之间的最短时间应至少为 2 秒,因此可能将 delay(1000)
更改为 delay(2000)
应该可以完成这项工作。