Pièces: Humidité de précision et capteur de température (SHT1X / 7X)
SHTXX de Sensirion est un capteur d’humidité et de température interfacés numériquement. Les mesures précises d’humidité nécessitent normalement une conception analogique minutieuse, mais le shtxx déplace tout ce type compliqué dans une seule puce. Des versions à travers le trou traversant (SHT7X) et le montage en surface (SHT1X) sont disponibles, nous avons utilisé le montage de surface SHT11 avec une précision de +/- 3%. Nous vous montrerons comment utiliser le shtxx ci-dessous.
Sensirion SHT1X / SHT7X Capteur de précision d’humidité et de température (recherche Octopart, à partir de 25 $).
Ce n’est pas un capteur à faible coût. Octopart énumère quelques endroits pour l’obtenir. Plusieurs magasins d’appareils électroniques de passe-temps plus petits portent; Hobby Engineering l’a pour 29 $ (# H01509-01C). Nous avons trouvé des empreintes de PCB compatibles dans sht10_11_15.lbr et sht11.lbr sur la page de téléchargement de la bibliothèque CADSoft. Les connexions des broches pour les différents types d’emballages se trouvent dans la fiche technique: sht1x (pdf), sht7x (pdf).
Le shtxx a une interface série à deux fils nécessitant des résistances de pull-up (R1,2), les valeurs entre 2K et 10K doivent fonctionner. Senirion recommande un condensateur de découplage (C1) uniquement si le capteur est alimenté sur une longueur de fil, mais nous pensons que c’est toujours une bonne idée d’inclure un.
Nous démontrerons le shtxx à l’aide de l’interface série universelle du pirate de bus en mode Raw2Wire avec des sorties HI-Z. Le shtxx est alimenté à partir de la fourniture de 3,3 Volts du pirate du bus. Les résistances de pull-up intégrées du pirate de bus maintiennent le bus haut, éliminant ainsi le besoin de résistances externes R1 et R2.
Interface
Le SHTXX communique sur deux fils à l’aide d’un protocole de base en série. Le protocole n’est pas compatible avec I2C, mais un seul shtxx peut exister sur un bus avec des périphériques I2C.
Commander
Code
Mesurer la température
00000011
Mesurer l’humidité relative
00000101
Lire le registre du statut
00000111
Enregistrer le statut
00000110
Redémarrage en douceur
00011110
Cinq commandes contrôlent le shtxx, celles-ci sont détaillées dans le tableau. Les 3 premiers bits sont l’adresse (toujours 000), les 5 bits restants sont un code de commande spécial.
Réinitialiser
Démarrez une transaction en supprimant les commandes ou les données partielles d’une utilisation précédente. Un minimum de neuf ticks horloge tandis que les données sont élevées pour effacer l’interface SHTXX. La syntaxe de pirate de bus à destination de ceci est – ^: 9; Data High (-), 9 ticks d’horloge (^: 9).
Les commandes au SHT11 commencent par une condition de démarrage spéciale. Comme une condition de démarrage I2C, c’est la seule fois où le signal de données change avec le signal d’horloge haut. Cette condition illégale provoque la préparation de la puce pour une nouvelle commande. La condition de démarrage SHTXX est différente de I2C, permettant aux deux types de dispositifs exister sur le même bus.
Le code de pirate de bus pour générer une condition de démarrage de style shtxx est – / _ \ / – \;; Les données démarrent hautement (-), Horloge UP (/), les données sont basses (_), une horloge faible (\), Horloge High (/), les données sont élevées (-) et une horloge finale La transition basse (\) est terminée. séquence.
Une réinitialisation douce est une bonne idée car elle met la puce dans un état par défaut. Avant la première conversion de température ou d’humidité, nous envoyons la commande Soft Reset.
Raw2Wire> – ^: 9 – / _ \ / – \ 0B00011110! <- commande Sortie de données Raw2Wire 4xx, 1 <-Clear Interface Ticks d'horloge de 4xx Raw2Wire 0x09 Sortie de données Raw2Wire 4xx, 1