DS18B20: un capteur de température pour liquides

DS18B20

Il existe différents capteurs d'humidité et de température disponibles, tels que le LM35. Certains sont intégrés dans des modules pour une utilisation spécifique avec l'Arduino. Mais généralement, ils mesurent la température sèche, c'est-à-dire la température de l'air. Mais il existe un modèle concret qui fonctionne pour mesurer la température dans les liquides et s'appelle DS18B20. Une particularité qui peut être utile pour certains de vos projets de bricolage plus exotiques où vous jouez également avec un type de liquide pour lequel vous devez connaître ce paramètre.

En fait, le DS18B20 ne mesure pas seulement la température à l'intérieur des liquides, mais il peut être très utile pour mesurer la température dans environnements humides et aussi sous un peu de liquide. Vous pouvez donc également l'utiliser pour mesurer la température de l'air si l'environnement est assez chargé d'humidité. Et comme je l'ai dit, la particularité de pouvoir l'immerger dans un liquide pour mesurer sa température est l'une des caractéristiques qui le rendent incroyablement pratique.

Qu'est-ce que le DS18B20?

Eh bien, je pense que c'est déjà devenu assez clair, il s'agit d'un capteur électronique capable de mesurer la température de milieux gazeux ou liquides. De plus, il y a différents packages ou packages de DS18B20, comme celui de base que vous voyez dans l'image principale, ou il peut également être intégré dans certains PCB, sondes submersibles, etc. Pour votre projet, vous devez choisir le format le plus adapté en fonction de ce que vous souhaitez.

Par exemple, outre le TO-92 typique, il y a aussi le microSOP. Éventuellement à intégrer avec Arduino le plus approprié est le TO-92, car avec ses trois broches, il est très facile à insérer dans la planche à pain pour la connexion.

Brochage

Broches DS18B20

El Brochage DS18B20 il est facile à identifier. Par exemple, en prenant comme référence le package Dallas TO-92, qui est l'un des plus populaires, vous pouvez voir qu'il a trois broches. Si vous le mettez de l'avant, c'est-à-dire avec la section arrondie vers l'arrière et en regardant la face plate où les inscriptions apparaissent, la broche à votre gauche est 1 et celle à votre droite est 3. Par conséquent, 1 serait pour GND ou masse, 2 pour les données et 3 pour la tension d'alimentation.

Ici, nous devons dire que, des valeurs que vous devez connaître:

  • Pin 1: vous devez le connecter à la broche GND d'Arduino, c'est-à-dire à 0v.
  • Broche 2: cette broche est DQ ou data, celle qui enverra les températures mesurées par le capteur à Arduino via un protocole particulier appelé 1-Wire et qui nécessitera une bibliothèque et des fonctions spéciales pour l'IDE Arduino. Cela permettra d'utiliser une seule broche Arduino pour connecter plusieurs capteurs avec ce protocole ...
  • Broche 3: il peut être alimenté de 3 à 5,5 v, vous pouvez donc le connecter à la sortie 5v d'Arduino.

Caractéristiques techniques et fiche technique du DS18B20

Comme toujours, c'est intéressant de connaître les caractéristiques techniques du capteur pour savoir comment il fonctionne, pour ne pas l'endommager, et surtout pour que nous sachions où se trouvent ses limites de mesure, car si les valeurs que nous voulons mesurer ne sont pas entre elles, cela ne nous aidera pas et vous devriez chercher une autre alternative.

Pour ce faire, il est préférable de télécharger un fiche technique du fabricant, comme celui de Dallas qui vous pouvez voir ici. Vous y trouverez toutes les informations nécessaires. Et rappelez-vous que bien que tous les DS18B20 puissent être similaires, selon le fabricant ou l'emballage, vous pouvez trouver des changements ...

Mais quelles que soient les bizarreries, en voici quelques-unes données techniques de base:

  • Écart de température: -55 à 125 ° C, donc, il peut mesurer en gaz ou liquide à des températures très basses et aussi élevées.
  • Les erreurs: Le DS18B20 est sensible aux bruits externes ou aux perturbations qui peuvent donner des valeurs erronées dans les mesures. La marge d'erreur est de plus moins 2 ° C, bien qu'à des températures comprises entre -10 ° C et 85 ° C, c'est-à-dire que lorsque nous ne sommes pas proches des limites, elle ne pourrait être que d'un demi-degré.
  • Résolution: Vous pouvez travailler avec plusieurs résolutions ou des variations minimales que vous pouvez détecter avec les broches analogiques Arduino. Prend en charge 9 bits, 10 bits, 11 bits et 12 bits (par défaut). Autrement dit, il peut mesurer d'un demi-degré à un demi-degré, d'un quart à un quart de degré, de 0,125 à 0,125 ° C ou de 0,0625 ° C respectivement. Vous pouvez modifier cette programmation via le code de programmation.
  • Tension d'alimentation: 3 à 5,5 V
  • PRIX: 1 à 3 €

Intégration avec Arduino

Schéma de connexion Arduino - DS18B20

Bien qu'il y ait diverses façons de le connecter, le plus approprié est celui que vous voyez dans ce diagramme. C'est assez simple, avec la broche GND dans la connexion correspondante de la carte Arduino, l'alimentation électrique est la même, puis les données vers l'analogue Arduino que vous avez choisi dans votre code de programmation dans Arduino IDE. Mais il est également bon de régler une résistance pull-up de 4,7k (si la distance du câble de la sonde du capteur est plus grande, la résistance doit être inférieure, par exemple, pour 5m de 3,3k, pour 10 sur 2,2, XNUMXk,…) pour la broche de données et ainsi le garder toujours haut.

Pour programmation dans l'IDE Arduino et sa bonne intégration avec le DS18B20 et ce protocole très particulier, il est recommandé de télécharger les bibliothèques Température de Dallas y OneWire de l'environnement. Et le code de base, ça pourrait être quelque chose comme cet exemple que je montre:

#include <OneWire.h>
#include <DallasTemperature.h>

// Pin donde se conecta el bus 1-Wire (DQ)
const int pinDatosDQ = 9;

// Instancia a las clases OneWire y DallasTemperature
OneWire oneWireObjeto(pinDatosDQ);
DallasTemperature sensorDS18B20(&oneWireObjeto);
 
void setup() {
    // Iniciamos la comunicación serie a 9600 baudios
    Serial.begin(9600);
    // Iniciamos el bus 1-Wire del sensor
    sensorDS18B20.begin(); 
}
 
void loop() {
    // Indicamos que tome la temperatura
    Serial.println("Midiendo temperatura");
    sensorDS18B20.requestTemperatures();
 
    // Lee y muestra la temperatura (recuerda que puedes conectar más de uno con 1-wire)
    Serial.print("La temperatura del sensor 0 es de: ");
    Serial.print(sensorDS18B20.getTempCByIndex(0));
    Serial.println(" C");
    Serial.print("La temperatura del sensor x es de: ");
    Serial.print(sensorDS18B20.getTempCByIndex(1));
    Serial.println(" ºC");
    
    delay(1000); 
}

Plus d'informations - Manuel de programmation Arduino (PDF gratuit)


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.