Conexión del módulo de termopar MAX6675 a Arduino

Si quieres medir la temperatura con un Arduino, hay muchos sensores para elegir. Las opciones populares incluyen la serie DHTxx, DS18B20, LM35 y TMP36, cada una de las cuales ofrece características y capacidades únicas para satisfacer las necesidades específicas de su proyecto.

Pero, ¿qué pasa si tomamos la temperatura de algo tan caliente como un volcán (que puede alcanzar más de 1000 °C o 1800 °F) o algo súper frío como el nitrógeno líquido (que puede alcanzar alrededor de -195,8 °C o -320)? ¿para medir? °F)? En tales casos, el sensor de temperatura normal se derrite o se congela por completo.

Entonces, ¿cómo se miden cosas extremadamente calientes o frías? Con un ingenioso par de cables eléctricos llamado Par termoeléctrico. Un termopar es un tipo de sensor de temperatura que utiliza el efecto termoeléctrico para medir temperaturas que oscilan entre -330°F y +2460°F.

En este tutorial, aprenderá cómo conectar el módulo de termopar MAX6675, uno de los módulos de termopar más utilizados, económicos pero precisos, a un Arduino. Pero primero, repasemos rápidamente los conceptos básicos de los termopares.

Conceptos básicos de termopares

Un termopar se compone de dos cables metálicos diferentes (el término «diferente» simplemente significa «diferente»).

Conexión del módulo de termopar MAX6675 a Arduino

Los cables metálicos están conectados entre sí en un solo punto, generalmente en la punta del termopar, que se llama Intersección caliente, Nodo de medición, Punto de capturao Conexión de sensores. Como sugiere el nombre, esta unión está expuesta a la fuente de calor de interés.

El extremo opuesto de los alambres metálicos se llama punto de comparación y está conectado al dispositivo de medición. Normalmente, el punto frío no está expuesto a la misma energía térmica que el punto caliente.

Efecto termoeléctrico

Todos los termopares funcionan de la misma manera: producen un pequeño voltaje cuando se exponen al calor.

Cuando calientas una pieza de metal, el calor excita los electrones del metal y hace que se tambaleen. A medida que el metal se calienta, más electrones tienden a “difundirse” y moverse hacia el extremo más frío del metal.

Conexión del módulo de termopar MAX6675 a Arduino

Esto hace que el extremo más caliente se cargue ligeramente positivamente y el extremo más frío se cargue ligeramente negativamente, creando una diferencia de voltaje. Esto se conoce como Efecto termoeléctrico o efecto SeebeckLleva el nombre del científico alemán Thomas Seebeck, quien descubrió este fenómeno en 1821.

El termopar funciona

Un termopar funciona basándose en el movimiento de electrones en sus cables metálicos provocado por la diferencia de calor entre las uniones frías y calientes.

Si los dos cables del termopar estuvieran hechos del mismo metal, como cobre, los electrones en ambos cables se alejarían del calor y se acumularían en cantidades iguales en los extremos fríos, lo que no daría como resultado una diferencia de voltaje mensurable.

Conexión del módulo de termopar MAX6675 a Arduino

Pero si recuerdas, los termopares están hechos de dos tipos diferentes de cables metálicos. Entonces, si dos cables de termopar estuvieran hechos de diferentes materiales, como uno de cobre y otro de hierro, los metales conducirían el calor de manera diferente, lo que daría como resultado un gradiente de temperatura significativo. Esto conduce a una acumulación diferente de electrones en los extremos fríos, lo que da como resultado una diferencia de voltaje medible.

Conexión del módulo de termopar MAX6675 a Arduino

Esta diferencia de voltaje es muy pequeña. El cambio de voltaje real por grado Celsius es pequeño. Por ejemplo, para un termopar tipo K, el cambio es de aproximadamente 41 µV/°C.

Cables de termopar

Cuando se exponen al calor, los electrones de cada uno de los cables del termopar reaccionan de manera diferente y se mueven a diferentes velocidades.

El cable en el que se acumulan más electrones en la unión fría se llama cable negativo, mientras que el cable en el que se acumulan menos electrones en la unión fría se llama cable positivo.

Esta diferencia de carga entre los cables positivo y negativo se puede medir y utilizar para determinar la temperatura en la unión caliente.

Termopar tipo K

Hay diferentes tipos de termopares, p.e. B. Tipo J, Tipo K, Tipo E, Tipo T, etc. según la combinación de metales o aleaciones utilizadas para los dos cables. Cada tipo de termopar tiene su propia función característica, rango de temperatura, precisión y aplicación.

Conexión del módulo de termopar MAX6675 a Arduino

Sin embargo, el termopar más utilizado en aplicaciones industriales es el tipo K porque responde de manera predecible en un amplio rango de temperaturas (aproximadamente -328 °F a +2300 °F) y tiene una sensibilidad de aproximadamente 41 μV/°C. Consta de un cable positivo de Chromel (aleación de níquel-cromo) y un cable negativo de Alumel (aleación de níquel-aluminio).

