Schéma d'un thermomètre à deux canaux sur un microcontrôleur. Thermomètre électronique avec capteur sans fil

La figure montre un schéma d'un thermomètre basé sur le microcontrôleur PIC16F628A ; un capteur de température numérique DS18B20 est utilisé comme capteur. L'indicateur du thermomètre se compose d'un indicateur à 4 chiffres et à sept segments. Plage de température mesurée de-55 à + 125 degrés Celsius. La température est lue toutes les 15 secondes, le temps de lecture peut être modifié dans le code.

La tension d'alimentation du thermomètre est de 5 V, la consommation de courant est de 90 mA. Le circuit utilise des transistors BC337 ou similaires. La consommation de courant de chaque segment indicateur est de 15 mA (indication dynamique), limitée par des résistances de 220 Ohm (indicateur avec cathode commune).

Fichier du micrologiciel -

Thermomètre numérique DS18B20 avec résolution programmable, de 9 à 12 bits, pouvant être stocké dans la mémoire EEPROM de l'appareil. Le DS18B20 échange des données via un bus 1-Wire et peut être le seul appareil sur la ligne ou fonctionner en groupe. Tous les processus sur le bus sont contrôlés par un microprocesseur central.

Plage de mesure de –55°C à +125°C et précision de 0,5°C dans la plage de –10°C à +85°C. De plus, le DS18B20 peut être alimenté par la tension de la ligne de données (« alimentation parasite ») en l'absence de source de tension externe.
Chaque DS18B20 possède un code série unique de 64 bits qui lui permet de communiquer avec plusieurs capteurs DS18B20 installés sur le même bus. Ce principe permet d'utiliser un seul microprocesseur pour contrôler de nombreux capteurs DS18B20 répartis sur une grande surface. Les applications pouvant bénéficier de cette fonctionnalité incluent les systèmes de contrôle de la température dans les bâtiments, les équipements ou les machines, ainsi que la surveillance et le contrôle des processus de température.

  • Articles similaires

Connectez-vous en utilisant :

Articles aléatoires

  • 10.10.2014

    La figure montre le diagramme préampli avec bloc de tonalité, bloc de tonalité inclus dans le circuit retour préamplificateur. La tension d'alimentation de l'appareil peut varier de 12 à 24 V, la consommation de courant ne dépasse pas 10 mA. Le signal d'entrée arrive par le condensateur de couplage C1, les résistances R1 et R2 déterminent la tension de polarisation du transistor VT1, après pré-amplification...

J'ai décidé de fabriquer un thermomètre à deux canaux, mais pas ordinaire, mais avec un capteur sans fil pour la rue. L’idée n’est certainement pas nouvelle : des thermomètres industriels similaires sont déjà sur le marché. Depuis que j'ai de l'expérience dans la connexion de modules radio à un microcontrôleur, j'ai commencé à développer ma propre version d'un thermomètre sans fil.

Pour mesurer la température, j'ai utilisé les capteurs DS18B20 courants et pour afficher les lectures, j'ai utilisé le non moins populaire. J'ai discuté des modules radio et de l'algorithme de transmission de données plus tôt dans un article sur

Vous trouverez ci-dessous un schéma d'un capteur sans fil sur un microcontrôleur PIC12F675.

Après la mise sous tension, le microcontrôleur lit la valeur de température du capteur BK1 et envoie ces données à l'émetteur radio A1, après quoi il passe en mode veille. Le microcontrôleur se réveille par une interruption générée par un changement de niveau sur la ligne GP0. Un circuit RC sur les éléments R2 et C4 est connecté à cette ligne, qui remplit la fonction de minuterie. A la sortie du mode veille, la ligne GP0 est mise à un niveau logique bas, déchargeant ainsi le condensateur C4. Avant de passer en « veille », la ligne est ajustée à l'entrée, le condensateur commence à se charger via la résistance R4, et lorsque la tension de seuil (environ 1,2 V) est atteinte, le microcontrôleur est interrompu et réveillé. Avec les valeurs de R2 et C4 indiquées sur le schéma, la période d'éveil est d'environ 5 minutes. En installant le cavalier JP1, vous pouvez réduire la période à 5,5 secondes. En sélectionnant un condensateur et une résistance, vous pouvez régler la période souhaitée, mais vous devez prendre en compte le courant de charge du condensateur en termes de consommation d'énergie.

