我对arduino没有多少经验,需要你的帮助。我需要打开/内置led然后温度高达27 C。我写划痕,但它不工作,它的读取温度和湿度,但导致不起作用,请你帮忙,哪里是错误的?
#include <dht.h>
dht DHT;
#define DHT11_PIN 2
void setup() {
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
float chk = DHT.read11(DHT11_PIN);
if ( chk > 27.00 )
digitalWrite( LED_BUILTIN, HIGH);
if ( chk < 27.00 )
digitalWrite( LED_BUILTIN, LOW);
Serial.print("Temperature = ");
Serial.println(DHT.temperature);
Serial.print("Humidity = ");
Serial.println(DHT.humidity);
delay(2000);
}
谢谢
如果你有chk
,它是返回值而不是温度。温度在DHT.temperature
变量。试试这段代码:
#include <dht.h>
dht DHT;
#define DHT11_PIN 2
void setup() {
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
int chk = DHT.read11(DHT11_PIN);
if ( DHT.temperature > 27.00 )
digitalWrite( LED_BUILTIN, HIGH);
if ( DHT.temperature <= 27.00 )
digitalWrite( LED_BUILTIN, LOW);
Serial.print("Temperature = ");
Serial.println(DHT.temperature);
Serial.print("Humidity = ");
Serial.println(DHT.humidity);
delay(2000);
}
如果处理=
温度,也把27.00°C
放到一个。
好的,我找到了解决方案,可能会对某些人有用:
#include <dht.h>
dht DHT;
#define DHT11_PIN 2
void setup() {
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
int chk = DHT.read11(DHT11_PIN);
Serial.print("Temperature = ");
Serial.println(DHT.temperature);
if ( DHT.temperature > 27.00 )
digitalWrite( LED_BUILTIN, HIGH);
if ( DHT.temperature < 27.00 )
digitalWrite( LED_BUILTIN, LOW);
Serial.print("Humidity = ");
Serial.println(DHT.humidity);
delay(2000);
}