2017-06-22 2 views
0

Je ne connais pas encore la programmation de bas niveau et je tente de connecter un capteur DHT22 à ma Lora Adafruit M0 pour mesurer la température. Jusqu'à présent, je ne récupère que NaN s.Connecter Adafruit m0 avec dht22

Les connexions que j'ai configurées sont identiques à this sketch, en plus d'utiliser la broche 13 par opposition à la broche 2 pour l'entrée/la sortie du capteur. Je suis conscient de l'esquisse faite pour un panneau de plumes différent, bien que la logique devrait toujours rester la même de ce que je peux comprendre.

Je me sers de 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); 
} 

quelqu'un serait en mesure d'aider point de ce que je fais mal? J'ai essayé à d'autres bauds que 9600, ainsi que de changer la broche programmable. Toute aide serait grandement appréciée.

Répondre

1

Je ne pense pas que ce soit un problème de code. La broche 13 est spéciale. Choisissez une autre broche.

Plus précisément:

REMARQUE: broche numérique 13 est plus difficile à utiliser comme entrée numérique que les autres broches numériques, car il a une diode et d'une résistance fixée à ce qui est soudée à la carte sur la plupart des planches. Si vous activez sa résistance de pull-up 20k interne, elle se bloquera autour de 1.7V au lieu des 5V attendus car la LED embarquée et la résistance série abaissent le niveau de tension, ce qui signifie qu'elle revient toujours BAS. Si vous devez utiliser la broche 13 comme entrée numérique, réglez son code pinMode() sur INPUT et utilisez une résistance de tirage externe.

De Arduino documentation.

+0

Merci pour la réponse. J'ai essayé la broche 9, malheureusement sans succès. – Hakon