La valeur de température est transmise sur le canal radio sous forme d'un paquet de 3 octets, le dernier octet est la somme de contrôle des 2 premiers octets. L'algorithme de transmission de données que j'utilise nous permet en principe de nous passer de somme de contrôle, la probabilité de recevoir des données incorrectes est faible. La vitesse de transmission est de 3,3 Kbps. A chaque fois après avoir mesuré la température, 3 paquets d'octets sont envoyés, la pause entre les paquets est de 10 ms, j'ai utilisé cette option de transmission pour augmenter la fiabilité de réception des données par le récepteur. Cela est dû au fait que le côté réception interrompt la réception du signal pendant 4 à 5 ms lors de la mesure de la température à partir du capteur interne (domicile).

Une pile 6F22 9V (« Krona ») est utilisée comme alimentation ; le module émetteur radio A1 est alimenté directement par la pile. Pour alimenter le microcontrôleur, un micro-stabilisateur de tension DA1 (MCP1702) de 5 V est utilisé ; la consommation de courant du stabilisateur n'est que de 1 à 2 µA, le courant de charge maximum peut atteindre 250 mA. Le stabilisateur MCP1702 peut être remplacé par le LP2950, ​​​​dont la consommation de courant est plus élevée et est de 75 μA. Les stabilisateurs de tension conventionnels de type L78xx ont une consommation de courant élevée de plusieurs milliampères et ne conviennent donc pas aux équipements alimentés par batterie. La consommation de courant de l'appareil en mode veille change au fil du temps à mesure que le condensateur C4 se charge ; pendant les 2,5 premières minutes, la consommation est de 10 μA, pendant les 2,5 minutes suivantes, le courant augmente progressivement jusqu'à la sortie du mode veille. Ce phénomène est dû à la présence de courants de commutation dans le tampon d'entrée du microcontrôleur.

Je voudrais noter qu'à basse température, la capacité de la batterie diminue plus rapidement ; tous les types de batteries ne peuvent pas être utilisés dans de telles conditions. Les piles au lithium ont les meilleures performances à températures négatives, suivies par les piles Ni-Mh, les piles alcalines occupent la troisième position, les piles au sel ne sont pas adaptées à de telles conditions.

Vous trouverez ci-dessous un schéma d'un thermomètre sur un microcontrôleur PIC16F628A.


L'écran HG1, le capteur BK1 et le microcontrôleur sont alimentés par une tension de 3,3 V provenant du stabilisateur DA2. Cette valeur a été choisie en raison des caractéristiques de l'afficheur dont la tension d'alimentation maximale est de 3,3 V ; de plus, il n'est pas nécessaire de faire correspondre les niveaux de tension entre les lignes d'entrée/sortie de l'afficheur et le microcontrôleur. Le module récepteur A1 est alimenté par le stabilisateur DA1, avec une tension de sortie de 5V. Les résistances R6, R7 sont installées pour correspondre aux niveaux de tension.

Le microcontrôleur DD1 lit la valeur de température du capteur BK1 toutes les 2 secondes, reçoit en parallèle un signal du récepteur et lorsqu'un paquet d'octets est reçu de l'émetteur, la LED HL1 clignote. En haut de l'écran, l'inscription « Home » est affichée, sous laquelle est affichée la valeur de température du capteur interne (maison), en dessous l'inscription « Street » et la température reçue du capteur sans fil sont affichées. Après avoir reçu des données sur le canal radio, le microcontrôleur démarre une minuterie qui décompte le temps pour contrôler la réception des données. Si aucune donnée n'a été reçue pendant la période de compte à rebours de la minuterie, au lieu des lectures de température, les symboles de tiret « - – – – - » s'affichent sur l'écran. Le compte à rebours peut être réglé de 1 à 15 minutes par incréments d'une minute. Pour ce faire, avant de programmer le microcontrôleur, vous devez écrire un nombre de 1 à 15 dans la cellule EEPROM d'adresse 0x00. La période par défaut est de 7 minutes. En cas de dysfonctionnement des capteurs BK1, pour les deux appareils, au lieu de la valeur de température correspondante, le message « ERREUR » s'affiche. Le bouton SB1 contrôle le rétroéclairage de l'écran ; par défaut, le rétroéclairage est activé. Le bouton SB2 est destiné à régler le contraste de l'affichage, car celui-ci peut différer d'un modèle à l'autre.

