用dht22连接Adafruit m0

时间:2017-06-22 16:56:57

标签: arduino adafruit

我是初级低级编程人员,并试图将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 个答案:

答案 0 :(得分:1)

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

具体做法是:

  

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

来自Arduino documentation