Arduino Nano - Sensor de temperatura

Este tutorial te enseña cómo usar Arduino Nano y el sensor de temperatura DS18B20 de 1-Wire, impermeable, para medir la temperatura. Este sensor es rentable, fácil de usar y tiene un aspecto agradable en comparación con otras alternativas.

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables ATMEGA328P Nano Development Board
1×Cable USB A a Mini-B
1×Sensor de Temperatura DS18B20 (con Adaptador)
1×Sensor de Temperatura DS18B20 (sin Adaptador)
1×4.7 kΩ Resistor
1×Protoboard
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano

Or you can buy the following kits:

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 del sensor de temperatura

El sensor de temperatura DS18B20 tiene tres pines que deben estar conectados:

  • 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 y debe conectarse a un pin digital del Arduino Nano.

El sensor suele presentarse en dos variantes: un paquete TO-92 (que se asemeja a un transistor) y una sonda impermeable. En este tutorial utilizaremos la sonda impermeable.

Pinout del sensor de temperatura DS18B20

Conectar el sensor de temperatura DS18B20 con Arduino requiere una resistencia de pull-up, lo que resulta un poco engorroso. Sin embargo, algunos fabricantes facilitan las cosas al ofrecer un adaptador de cableado que viene equipado con una resistencia de pull-up integrada y un bloque de terminales con tornillo, reduciendo las molestias y haciéndolo más conveniente.

Diagrama de Cableado

  • Diagrama de cableado usando una protoboard.
Diagrama de cableado del sensor de temperatura para Arduino Nano

This image is created using Fritzing. Click to enlarge image

  • Diagrama de cableado que utiliza un adaptador de cableado (recomendado).
Diagrama de cableado Arduino Nano DS18B20

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Nano y otros componentes.

Recomendamos comprar un sensor DS18B20 junto con su adaptador de cableado para una configuración sin problemas. Este adaptador incluye una resistencia integrada, lo que elimina la necesidad de una resistencia adicional en el cableado. También lo probamos y funcionó bien.

Cómo programar para el sensor de temperatura DS18B20

  • Incluir la siguiente biblioteca:
#include <OneWire.h> #include <DallasTemperature.h>
  • Declara un objeto para OneWire, correspondiente al pin conectado al pin de datos del sensor. También declara un objeto para DallasTemperature.
OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature DS18B20(&oneWire); // pass oneWire to DallasTemperature library
  • Inicialice el sensor.
DS18B20.begin(); // initialize the sensor
  • Ejecute el comando para obtener temperaturas.
DS18B20.requestTemperatures();
  • Verifica la temperatura en grados Celsius.
temperature_C = DS18B20.getTempCByIndex(0);
  • Calcular Fahrenheit a partir de Celsius:
temperature_F = temperature_C * 9 / 5 + 32;

Código de Arduino Nano

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

Pasos R\u00e1pidos

  • Conecta un cable USB al Arduino Nano y al PC.
  • Abre el IDE de Arduino y selecciona la placa y el puerto adecuados.
  • Haz clic en el icono de Bibliotecas en la barra izquierda del IDE de Arduino.
  • Busca “Dallas”, luego localiza la biblioteca DallasTemperature creada por Miles Burton.
  • Presiona el botón Instalar para instalar la biblioteca DallasTemperature.
Biblioteca Dallas Temperature para Arduino Nano
  • Se le pedirá que instale la dependencia. Haga clic en el botón Instalar todo para instalar la biblioteca OneWire.
Biblioteca OneWire para Arduino Nano
  • Copia el código y ábrelo en Arduino IDE.
  • Haz clic en el botón Subir en Arduino IDE para enviar el código al Arduino Nano.
  • Coloca el sensor en agua caliente y en agua fría, o sosténlo en tu mano.
  • Consulta 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!