Digitalizador de termopar

Para que el termopar sea utilizable, es necesario calibrarlo probándolo a temperaturas conocidas y registrando los voltajes producidos. Luego, mediante una fórmula, se puede calcular la temperatura en función del voltaje medido.

Aquí es donde entran en juego los circuitos integrados digitalizadores de termopar como el IC MAX6675. Estos circuitos integrados (CI) se utilizan para compensar las uniones frías y digitalizar la señal recibida de un termopar.

Módulo termopar MAX6675

El módulo de termopar MAX6675 generalmente incluye una placa de conexión MAX6675 y una sonda de termopar tipo K. Descubramos más sobre ellos.

fuga MAX6675

En el corazón de la ruptura se encuentra un CI digitalizador de termopar tipo K compensado por unión fría de Microchip, el MAX6675.

Conexión del módulo de termopar MAX6675 a Arduino

La ruptura toma un termopar estándar tipo K en un extremo, digitaliza la temperatura medida y envía esos datos a través de una interfaz SPI en el otro extremo, interpretando los datos y traduciéndolos para que usted los lea.

El IC MAX6675 cuenta con un convertidor analógico a digital (ADC) de 12 bits, lo que significa que el IC puede resolver temperaturas de hasta 0,25 °C (resolución de 12 bits).

El MAX6675 puede medir temperaturas que oscilan entre 0°C y +1024°C con una precisión de ±3°C. Sin embargo, tenga en cuenta que el rango depende del tipo de sonda utilizada.

Además de su bajo costo, tamaño pequeño y amplio rango, el MAX6675 opera de +3,0 V a +5,5 V y consume aproximadamente 700 µA. La corriente máxima que puede consumir es de aproximadamente 1,5 mA.

Sonda termopar tipo K

La sonda de termopar incluida con el módulo mide aproximadamente 18 pulgadas de largo y tiene un rango de medición de 0 °C a 80 °C.

Conexión del módulo de termopar MAX6675 a Arduino

El terminal rojo de la sonda es el terminal positivo hecho de Chromel (aleación de níquel-cromo) y el terminal azul es el terminal negativo hecho de Alumel (aleación de níquel-aluminio).

La sonda cuenta con aislamiento de fibra de vidrio, un material conocido por soportar altas temperaturas y condiciones duras. Esto lo convierte en una opción adecuada para una variedad de proyectos.

La sonda termina en una conexión roscada M6. Este tipo de conexión permite fijar el termopar a un objeto, como un disipador de calor, donde se puede atornillar o asegurar con una tuerca.

Especificaciones técnicas

Aquí están las especificaciones:

Tensión de funcionamiento 3,0 a 5,5 V
interfaz SPI de alta velocidad
Consumo actual 700 µA (típico), 1,5 mA (máx.)
Rango de temperatura 0 – 1024 °C (de MAX6675)0 – 80 °C (de sonda incluida)
exactitud ±3°C
resolución 12 bits (0,25 °C)
tiempo de conversión ~170 ms

Para obtener más información sobre el IC MAX6675, consulte la siguiente hoja de datos.

Configuración de pines del módulo MAX6675

Ahora veamos el pinout.

Conexión del módulo de termopar MAX6675 a Arduino

Puerto de entrada

VCC es el pin de alimentación. Conéctelo a una fuente de alimentación en el rango de 3V a 5,5V.

Tierra es el pin de tierra.

SCK es el pin del reloj SPI.

C.S. es el pin de selección de chip. Tire de este pin hacia abajo y aplique una señal de reloj a SCK para leer los resultados en SO. Si arrastra el valor hacia abajo, cualquier proceso de conversión se detendrá inmediatamente. Inicie un nuevo proceso de conversión arrastrándolo hacia arriba.

ENTONCES es la salida de datos en serie/pin MISO para datos de 12 bits enviados desde el módulo a su Arduino. Una cadena de ceros significa que la lectura del termopar es 0°C. Una cadena de todos 1 significa que la lectura del termopar es +1023,75 °C.

Conexión de termopar

En el otro lado del módulo hay un bloque de terminales de 2 pines para conectar una sonda de termopar tipo K.

Aquí es donde conecta el cable Alumel (azul) del termopar tipo K.

+ Aquí es donde conectas el cable Chromel (rojo) del termopar tipo K.

Cableado del módulo MAX6675 a un Arduino

Conectemos el módulo MAX6675 al Arduino. Las conexiones son sencillas.

Primero, conecte el pin VCC del módulo a 5 V en el Arduino y el pin GND a tierra.

Ahora conecte los tres pines digitales para usarlos como interfaz SPI. En el ejemplo utilizamos los pines 4, 5 y 6.

Finalmente, conecte la sonda termopar al módulo. Conecte el cable rojo (cable Chromel) del termopar al puerto “+” del módulo y el cable azul (cable Alumel) al puerto “-”.

