Soucis avec des DTH22

bonjour tout le monde,

j'ai 2 DTH22 reliés à une carte Uno. Masse, +5V, et signal relié au +5 par une résistance de 4.7 k. C'est la Uno qui fournit l'alim. Câbles avec blindage tressé, max 4m.

Je relève les mesures toutes les minutes. Ca marche plutôt bien, sauf que de temps en temps, un DTH22 ne répond plus. C'est pas souvent, ça s'est produit 8 ou 9 fois (chacun) en une semaine. Parfois le capteur revient tout seul à la vie après 1 ou plusieurs heures, sinon je reboote la Uno et ça repart.

Du coup, j'ai alimenté mes capteurs, non pas par le +5 permanent de la Uno, mais par une broche GPIO (D12). Quand le prog. détecte un problème avec un capteur, il fait un "chic-chac" (c-à-d power off ... 500 ms ... power on ... 500 ms) sur tous les capteurs en pilotant la broche D12. Le capteur revient, pas tout de suite mais à la minute suivante, c'est bon.

De façon surprenante, il arrive (mais pas toujours) que les 2 DTH22 tombent en rade en même temps (enfin, dans la minute écoulée)

Bon, je peux vivre comme ça, mais si quelqu'un a une petite idée...

Quelle bibliothèque utilise tu ? Gères tu les alarmes "Checksum error" ?

Les DHT sont des circuits trop rapides pour les fonctions digitalREad(). Il faut une bibliothèques qui utilise dirrectement les registres du microcontroleur.

Celle d'Adafruit a longtemps utilisé digitalRead(), la dernière version utilise maintenant les registres.

68tjs: Quelle bibliothèque utilise tu ?

J'ai oublié de dire que, selon tes bons conseils ;) j'utilise la bib. de Rob Tillaard

et pardon pour les DTH22 qui sont en fait des DHT22 :)

C'est la bonne, c'est lui qui a écrit le premier code qui n'utilise plus les fonction digitalRead/Write. Les autres ont repris son amélioration.

Une analyse de la construction interne du DHT22 (Aosong 2302) se trouve ici : https://sigrok.org/wiki/Protocol_decoder:Am230x On peut y voir que le DHT22 utilise un microcontrôleur STM8, c'est du sérieux. Et, je ne sais plus où je l'ai lu, le DHT22 et le DS18B20 utilisent la même thermistance (bien évidement le traitement des infos de la thermistance n'est pas le même, le DS18B20 bénéficie d'une calibration "usine").

Il y a un accès vers la datasheet du DHT22 et en bas de la page 4 de la datasheet une mise en garde en cas de mauvais fonctionnement qui insiste sur la qualité de l'alimentation.

Que se passe-t-il si tu découple "au mieux" l'alimentation du DHT22 ? - condensateur électrochimique ou Tantale de valeur supérieure à 5/10µF pour les perturbations basses fréquences, - condensateur de 100 nF céramique en parallèle sur le condensateur précédent pour les perturbations hautes fréquences, Le tout câblé le plus près possible du DHT22, évites au maximum les longueurs inutiles sur les pattes des condensateurs.