Problème lecture sonde DHT22

Bonjour à tous,

Je n'arrive pas à lire les valeurs de ma sonde DHT22 reliée à ma Arduino.

Voici mon code :

// Programme permettant de mesurer l'hygrometrie d'une piece de l'habitat

#include "DHT.h" // Appel de la librairie DHT.h
#define DHTPIN 2 // Nous travaillons avec la broche 2 du capteur DHT
#define DHTTYPE DHT22 // Nous travaillons avec le capteur DHT 22 (AM2302)

DHT dht(DHTPIN, DHTTYPE); // Initialisation du capteur DHT 22 (AM2302)

void setup() // Initialisation du programme

{
Serial.begin(9600); // Arduino échange des messages avec le moniteur série, à un débit de données de 9600 bits/s

dht.begin(); // Utilisation de la librairie DHT.h
}

void loop() // Lecture de l'hygrometrie toutes les 250 millisecondes
{
float h = dht.readHumidity(); // Variable permettant de lire l'hygrometrie sous forme décimale

if (isnan(h)) // Boucle if; Si la valeur n'est pas un nombre
{
Serial.println("- Erreur pour lire depuis le DHT22"); // Affiche le texte suivi d'un saut de ligne
}
else // Boucle else; Sinon
{
Serial.print(h); // Affiche la valeur de la variable h
Serial.print(" %\t"); // Affiche la valeur en %
Serial.println(); // Saut de ligne
}
}

Voici mon montage :

J'ai copié ce montage :

Mon moniteur série :

Si vous avez une solution à m'apporter, je vous en serai très reconnaissant.

Merci d'avance :smiley:

Essaies de rajouter un delay ou un millis pour limiter le nombre de lecture par seconde. les DHT22 sont limités en terme de lecture par seconde.

https://www.carnetdumaker.net/articles/utiliser-un-capteur-de-temperature-et-dhumidite-dht11-dht22-avec-une-carte-arduino-genuino/

Par exemple
delay(1000);
avant le tout dernier }

Bonjour,

D'après ce que je lis dans le programme de test sur github, il faut attendre 2 secondes minimum entre chaques lectures.

Le DHT22 utilise une thermistance comme capteur de température qui est un composant lent.
Le DHT22 est piloté en interne par un microcontrôleur STM8xxxxxx qui assure la conversion entre la mesure analogique du circuit comprenant la thermistance en valeurs numériques qui sont envoyées au micro selon un protocole propriétaire.

C'est certain qu'il ne faut pas l'interroger avec des intervalles très court et d'ailleurs cela ne servirait à rien compte tenu de la constante de temps thermique de la thermistance.

Merci à tous pour vos réponses.

En revanche, j'ai beau mettre un delay(1000) ou un delay(2000), j'ai toujours le même problème :

Auriez-vous svp une autre solution à m'apporter ?

Il faut garder la temporisation de deux secondes (compatible avec le github; l'humidité, sauf si vous avez un déluge domestique, varie très lentement -deux secondes, c'est déjà très rapide-)
Avez vous vérifié votre câblage (les tensions +5v et 0 volt arrivent elles aux bonnes pattes, par ex?) -parce que je vois très mal sur les photos -vos fils sont très longs- alors que le schéma est bon...

Prav26:
Je n'arrive pas à lire les valeurs de ma sonde DHT22 reliée à ma Arduino.

Si tu décrivais ce que tu constates peut-être que cela aidera.
voir "Règles du forum francophone"