La siguiente tabla enumera las conexiones de pines:

Módulo MAX6675 arduino
VCC 5V
Tierra Tierra
SCK 6
C.S. 5
ENTONCES 4

La siguiente imagen muestra cómo se construye el circuito.

Conexión del módulo de termopar MAX6675 a Arduino

Dado que el módulo consume muy poca energía (menos de 1,5 mA), es posible alimentarlo a través de un pin de salida digital en el microcontrolador. Si elige este método y apaga el MAX6675 entre mediciones, debe esperar unos segundos después de volver a encenderlo antes de realizar una medición.

Instalación de biblioteca

Hay una biblioteca realmente excelente disponible para trabajar con el módulo MAX6675. Debe descargarlo e instalarlo en su IDE de Arduino.

Para instalar la biblioteca, navegue hasta Bosquejo > Incluir biblioteca > Administrar bibliotecas… Espere a que el administrador de la biblioteca descargue el índice de la biblioteca y actualice la lista de bibliotecas instaladas.

Conexión del módulo de termopar MAX6675 a Arduino

Filtra tu búsqueda escribiendo 'MAX6675'. buscar Biblioteca MAX6675 de Adafruta. Haga clic en esta entrada y luego seleccione «Instalar».

Conexión del módulo de termopar MAX6675 a Arduino

código de ejemplo de arduino

Ahora que tenemos todo conectado, ejecutemos un boceto simple para probar rápidamente el módulo MAX6675. Continúe y cárguelo en su Arduino. Se debe mostrar la temperatura ambiente impresa en el puerto serie.

#include "max6675.h"

// Define the Arduino pins, the MAX6675 module is connected to
int SO_PIN = 4;  // Serail Out (SO) pin
int CS_PIN = 5;  // Chip Select (CS) pin
int SCK_PIN = 6; // Clock (SCK) pin

// Create an instance of the MAX6675 class with the specified pins
MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN);

void setup() {
  Serial.begin(9600);
  delay(500);
}

void loop() {
  // Read the current temperature and print it to the serial monitor

  // Read the temperature in Celsius
  Serial.print("Temperature: ");
  Serial.print(thermocouple.readCelsius());
  Serial.print("xC2xB0"); // shows degree symbol
  Serial.print("C  |  ");

  // Read the temperature in Fahrenheit
  Serial.print(thermocouple.readFahrenheit());
  Serial.print("xC2xB0"); // shows degree symbol
  Serial.println("F");

  delay(1000);
}

Una vez cargado el boceto, abra su monitor serie y establezca la velocidad en baudios en 9600 bps. Intente colocar el termopar en contacto con el material que se está midiendo. Debería ver que la temperatura medida comienza a fluir.

Conexión del módulo de termopar MAX6675 a Arduino

Explicación del código:

El boceto comienza incluyendo el archivo de encabezado MAX6675. Permite que el código Arduino interactúe con el módulo MAX6675.

#include "max6675.h"

En el mismo rango global, tres números enteros SO_PIN, CS_PIN Y SCK_PIN declarado que indica el pin Arduino que conectó al pin Serial Out (SO), al pin Chip Select (CS) y al pin Clock (SCK) del módulo.

int SO_PIN = 4;  // Serail Out (SO) pin
int CS_PIN = 5;  // Chip Select (CS) pin
int SCK_PIN = 6; // Clock (SCK) pin

A continuación, se llama una instancia de la clase MAX6675. thermocouple creado. A esto nos referiremos a partir de ahora cuando leamos el módulo. Inicializa el objeto termopar con los pines SCK, CS y SO definidos.

MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN);

La sección de configuración del código inicializa la comunicación en serie con la computadora a una velocidad de 9600 baudios.

void setup() {
  Serial.begin(9600);
  delay(500);
}

En el loop(), leemos del termopar MAX6675 y lo enviamos al monitor en serie. Para ello se utilizan dos funciones de biblioteca:

  • thermocouple.readCelsius(): Devuelve la temperatura en grados Celsius.
  • thermocouple.readFahrenheit(): Devuelve la temperatura en Fahrenheit.
Serial.print("Temperature: ");
Serial.print(thermocouple.readCelsius());
Serial.print("xC2xB0"); // shows degree symbol
Serial.print("C  |  ");

// Read the temperature in Fahrenheit
Serial.print(thermocouple.readFahrenheit());
Serial.print("xC2xB0"); // shows degree symbol
Serial.println("F");

El bucle funciona indefinidamente, leyendo e imprimiendo la temperatura repetidamente cada segundo.

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

5 comentarios en «Conexión del módulo de termopar MAX6675 a Arduino»

  1. ¡Buenísimo! Este tutorial me dio la confianza y la claridad que necesitaba para conectar mi módulo de termopar MAX6675 a mi Arduino. ¡Gracias por compartir esta información tan útil de forma tan accesible! 🙌🏼

Deja un comentario