2017-06-22 40 views
0

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

我设置的连接与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

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

具体来说:

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

Arduino documentation

+0

感谢您的回复。我确实尝试了第9针,不幸的是没有成功。 – Hakon