DS18B20: un sensor de temperatura per a líquids

DS18B20

Hi ha diversos sensors d'humitat i temperatura disponibles, com el LM35. Alguns integrats en mòduls per al seu ús específic amb Arduino. Però en general, són per mesurar temperatura en sec, és a dir, temperatura de l'aire. Però hi ha un model concret que funciona per mesurar temperatura en líquids i es diu DS18B20. Una peculiaritat que potser et vingui bé per alguns dels teus projectes de DIY més exòtics on juguis també amb algun tipus de líquid de què necessites conèixer aquest paràmetre.

Realment el DS18B20 no mesura només temperatura dins de líquids, sinó que pot ser molt útil per mesurar temperatura a ambients humits i també sota algun líquid. Així que també ho podràs fer servir per mesurar la temperatura d'aire si l'entorn està bastant carregat d'humitat. I com dic, la característica de poder-lo submergir en un líquid perquè mesuri la seva temperatura és una de les característiques que el fan increïblement pràctic.

Què és el DS18B20?

Bé, crec que ja ha quedat prou clar, és un sensor electrònic capaç de mesurar la temperatura de mitjans gasosos o líquids. A més, hi diferents encapsulats o empaquetats de l'DS18B20, Com ara el bàsic que veus a la imatge principal, o també pot venir integrat en alguns PCBs, sondes submergibles, etc. Per a la teva projecte hauries triar el format més adequat segons el que vulguis.

Per exemple, a part dels típics TO-92, hi ha també el microSOP. Possiblement per integrar amb Arduino el més apropiat sigui el TO-92, ja que amb els seus tres pins és molt senzill d'inserir en el protoboard per a la seva connexió.

Pintura

Pins de l'ds18b20

El pinout de l'DS18B20 és senzill d'identificar. Per exemple, prenent com a referència l'encapsulat TO-92 de Dallas, que és un dels més populars, podràs veure que té tres pins o patilles. Si el poses de front, és a dir, amb la secció arrodonida cap enrere i mirant la cara plana on apareixen les inscripcions, el pin que tens a la teva esquerra és l'1 i el de la teva dreta el 3. Per tant, l'1 seria per GND o terra, el 2 és el de dades i el 3 el de voltatge d'alimentació.

Aquí hem de dir que, els valors que has de conèixer:

  • Pin 1: has de connectar-lo a el pin GND d'Arduino, és a dir, a 0V.
  • Pin 2: aquest pin és DQ o de dades, el qual enviarà les temperatures mesures pel sensor a Arduino a través d'un protocol particular conegut com 1-Wire i que necessitarà d'unes funcions i biblioteca especial per Arduino IDE. Això permetrà utilitzar només un pin d'Arduino per connectar diversos sensors amb aquest protocol ...
  • Pin 3: pot alimentar-se de 3 a 5,5v, així que pots connectar-lo a la sortida de 5v d'Arduino.

Característiques tècniques de l'DS18B20 i datasheet

Com sempre, és interessant conèixer les característiques tècniques de l'sensor per saber com funciona, per no danyar-lo, i sobretot perquè sapiguem on són els seus límits de mesurament, ja que si els valors que volem mesurar no es troben entre ells no ens servirà i hauries buscar una altra alternativa.

Per a això, el millor és que descarreguis XNUMX datasheet de l'fabricant, Com el de Dallas que pots veure aquí. Allà trobaràs tota la informació necessària. I recorda que encara que tots els DS18B20 puguin ser similars, segons el fabricant o encapsulat podries trobar alguns canvis ...

Però independentment de les peculiaritats, aquí tens alguns dades tècniques bàsiques:

  • Rang de temperatura: -55 a 125ºC, per tant, pot mesurar en gas o líquid a temperatures molt baixes i també elevades.
  • errors: El DS18B20 és sensible a soroll extern o alteracions que poden donar valors erronis en els mesuraments. El marge d'error és de més menys 2ºC, tot i que a temperatures entre -10ºC i 85ºC, és a dir, quan no estem a prop dels límits, podria ser de només mig grau.
  • Resolució: Pots treballar amb diverses resolucions o variacions mínimes que puguis detectar amb els pins analògics d'Arduino. Admet 9-bit, 10-bit, 11-bit i 12 bits (per defecte). És a dir, pot mesurar de mig a mig grau, d'un quart en una cambra de grau, de 0,125 a 0,125ºC, o de 0,0625ºC respectivament. Pots alterar aquesta programació a través d'el codi de programació.
  • Voltatge d'alimentació: 3 a 5,5v
  • Preu: 1 a 3 €

Integració amb Arduino

esquema de connexió Arduino - ds18b20

Encara que hi ha diverses formes de connectar, La més adequada és la que veus en aquest esquema. És bastant simple, amb el pin GND en la connexió corresponent de la placa Arduino, el d'alimentació igual i després el de dades a l'analògic d'Arduino que hagis triat en el teu codi de programació en Arduino IDE. Però també és bo configurar una resistència pull-up de 4,7k (si la distància del cable de la sonda de l'sensor és més gran, la resistència ha de ser més baixa, per exemple, per a 5m de 3,3k, per a 10 de 2,2, XNUMXk, ...) per el pin de dades i així mantenir-lo sempre en alt.

Per a la programació en Arduino IDE i la seva bona integració amb el DS18B20 i aquest protocol tan particular, és recomanable que baixis les biblioteques Dallas Temperature y OneWire des de l'entorn. I el codi base, podria ser alguna cosa així com aquest exemple que mostro:

#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); 
}

Més inforamció - Manual de programació d'Arduino (PDF gratuït)


Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.