首页 文章

用dht22连接Adafruit m0

提问于
浏览
0

我是低级编程的新手,并试图将DHT22传感器连接到我的Adafruit M0 Lora上进行温度读数 . 到目前为止,我只检索 NaN s .

我设置的连接与this sketch相同,除了使用引脚13而不是引脚2用于传感器输入/输出 . 我知道为不同的羽毛板制作的草图,尽管逻辑仍然应该与我能理解的相同 .

我正在使用Adafruit's DHT library

#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>

// pin connected to DH22 data line
#define DATA_PIN 13
DHT_Unified dht(DATA_PIN, DHT22);

void setup() {

  // start the serial connection
  Serial.begin(9600);

  // wait for serial monitor to open
  while(! Serial);

  // initialize dht22
  dht.begin();

  // connect to io.adafruit.com
  Serial.print("Connecting to Adafruit IO");

  // we are connected
  Serial.println();

}

void loop() {

  sensors_event_t event;
  dht.temperature().getEvent(&event);

  float celsius = event.temperature;
  float fahrenheit = (celsius * 1.8) + 32;

  Serial.print("celsius: ");
  Serial.print(celsius);
  Serial.println("C");

  Serial.print("fahrenheit: ");
  Serial.print(fahrenheit);
  Serial.println("F");

  // save fahrenheit (or celsius) to Adafruit IO

  dht.humidity().getEvent(&event);

  Serial.print("humidity: ");
  Serial.print(event.relative_humidity);
  Serial.println("%");
  delay(5000);
}

有人能够帮助指出我做错了什么吗?我尝试了9600以外的其他波特,以及更换可编程引脚 . 任何帮助都将不胜感激 .

1 回答

  • 1

    我认为这不是代码问题 . 针脚13很特别 . 选择不同的别针 .

    特别:

    注意:数字引脚13比其他数字引脚更难用作数字输入,因为它有一个LED和电阻连接到它,焊接到大多数电路板的电路板上 . 如果你启用其内部20k上拉电阻,它将挂在1.7V左右,而不是预期的5V,因为板载LED和串联电阻将电压降低,这意味着它总是返回LOW . 如果必须将引脚13用作数字输入,则将其pinMode()设置为INPUT并使用外部下拉电阻 .

    Arduino documentation .

相关问题