DS18B20 : Caractéristiques du capteur de température

  • Le capteur DS18B20 peut mesurer des températures de -55°C à 125°C avec une résolution réglable de 9 à 12 bits.
  • Il peut être alimenté via sa broche de données ou utiliser une source externe pour une plus grande stabilité.
  • Il permet la connexion de plusieurs capteurs sur un seul bus, chacun étant identifié par son adresse unique de 64 bits.
  • Il est compatible avec Arduino utilisant les bibliothèques OneWire et DallasTemperature.

ds18b20

El Capteur DS18B20 a gagné en popularité grâce à sa fiabilité et sa polyvalence pour la mesure de la température. Il est largement utilisé dans les projets électroniques avec des microcontrôleurs tels que Arduino, PIC ou ESP8266 en raison de sa simplicité d'utilisation et de sa capacité à connecter plusieurs capteurs sur le même bus, ce qui en fait une option idéale aussi bien pour les amateurs que pour les professionnels.

L'un des principaux attraits de ce capteur est qu'il n'utilise qu'un seul câble pour la communication des données via le protocole 1-Wire, ce qui facilite son intégration dans une grande variété de projets. De plus, le DS18B20 peut fonctionner dans deux modes d'alimentation différents, ce qui le rend encore plus flexible. Tout au long de cet article, nous vous expliquerons en profondeur son fonctionnement, comment connecter plusieurs capteurs et comment optimiser vos mesures de température.

Caractéristiques du DS18B20

Le DS18B20 est fabriqué par Maxim Integrated, entre autres, et est présenté dans diverses encapsulations, le format étant TO-92 (similaire à celui de nombreux transistors) l'un des plus courants. De plus, il peut également être trouvé en versions scellées et étanches, ce qui le rend idéal pour mesurer les températures dans des environnements difficiles ou humides.

Parmi les caractéristiques les plus notables du DS18B20 figurent :

  • La plage de température qu'il peut mesurer couvre de -55°C à 125°C, ce qui le rend adapté aux applications industrielles et domestiques.
  • Su résolution programmable peut varier entre 9 et 12 bits, permettant un ajustement précis en fonction des besoins de chaque projet.
  • Chaque capteur a une adresse unique 64, facilitant l'identification de plusieurs capteurs connectés sur le même bus.

Modes d'alimentation DS18B20

brochage DS18B20

Le capteur peut fonctionner selon deux modes de puissance, offrant une flexibilité lors de son intégration dans différents projets, chacun ayant ses propres avantages.

Alimentation via une broche de données (Parasite Power)

Ce mode est idéal lorsque l'espace est limité ou lorsque des connexions longue distance sont nécessaires. Le DS18B20 tire son énergie directement de la broche de données lorsqu'elle est haute et stocke l'énergie dans un petit condensateur lorsque la ligne de données est faible. Ce type de régime est appelé Pouvoir parasitaire.

Cependant, il est important de noter que pour que cela fonctionne correctement, il est nécessaire de connecter les broches GND y VDD à terre. De plus, il est conseillé d'inclure un transistor MOSFET ce qui aide dans les situations où les conversions de température nécessitent plus de courant.

Alimentation via une source externe

La manière la plus courante et recommandée d'alimenter le DS18B20 consiste à utiliser une source externe connectée à la broche. VDD. Cette méthode garantit une tension stable indépendante du trafic de données sur le bus 1-Wire, ce qui est avantageux pour les projets nécessitant une précision constante.

Comment utiliser le DS18B20 avec Arduino

connexion arduino

Pour travailler avec ce capteur sur la plateforme Arduino, il est nécessaire d'utiliser deux librairies fondamentales : OneWire y DallasTempérature. Ces bibliothèques facilitent la communication et permettent d'effectuer facilement des lectures et configurations.

Bibliothèque OneWire : Permet la communication en utilisant le protocole 1-Wire. Il peut être téléchargé à partir du Dépôt GitHub.

Librairie de DallasTempérature : Il contient les fonctions nécessaires pour lire la température et configurer le capteur. Téléchargez-le depuis ce lien.

Une fois que vous avez installé les deux bibliothèques, vous pouvez commencer à travailler avec le capteur sans complications. Ci-dessous, nous expliquons quelques exemples sur la manière de lire la température et de travailler avec plusieurs capteurs.

Exemple 1 : Relevé de température avec un seul capteur

Pour effectuer une lecture de température avec un seul DS18B20 connecté à un Arduino, le circuit de base consiste simplement à connecter la broche de données du capteur au broche numérique 2 de l'Arduino, avec une résistance Remonter de 4.7kΩ.

