Arduino - Sensor de temperatura

Existen muchos tipos de sensores de temperatura que pueden funcionar con Arduino, como LM35, TH02, HDC1000 o HTS221... En este tutorial, vamos a aprender a usar el sensor de temperatura DS18B20 impermeable con Arduino. Este sensor es económico, fácil de usar y se ve bien.

Hardware Requerido

1×Arduino Uno R3
1×Cable USB 2.0 tipo A/B (para PC USB-A)
1×Cable USB 2.0 tipo C/B (para PC USB-C)
1×Sensor de Temperatura DS18B20 (con Adaptador)
1×Sensor de Temperatura DS18B20 (sin Adaptador)
1×Cables Puente
1×(Recomendado) Shield de Bloque de Terminales de Tornillo para Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Carcasa para Arduino Uno
1×(Recomendado) Placa Base de Prototipado y Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Buy Note: Many DS18B20 sensors available in the market are unreliable. We strongly recommend buying the sensor from the DIYables brand using the link provided above. We tested it, and it worked reliably.

Acerca del sensor de temperatura 1-Wire - DS18B20

Disposición de pines

El sensor de temperatura DS18B20 tiene tres pines:

  • Pin GND: debe conectarse a GND (0V)
  • Pin VCC: debe conectarse a VCC (5V o 3.3V)
  • Pin DATA: es el bus de datos 1-Wire. Debe conectarse a un pin digital en Arduino.

El sensor suele tener dos formas: el paquete TO-92 (parece un transistor) y una sonda impermeable. En este tutorial usamos la forma de sonda impermeable.

Pinout del sensor de temperatura DS18B20

Conectar un sensor de temperatura DS18B20 a un Arduino requiere una resistencia pull-up, lo que puede ser un engorro. Sin embargo, algunos fabricantes simplifican el proceso al ofrecer un adaptador de cableado que tiene una resistencia pull-up integrada y un bloque terminal con tornillos, lo que facilita mucho las cosas.

Diagrama de Cableado

  • Diagrama de cableado con protoboard
Diagrama de cableado del sensor de temperatura de Arduino

This image is created using Fritzing. Click to enlarge image

  • Diagrama de cableado con adaptador (recomendado)
Diagrama de cableado para Arduino DS18B20

This image is created using Fritzing. Click to enlarge image

  • Diagrama de cableado real con adaptador
Diagrama de cableado del adaptador Arduino DS18B20

This image is created using Fritzing. Click to enlarge image

Recomendamos adquirir un sensor DS18B20 que viene con un adaptador de cableado para una conexión sencilla. El adaptador tiene una resistencia integrada, eliminando la necesidad de una resistencia separada en el cableado.

Cómo programar para el sensor de temperatura DS18B20

  • Incluir la biblioteca:
#include <OneWire.h> #include <DallasTemperature.h>
  • Declarar el objeto OneWire y el objeto DallasTemperature correspondientes al pin conectado al pin de datos del sensor.
OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature sensors(&oneWire); // pass oneWire to DallasTemperature library
  • Inicializar el sensor:
sensors.begin(); // initialize the sensor
  • Envíe el comando para obtener las temperaturas:
sensors.requestTemperatures();
  • Leer la temperatura en grados Celsius:
tempCelsius = sensors.getTempCByIndex(0);
  • (Opcional) Convertir de grados Celsius a grados Fahrenheit:
tempFahrenheit = tempCelsius * 9 / 5 + 32;

Código de Arduino

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-temperature-sensor */ #include <OneWire.h> #include <DallasTemperature.h> const int SENSOR_PIN = 13; // Arduino pin connected to DS18B20 sensor's DQ pin OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature tempSensor(&oneWire); // pass oneWire to DallasTemperature library float tempCelsius; // temperature in Celsius float tempFahrenheit; // temperature in Fahrenheit void setup() { Serial.begin(9600); // initialize serial tempSensor.begin(); // initialize the sensor } void loop() { tempSensor.requestTemperatures(); // send the command to get temperatures tempCelsius = tempSensor.getTempCByIndex(0); // read temperature in Celsius tempFahrenheit = tempCelsius * 9 / 5 + 32; // convert Celsius to Fahrenheit Serial.print("Temperature: "); Serial.print(tempCelsius); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(tempFahrenheit); // print the temperature in Fahrenheit Serial.println("°F"); delay(500); }

Pasos R\u00e1pidos

  • Conecta Arduino al PC mediante un cable USB
  • Abre Arduino IDE, selecciona la placa y el puerto correctos
  • Navega al icono de Librerías en la barra izquierda del Arduino IDE.
  • Busca “DallasTemperature”, luego encuentra la biblioteca DallasTemperature de Miles Burton.
  • Haz clic en el botón Instalar para instalar la biblioteca DallasTemperature.
Biblioteca Dallas Temperature para Arduino
  • Se le pedirá que instale la dependencia de la biblioteca
  • Haga clic en el botón Instalar todo para instalar la biblioteca OneWire.
biblioteca OneWire para Arduino
  • Copia el código anterior y ábrelo con Arduino IDE
  • Haz clic en el botón Subir en el IDE de Arduino para cargar el código en Arduino
  • Coloca el sensor en agua caliente y fría, o agárralo con la mano
  • Mira el resultado en el Monitor Serial.
COM6
Send
Temperature: 26.31°C ~ 79.36°F Temperature: 26.44°C ~ 79.59°F Temperature: 26.50°C ~ 79.70°F Temperature: 26.56°C ~ 79.81°F Temperature: 27.06°C ~ 80.71°F Temperature: 27.75°C ~ 81.95°F Temperature: 28.37°C ~ 83.07°F Temperature: 29.00°C ~ 84.20°F Temperature: 29.56°C ~ 85.21°F Temperature: 30.00°C ~ 86.00°F Temperature: 30.31°C ~ 86.56°F Temperature: 30.62°C ~ 87.12°F Temperature: 30.87°C ~ 87.57°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!