Arduino Nano - Sistema de calefacción

Este tutorial te enseña cómo usar Arduino Nano para controlar la temperatura de una habitación utilizando un elemento calefactor y un sensor de temperatura DS18B20.

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×Relé
1×Elemento Calefactor
1×Adaptador de Corriente 12V
1×Conector de Alimentación DC
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 elemento calefactor y del sensor de temperatura DS18B20

El elemento calefactor utilizado en este tutorial requiere una fuente de alimentación de 12 V. Cuando se suministra energía al elemento calefactor, éste emitirá calor. Para controlar el elemento calefactor con Arduino Nano, debe utilizarse un relé como intermediario.

Si no estás familiarizado con el sensor de temperatura y el elemento calefactor (disposición de pines, funcionalidad, programación ...), los siguientes tutoriales pueden ayudarte:

Diagrama de Cableado

  • Diagrama de cableado utilizando una protoboard.
Diagrama de cableado del elemento calefactor para Arduino Nano

This image is created using Fritzing. Click to enlarge image

  • Diagrama de cableado usando un adaptador de terminal (recomendado).
Diagrama de cableado para el control de un elemento calefactor con Arduino Nano

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 complicaciones. Este adaptador incluye una resistencia integrada, eliminando la necesidad de una resistencia adicional en el cableado.

Cómo funciona el sistema

  • Arduino Nano obtiene la temperatura del sensor de temperatura.
  • Si la temperatura cae por debajo de un límite inferior determinado, Arduino Nano activa los elementos calefactores.
  • Cuando la temperatura excede un límite superior, Arduino Nano desactiva el elemento calefactor.

El bucle se repite continuamente.

Código de Arduino Nano para un sistema de enfriamiento con sensor DS18B20

/* * 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-heating-system */ #include <OneWire.h> #include <DallasTemperature.h> #define RELAY_PIN A5 // The Arduino Nano pin connected to the IN pin of relay module #define DS18B20_PIN 2 // The Arduino Nano pin connected to DS18B20 sensor's DQ pin const int THRESHOLD_OFF = 20; // upper threshold of temperature, change to your desire value const int THRESHOLD_ON = 15; // lower threshold of temperature, change to your desire value OneWire oneWire(DS18B20_PIN); // setup a oneWire instance DallasTemperature DS18B20(&oneWire); // pass oneWire to DallasTemperature library float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. DS18B20.begin(); // initialize the sensor pinMode(RELAY_PIN, OUTPUT); // initialize digital pin as an output } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures temperature = DS18B20.getTempCByIndex(0); // read temperature in Celsius if (temperature > THRESHOLD_OFF) { Serial.println("The heating element is turned off"); digitalWrite(RELAY_PIN, LOW); // turn off } else if (temperature < THRESHOLD_ON) { Serial.println("The heating element is turned on"); digitalWrite(RELAY_PIN, HIGH); // turn on } delay(500); }

En el código mencionado anteriormente, el Arduino Nano activará el elemento calefactor cuando la temperatura sea inferior a 15 °C y lo mantendrá encendido hasta que la temperatura supere los 20 °C.

Pasos R\u00e1pidos

  • Conecta Arduino Nano a una computadora usando un cable USB
  • Inicia el IDE de Arduino, selecciona la placa y el puerto correctos
  • Haz clic en el icono Bibliotecas en la barra izquierda del IDE de Arduino.
  • Busca “Dallas”, luego localiza la biblioteca DallasTemperature creada por Miles Burton.
  • Haz clic en el botón Instalar para agregar la biblioteca.
Librería 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 con el IDE de Arduino.
  • Haz clic en el botón Subir del IDE de Arduino para compilar y subir el código al Arduino Nano.
  • Cambia la temperatura del entorno alrededor del sensor.
  • Consulta la temperatura del elemento calefactor y la temperatura de la habitación.

Conocimientos Avanzados

La técnica de control descrita anteriormente se denomina controlador de encendido/apagado, que también es conocido como un señalizador o un controlador 'bang-bang'. Es muy fácil de poner en práctica.

Existe un enfoque alternativo conocido como el controlador PID. Este método de control de temperatura es más estable; sin embargo, es complicado de comprender y llevar a la práctica. Como resultado, el controlador PID no se usa ampliamente.

※ 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!