Voici le code de base pour lire la température du capteur :

#include <OneWire.h>  #include <DallasTemperature.h>  OneWire  ds(2);  DallasTemperature sensors(&ds); void setup() {   Serial.begin(9600);   sensors.begin(); } void loop() {   sensors.requestTemperatures();   float tempC = sensors.getTempCByIndex(0);   Serial.print("Temperatura= ");   Serial.print(tempC);   Serial.println(" °C");   delay(1000); }

Le code est assez simple. Il suffit de quelques lignes dans la boucle principale pour demander la température et la lire, ce qui le rend très facile à mettre en œuvre et à personnaliser pour différentes utilisations.

Exemple 2 : Utilisation de plusieurs capteurs sur différentes broches

Lorsque vous travaillez avec plusieurs DS18B20, il existe deux manières de connecter les capteurs. La première consiste à attribuer une broche numérique Arduino différente à chaque capteur. Dans ce cas, une résistance Pull-Up de 4.7 kΩ sera nécessaire pour chaque capteur.

Nous vous montrons ici un exemple de la façon de travailler avec deux capteurs connectés sur des broches différentes :

#include <OneWire.h>  #include <DallasTemperature.h>  OneWire ds1(2); OneWire ds2(3);  DallasTemperature sensors1(&ds1); DallasTemperature sensors2(&ds2); void setup() {   Serial.begin(9600);   sensors1.begin();   sensors2.begin(); } void loop() {   sensors1.requestTemperatures();   float temp1 = sensors1.getTempCByIndex(0);   sensors2.requestTemperatures();   float temp2 = sensors2.getTempCByIndex(0);   Serial.print("Temperatura 1 = ");   Serial.print(temp1);   Serial.print(" °C   Temperatura 2 = ");   Serial.println(temp2);   delay(1000); }

Exemple 3 : Plusieurs capteurs connectés à une seule broche

L'autre possibilité de connecter plusieurs DS18B20 dans un projet est de le faire en utilisant une seule broche et le même bus 1-Wire pour tous. Dans ce cas, chaque capteur doit avoir son numéro d'identification unique, qui est attribué en usine. Nous expliquons ici comment obtenir ces adresses en utilisant le code suivant :

#include <OneWire.h> OneWire ds(2); void setup(void) {   Serial.begin(9600); } void loop(void) {   byte address[8];   if (!ds.search(address)) {     Serial.println("No more addresses.");     ds.reset_search();     delay(250);     return;   }   Serial.print("Address: ");   for (int i = 0; i < 8; i++) {     Serial.print(address[i], HEX);     if (i < 7) Serial.print(", ");   }   Serial.println();   delay(250); }

Une fois que vous avez les adresses de tous les capteurs, vous pouvez lire le capteur spécifique en utilisant son adresse unique. Le code suivant vous montre comment procéder :

#include <DallasTemperature.h>  OneWire ds(2);  DallasTemperature sensors(&ds);  DeviceAddress sensor1 = {0x28, 0xFF, 0xCA, 0x4A, 0x5, 0x16, 0x3, 0xBD}; DeviceAddress sensor2 = {0x28, 0xFF, 0x89, 0x3A, 0x1, 0x16, 0x4, 0xAF};  void setup() {   Serial.begin(9600);   sensors.begin(); } void loop() {   sensors.requestTemperatures();   float temp1 = sensors.getTempC(sensor1);   float temp2 = sensors.getTempC(sensor2);   Serial.print("Temp sensor 1: ");   Serial.println(temp1);   Serial.print("Temp sensor 2: ");   Serial.println(temp2);   delay(1000); }

Les avantages de cette méthode sont que vous enregistrez les broches sur l'Arduino et que vous pouvez connecter de nombreux capteurs en parallèle sur le même bus de données.

Avec ces exemples, vous pouvez constater la polyvalence et la puissance du capteur DS18B20. C'est très simple à mettre en œuvre, et si vous devez connecter plusieurs capteurs, vous disposez d'une flexibilité totale pour le faire de différentes manières. Le DS18B20 est l'un des capteurs les plus fiables pour mesurer la température, et grâce à sa faible consommation d'énergie et sa programmation facile, il est parfait pour tous les types de projets.

Le capteur DS18B20 est non seulement facile à utiliser avec Arduino, mais peut également être utilisé dans une large gamme d'applications industrielles et résidentielles telles que la surveillance de la température dans les systèmes de climatisation, les machines ou même les serres.


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.