Une source d'alimentation non stabilisée avec une tension de sortie de 8 à 12 V convient pour alimenter l'appareil. Les deux appareils sont logés dans des boîtiers en plastique. L'antenne pour modules radio est réalisée sous la forme d'un morceau de fil monoconducteur de 17 cm de long (un quart de la longueur d'onde de la fréquence porteuse).





Thermomètre sur microcontrôleur PIC16F628A et DS18B20 (DS18S20) - un article avec une description détaillée du circuit du thermomètre à mémoire et, en plus, une suite logique de l'article que j'ai précédemment publié sur le site Yandex pichobbi.narod.ru. Ce thermomètre a fait ses preuves et il a été décidé de le moderniser un peu. Dans cet article, je vais vous expliquer quelles modifications ont été apportées au système et programme de travail, je vais décrire les nouvelles fonctions. L'article sera utile pour les débutants. Plus tard, j'ai converti la version actuelle du thermomètre en .

Le thermomètre du microcontrôleur PIC16F628A et DS18B20 (DS18S20) peut :

  • mesurer et afficher la température dans la plage :
    -55...-10 et +100...+125 avec une précision de 1 degré (ds18b20 et ds18s20)
    -dans la plage -9,9...+99,9 avec une précision de 0,1 degrés (ds18b20)
    -dans la plage -9,5...+99,5 avec une précision de 0,5 degrés (ds18s20) ;
  • Détecter automatiquement le capteur DS18B20 ou DS18S20 ;
  • Vérifiez automatiquement le capteur en cas de panne ;
  • N'oubliez pas les températures maximales et minimales mesurées.

Le thermomètre permet également de remplacer facilement l'indicateur à 7 segments de OK par un indicateur avec OA. Une procédure douce d'écriture dans la mémoire EEPROM du microcontrôleur a été organisée. Un voltmètre qui a fait ses preuves est décrit dans cet article -.

Le schéma de circuit d'un thermomètre numérique sur un microcontrôleur a été développé pour une utilisation fiable et à long terme. Toutes les pièces utilisées dans le circuit ne manquent pas. Le modèle est facile à suivre et parfait pour les débutants.

Le diagramme schématique du thermomètre est présenté à la figure 1.

Figure 1 - Schéma de principe d'un thermomètre sur PIC16F628A + ds18b20/ds18s20

Je ne décrirai pas l'intégralité du schéma électrique du thermomètre, car il est assez simple, je m'attarderai uniquement sur les caractéristiques.

Utilisé comme microcontrôleur PIC16F628A de Micropuce. Il s’agit d’un contrôleur peu coûteux et qui ne manque pas non plus.

Des capteurs numériques sont utilisés pour mesurer la température DS18B20 ou DS18S20 de Maxime. Ces capteurs sont peu coûteux, de petite taille et les informations sur la température mesurée sont transmises numériquement. Cette solution permet de ne pas se soucier de la section des fils, de leur longueur, etc. Capteurs DS18B20,DS18S20 capable de fonctionner dans la plage de température de -55… +125 °C.

La température est affichée sur un indicateur LED à 7 segments à 3 chiffres avec une cathode commune (OK) ou avec (OA).

Pour afficher les températures maximales et minimales mesurées sur l'indicateur, vous avez besoin du bouton SB1. Pour réinitialiser la mémoire, vous avez également besoin du bouton SB1

À l'aide du bouton SA1, vous pouvez changer rapidement de capteur (rue, maison).

Un cavalier est nécessaire pour commuter le fil commun de l'indicateur LED. IMPORTANT! Si l'indicateur est OK, nous plaçons le jamper en position inférieure selon le schéma et soudons les transistors VT1-VT3 avec une conductivité p-n-p. Si l'indicateur LED est OA, nous déplaçons le jamper vers la position supérieure selon le schéma et soudons les transistors VT1-VT3 avec une conductivité n-p-n.

Dans le tableau 1, vous pouvez voir la liste complète des pièces et leur éventuel remplacement par un analogue.

Tableau 1 – Liste des pièces pour assembler le thermomètre
Désignation du poste Nom Analogique/remplacement
C1, C2 Condensateur céramique - 0,1 μFx50V -
C3 Condensateur électrolytique - 220μFx10V
DD1 Microcontrôleur PIC16F628A PIC16F648A
DD2, DD3 Sonde de température DS18B20 ou DS18S20
GB1 Trois piles AA 1,5 V
HG1 Indicateur LED à 7 segments KEM-5631-ASR (OK) Toute autre faible puissance pour indication dynamique et adaptée au raccordement.
R1,R3,R14,R15 Résistance 0,125 W 5,1 ohms Taille CMS 0805
R2,R16 Résistance 0,125W 5,1 kOhm Taille CMS 0805
R4,R13 Résistance 0,125W 4,7 kOhm Taille CMS 0805
R17-R19 Résistance 0,125W 4,3 kOhm Taille CMS 0805
R5-R12 Résistance 0,125 W 330 ohms Taille CMS 0805
SA1 Tout interrupteur approprié
SB1 Bouton tactile
VT1-VT3 Transistor BC556B pour indicateur avec OK/transistor BC546B pour indicateur avec OA KT3107/KT3102
XT1 Bornier pour 3 contacts.

Pour le débogage initial du thermomètre numérique, un modèle virtuel construit dans Proteus a été utilisé. Dans la figure 2, vous pouvez voir un modèle simplifié dans Proteus

Figure 2 – Modèle de thermomètre sur le microcontrôleur PIC16F628A de Proteus

La figure 3-4 montre le circuit imprimé du thermomètre numérique

Figure 3 – Circuit imprimé d'un thermomètre sur un microcontrôleur PIC16F628A (en bas) non à l'échelle.

Figure 4 – Circuit imprimé d'un thermomètre sur un microcontrôleur PIC16F628A (en haut) non à l'échelle.

Le thermomètre, les pièces de travail assemblées, commence à fonctionner immédiatement et n'a pas besoin d'être débogé.

Le résultat du travail est constitué des figures 5 à 7.

Figure 5 - Apparence thermomètre

Figure 6 - Aspect du thermomètre

Figure 7 - Aspect du thermomètre

IMPORTANT! Dans le firmware du thermomètre pas cousu la publicité peut être utilisée pour votre plaisir.

Modifications apportées au programme de travail :

1 détection automatique capteur DS18B20 ou DS18S20 ;

2. Le temps de réécriture dans l'EEPROM a été réduit (si la condition de réécriture est remplie) de 5 minutes à 1 minute.

3. La fréquence de clignotement du point a été augmentée ;

Plus Description détaillée Le fonctionnement du thermomètre est visible dans le document téléchargeable à la fin de cet article. Si vous ne souhaitez pas télécharger, alors sur le site www.pichobbi.narod.ru Le fonctionnement de l’appareil est également parfaitement décrit.

La planche finie s'intègre parfaitement dans un réveil chinois (Figures 8, 9).

Figure 8 – Toute la farce dans un réveil chinois

Figure 9 - Tout le remplissage du réveil chinois

Vidéo - Fonctionnement du thermomètre sur PIC16F628A

Sur MK. Son cœur est le microcontrôleur PIC16F628A. Le circuit du thermomètre utilise un indicateur LED à 4 chiffres ou 2+2 avec une anode commune. Le capteur de température utilisé est de type DS18B20 et dans mon cas, les lectures du capteur sont affichées avec une précision de 0,5*C. Le thermomètre a des limites de mesure de température de -55 à +125*C, ce qui est suffisant pour toutes les occasions. Pour alimenter le thermomètre, un chargeur ordinaire de téléphone portable a été utilisé sur un IP avec un transistor 13001.

Schéma de principe d'un thermomètre sur un microcontrôleur PIC16F628A :

Pour flasher le firmware PIC16F628A, j'ai utilisé le programme ProgCode, en l'installant sur l'ordinateur et en assemblant le programmateur ProgCode selon le schéma bien connu :

Désignation des broches du microcontrôleur utilisé et brochage de quelques autres MK similaires :

Le programme ProgCode et les instructions avec des photos du firmware étape par étape se trouvent dans les archives du forum. Il existe également tous les fichiers nécessaires à ce schéma. Dans le programme, ouvrez et cliquez sur le bouton "tout enregistrer". Dans mon appareil fabriqué, comme le montrent les photographies, 2 thermomètres sont assemblés dans un boîtier à la fois, l'indicateur supérieur indique la température à la maison, l'indicateur inférieur indique la température extérieure. Il est placé n'importe où dans la pièce et se connecte au capteur avec un fil flexible dans l'écran. Matériel fourni par ansel73. Firmware édité par : [)eNiS

Description du fonctionnement du thermomètre

Le but de ce thermomètre est simplement d'afficher la température. Les petites différences par rapport à d'autres schémas similaires concernent uniquement le format de sortie de température sur l'indicateur LED, qui est un CA04-41SRWA super lumineux à 4 chiffres. Le DS18B20 est utilisé comme capteur de température dans une connexion normale avec un fil d'alimentation séparé.

Le circuit est conçu pour être alimenté par des piles, donc lorsque l'appareil est allumé, l'indicateur n'affiche rien. Le programme du thermomètre subit une initialisation et passe immédiatement en mode veille. Le mode veille du microcontrôleur vous permet d'économiser l'énergie de l'alimentation. Lorsque vous appuyez sur le bouton connecté au PORTB0, l'indication s'allume.
L'indicateur affiche un indice :



Ensuite, les relevés de température eux-mêmes sont affichés sur l'indicateur.



Le type de sortie de lecture est le suivant :






La forme de sortie ne diffère que pour les basses températures positives. Lors de l'indication d'une telle température, le signe « C » est ajouté au symbole « degré ». C'est-à-dire en degrés Celsius. Le symbole « degré » est présent sur l'indicateur à toute température mesurée.

Le capteur de température DS18B20 mesure la température avec une résolution de 0,0625 degrés Celsius. Le thermomètre lit les lectures du capteur et les arrondit au dixième de degré le plus proche. Les dixièmes de degré sont affichés dans tous les modes d'affichage, à l'exception des températures inférieures à -10 degrés Celsius. Ceci est fait pour que les lectures de températures négatives aient toujours un signe moins.

Les lectures sont présentes sur l'indicateur pendant 30 secondes. Ensuite, l'appareil passe à nouveau en mode veille et le voyant s'éteint.


Modélisation d'un thermomètre dans Proteus


Le modèle Proteus a permis d'élaborer la partie logicielle du thermomètre sans assembler l'appareil lui-même en matériel. Tous les modes ont été testés. Il n'y a aucun échec de simulation dans le programme.



Le modèle lui-même peut être téléchargé à partir du lien : termo_i_v2.DSN

Diagramme schématique d'un thermomètre


Le circuit est dessiné sur la base de la conception du circuit imprimé. Tout d'abord, le câblage du circuit imprimé a été effectué de manière à ce que la longueur des conducteurs et l'emplacement des pièces soient optimaux, et seulement après que les ports du microcontrôleur PIC16F628A sur le circuit imprimé correspondent aux broches de l'indicateur CA04-41SRWA, un schéma de circuit précis a été établi.


Circuit imprimé du thermomètre


mob_info