Arduino温度传感器和LED

问题描述 投票:0回答:2

我对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);
}

谢谢

arduino
2个回答
0
投票

如果你有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放到一个。


0
投票

好的,我找到了解决方案,可能会对某些人有用:

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

}

© www.soinside.com 2019 - 2024. All rights reserved.