En este artículo aprenderás a conectar un termopar al Arduino UNO.
Hay varios tipos de termopares con una amplia gama de rango de temperatura de medición, sin embargo, no se puede conectar directamente un termopar a un Arduino UNO.
Los termopares generan una pequeña tensión cuando se somete la unión del termopar a una temperatura caliente o fría.
La amplitud de la tensión inducida es baja, y no se puede utilizar el ADC incorporado en el Arduino UNO para medir la temperatura.
El MAX31855 es un amplificador de termopar, y en este artículo, usted aprenderá cómo la interfaz de Arduino UNO a la MAX31855 para que pueda leer la temperatura utilizando un termopar.
Aprenderemos los tipos de termopares y cómo elegir el termopar adecuado para su aplicación específica.
Usted encontrará entender la información esencial sobre el amplificador de termopar MAX31855, y aprender a hacer las conexiones de cableado para construir un proyecto de trabajo utilizando Arduino UNO.
También voy a compartir con ustedes algunos ejemplos de código Arduino y una colección de preguntas frecuentes sobre el amplificador de termopar MAX31855 para aplicaciones de sensor de temperatura con respuestas.
Comencemos.
Componentes Necesarios Para Construir Arduino Y MAX31855 Proyecto Amplificador
Componentes de hardware
- Alambre Dupont x 1 juego
- Cable USB Arduino (para alimentar Arduino y programar) x 1
Software
Makerguides.com participa en el Programa de Asociados de Amazon Services LLC, un programa de publicidad de afiliados diseñado para proporcionar un medio para que los sitios ganen honorarios de publicidad mediante la publicidad y los enlaces a productos en Amazon.com.
Conceptos básicos del amplificador de termopar MAX31855
En esta sección se explican las características, especificaciones e interfaz de conexión disponibles en el módulo MAX31855.
El MAX31855 es un sofisticado convertidor termopar-digital con un convertidor analógico-digital de 14 bits incorporado.
El MAX31855 incorpora una detección y compensación de la unión fría, un controlador digital y una interfaz SPI para la comunicación con el microcontrolador anfitrión.
Existen varias versiones del amplificador de termopar MAX31855.
Cada versión está específicamente adaptada a un tipo concreto de termopar.
¿Qué es un termopar?
Los termopares son dispositivos eléctricos formados por dos uniones de metales distintos. La unión produce la tensión proporcional a la temperatura.
Los termopares no necesitan excitación externa. Los termopares se utilizan en procesos industriales, hornos, automóviles, etc.
Existen distintos tipos de termopares. He resumido los tipos de termopares en la siguiente tabla.
Tipo de termopar | Combinación de aleaciones | Rango de temperatura | Aplicaciones específicas |
Tipo K | Cromel / Alumel | 0 ℃ a 1260 ℃ | Atmósfera neutra |
Tipo J | Hierro / Constanton | 0 ℃ a 760 ℃ | Vacío, atmósfera reductora y oxidante |
Tipo T | Cobre / Constanton | - 200 ℃ a 370 ℃ | Condiciones de vacío y atmósfera reductora |
Tipo E | Cromel / Constanton | 0 ℃ a 870 ℃ | Atmósfera continuamente oxidante e inerte |
Tipo N | Nicrosil / Nisil | 0 ℃ a 1260 ℃ | Cuando se necesita una vida útil más larga y estabilidad |
Tipo S/R | Platino / Platino (13% Rodio) | 538 ℃ a 1481℃ | Aplicaciones de alta temperatura |
Tipo B | Platino (6% Rodio) / Platino (30% Rodio) | 871 ℃ a 1704 ℃ | Aplicaciones de alta temperatura |
Cada termopar tiene una sensibilidad diferente. En la tabla siguiente, veamos los tipos de termopar y la sensibilidad medida en µV por ℃.
Tipo de termopar | Sensibilidad ( µV / ℃ ) | Sensibilidad de la unión fría ( µV / ℃ ) |
K | 41.276 | 40.73 |
J | 57.953 | 52.136 |
N | 36.256 | 27.171 |
S | 9.587 | 6.181 |
T | 52.18 | 41.56 |
E | 76.373 | 44.123 |
R | 10.506 | 6.158 |
Descripción de la clavija
El MAX31855 es un IC de ocho pines. He resumido los detalles de los pines en la siguiente tabla.
Número de pin | Pin Función | Pin Función |
1 | GND | Tierra |
2 | T- | Entrada de termopar |
3 | T+ | Entrada de termopar |
4 | VCC | Tensión de alimentación |
5 | SCK | Entrada de reloj serie |
6 | CS# | Selección de chip activa baja. Ponga CS# bajo para habilitar la interfaz serie |
7 | SO | Salida de datos en serie |
8 | DNC | No conectar |
A continuación se muestra el diagrama de bloques del amplificador de termopar MAX31855.
El diagrama de bloques funcional revela que el chip tiene un amplificador interno que amplifica la tensión generada por el termopar.
El ADC convierte la tensión de salida del amplificador en tensión digital.
El controlador digital se comunica con el host a través de SPI y transfiere los valores del ADC.
El siguiente diagrama de bloques muestra el MAX31855 típico y una interfaz host.
El MAX31885 es un módulo alimentado a 3,3 V. Si desea conectarlo a una alimentación de 5 V, deberá utilizar un regulador de 5 V a 3,3 V. El CI consume típicamente 900 µA.
Cada MAX31855 está sintonizado explícitamente para un tipo de termopar.
Debe elegir el amplificador de termopar MAX31855 adecuado.
Por ejemplo, el chip MAX31855K está ajustado para funcionar con un termopar de tipo K.
Aquí está la lista de variantes de MAX31885 IC
- MAX31855K
- MAX31885J
- MAX31885N
- MAX31855T
- MAX31855E
- MAX31855R
- MAX31855S
-> Lea nuestra guía sobre lo que puede construir con Adruino.
Instrucciones paso a paso para conectar el amplificador de termopar MAX31855
En esta sección, vamos a construir un proyecto utilizando Arduino UNO y el amplificador de termopar MAX31855.
Las líneas SPI del módulo MAX31855 están disponibles para conectarse al Arduino UNO.
Empecemos con las conexiones de hardware.
A continuación se muestra el tablero que utilizaremos para completar las conexiones.
CLK (entrada de reloj) es el pin de salida del Arduino UNO. El pin CLK es el pin de entrada para el amplificador de termopar.
DO (Data Output) es una salida del amplificador. El DO es el pin de entrada para el Arduino UNO.
CS (chip select) es el pin de entrada para el módulo MAX31855.
En nuestro ejemplo, el pin CLK va al pin 5 del UNO. Los pines DO y CS se conectan a los pines 3 y 4, respectivamente.
¿Cómo conectar el amplificador de termopar MAX31855 al Arduino UNO?
A continuación se muestra la guía paso a paso para completar las conexiones de hardware necesarias para conectar el Arduino y el módulo amplificador de termopar MAX31855.
Paso 1: Comience con las conexiones GND.
Puedes conectar cualquier pin GND disponible en la placa Arduino UNO.
Conecta el pin de tierra del sensor MAX31855 al pin GND del Arduino.
Empiece siempre por las conexiones a tierra.
Conectar primero las patillas GND evita daños accidentales en las placas.
Paso 2: Conectar la clavija CS
Conecta el pin 4 del Arduino UNO al pin CS del módulo.
Paso 3: Conectar el pin de salida de datos
Conecta el pin 3 del Arduino UNO al pin DO del MAX31855.
Paso 4: Conectar la clavija de alimentación
Conecta el pin de 5 V del Arduino UNO al pin VIN del amplificador de termopar MAX31855.
Paso 5: Conectar el pin Clock
Conecta el pin CLK del MAX31855 al pin 5 del UNO. Conecta el sensor termopar al sensor del MAX31855.
Ahora ha completado las conexiones necesarias para comunicarse con el termopar.
En la siguiente sección encontrarás el esquema de Arduino que puedes utilizar.
-> Lee nuestro artículo sobre ¿Es fácil aprender Arduino?
Arduino Ejemplo de código para el proyecto Arduino y MAX31855
En esta sección, recorreremos el código Arduino de ejemplo para verificar el módulo amplificador de termopar MAX31855.
Tienes que instalar la librería MAX31855 de Adafruit para usar el código de ejemplo.
- Vaya a Herramientas → Gestionar bibliotecas
- Busca el Adafruit MAX31855 en la barra de búsqueda y pulsa Enter
- Por favor, pulse el botón INSTALL una vez localizada la librería MAX31855 de Adafruit
Es posible que se le pida que instale bibliotecas dependientes. Diga Sí a todas.
Proyecto 1: Imprimir lecturas de termopar en el terminal serie
El código Arduino a continuación lee los datos del sensor a través de SPI. Los datos se imprimirán en el terminal serie.
Puedes abrir el terminal para ver los mensajes.
/*************************************************** This is an example for the Adafruit Thermocouple Sensor w/MAX31855K Designed specifically to work with the Adafruit Thermocouple Sensor ----> https://www.adafruit.com/products/269 These displays use SPI to communicate, 3 pins are required to interface Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit! Written by Limor Fried/Ladyada for Adafruit Industries. BSD license, all text above must be included in any redistribution ****************************************************/ #include#include "Adafruit_MAX31855.h" // Default connection is using software SPI, but comment and uncomment one of // the two examples below to switch between software SPI and hardware SPI: // Example creating a thermocouple instance with software SPI on any three // digital IO pins. #define MAXDO 3 #define MAXCS 4 #define MAXCLK 5 // initialize the Thermocouple Adafruit_MAX31855 thermocouple(MAXCLK, MAXCS, MAXDO); // Example creating a thermocouple instance with hardware SPI // on a given CS pin. //#define MAXCS 10 //Adafruit_MAX31855 thermocouple(MAXCS); // Example creating a thermocouple instance with hardware SPI // on SPI1 using specified CS pin. //#define MAXCS 10 //Adafruit_MAX31855 thermocouple(MAXCS, SPI1); void setup() { Serial.begin(9600); while (!Serial) delay(1); // wait for Serial on Leonardo/Zero, etc Serial.println("MAX31855 test"); // wait for MAX chip to stabilize delay(500); Serial.print("Initializing sensor..."); if (!thermocouple.begin()) { Serial.println("ERROR."); while (1) delay(10); } // OPTIONAL: Can configure fault checks as desired (default is ALL) // Multiple checks can be logically OR'd together. // thermocouple.setFaultChecks(MAX31855_FAULT_OPEN | MAX31855_FAULT_SHORT_VCC); // short to GND fault is ignored Serial.println("DONE."); } void loop() { // basic readout test, just print the current temp Serial.print("Internal Temp = "); Serial.println(thermocouple.readInternal()); double c = thermocouple.readCelsius(); if (isnan(c)) { Serial.println("Thermocouple fault(s) detected!"); uint8_t e = thermocouple.readError(); if (e & MAX31855_FAULT_OPEN) Serial.println("FAULT: Thermocouple is open - no connections."); if (e & MAX31855_FAULT_SHORT_GND) Serial.println("FAULT: Thermocouple is short-circuited to GND."); if (e & MAX31855_FAULT_SHORT_VCC) Serial.println("FAULT: Thermocouple is short-circuited to VCC."); } else { Serial.print("C = "); Serial.println(c); } //Serial.print("F = "); //Serial.println(thermocouple.readFahrenheit()); delay(1000); }
Proyecto 2: Mostrar los datos de MAX31855 IC en la pantalla LC
El código Arduino a continuación lee el amplificador de termopar MAX31855 y muestra el resultado en el módulo LCD.
/*************************************************** This is an example for the Adafruit Thermocouple Sensor w/MAX31855K Designed specifically to work with the Adafruit Thermocouple Sensor ----> https://www.adafruit.com/products/269 These displays use SPI to communicate, 3 pins are required to interface Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit! Written by Limor Fried/Ladyada for Adafruit Industries. BSD license, all text above must be included in any redistribution ****************************************************/ #include#include #include "Adafruit_MAX31855.h" #include // Example creating a thermocouple instance with software SPI on any three // digital IO pins. #define MAXDO 3 #define MAXCS 4 #define MAXCLK 5 // Initialize the Thermocouple Adafruit_MAX31855 thermocouple(MAXCLK, MAXCS, MAXDO); // initialize the library with the numbers of the interface pins LiquidCrystal lcd(7, 8, 9, 10, 11, 12); void setup() { #ifndef ESP8266 while (!Serial); // will pause Zero, Leonardo, etc until serial console opens #endif Serial.begin(9600); // set up the LCD's number of columns and rows: lcd.begin(16, 2); lcd.clear(); lcd.print("MAX31855 test"); // wait for MAX chip to stabilize delay(500); if (!thermocouple.begin()) { lcd.print("ERROR."); while (1) delay(10); } lcd.print("DONE."); } void loop() { // basic readout test, just print the current temp lcd.clear(); lcd.setCursor(0, 0); lcd.print("Int. Temp = "); lcd.println(thermocouple.readInternal()); Serial.print("Int. Temp = "); Serial.println(thermocouple.readInternal()); double c = thermocouple.readCelsius(); lcd.setCursor(0, 1); if (isnan(c)) { lcd.print("T/C Problem"); } else { lcd.print("C = "); lcd.print(c); lcd.print(" "); Serial.print("Thermocouple Temp = *"); Serial.println(c); } delay(1000); }
Preguntas frecuentes sobre el amplificador MAX31855 sensor de termopar y proyectos Arduino
He incluido una lista de las preguntas más frecuentes sobre los proyectos construidos con Arduino y el módulo amplificador de termopar MAX31855.
Si tiene más preguntas, hágalas en la sección de comentarios.
Estaré encantado de responderles.
1. ¿Qué hace un MAX31855?
MAX31855 es un termopar al sensor digital. Si necesita detectar la temperatura, puede utilizar el módulo MAX31855 para interconectar el termopar a sus proyectos.
Los termopares admiten una amplia gama de temperaturas. MAX13855 tenía un ADC incorporado.
Puedes conectar el Arduino directamente al MAX31855 para leer los valores del ADC.
2. ¿Se puede utilizar un termopar con un Arduino?
Puede utilizar el termopar para controlar la temperatura. El termopar se forma utilizando dos uniones metálicas diferentes.
Las propiedades físicas de la intersección generan una pequeña tensión en función de la temperatura de la unión.
El voltaje es minúsculo. Sería mejor si tuvieras un amplificador de termopar dedicado como MAX31855 IC.
El MAX31855 convierte la pequeña tensión en valores digitales, que puedes leer con Arduino.
3. ¿Cómo funcionan los termopares?
Se utilizan termopares para medir la temperatura. Los sensores de temperatura convencionales no funcionan a más de 85 ℃ o 125 ℃ debido a las limitaciones de la tecnología en la que se basan.
Puedes construir un termopar juntando dos metales distintos y formando una unión.
La unión formada generará una pequeña cantidad de tensión cada vez que caliente o enfríe el termopar.
Puede medir la tensión y traducirla al valor de la temperatura.
El MAX31855 es un módulo amplificador de termopar para leer los valores digitales correspondientes a la temperatura medida.
4. ¿Qué es un amplificador de termopar?
El amplificador del termopar amplifica la pequeña tensión que genera la unión del termopar.
El voltaje es mínimo, y un ADC en el Arduino UNO no tiene suficiente resolución para leer el pequeño voltaje.
Por lo tanto, necesitamos un amplificador de termopar que pueda amplificar la pequeña señal generada hasta un valor razonable para que los ADC puedan muestrear la tensión.
El MAX31855 es un amplificador de termopar con compensación de temperatura.
Puede utilizar el amplificador de termopar MAX31855 para leer la temperatura utilizando el termopar.
->Consulta nuestra guía de los 12 mejores cursos online de Arduino
Conclusión
En este artículo, cubrimos el funcionamiento y las características del amplificador de termopar MAC31855.
Conectamos el módulo al Arduino UNO a través de la interfaz serie.
Ahora debería poder verificar las conexiones y programar la placa con los ejemplos de bocetos de Arduino proporcionados para el MAX31855.
El amplificador de termopar es imprescindible cuando se utilizan termopares para medir la temperatura.
He utilizado un termopar y el MAX31855 en un proyecto de hobby relacionado con un horno.
El horno se utilizaba para calentar las vasijas de barro.
Fue divertido aprender y utilizar el módulo MAX31855 en el proyecto con la necesidad absoluta de sensores de termopar.
Si tienes algún problema, házmelo saber en la sección de comentarios. Si tienes algún comentario para mejorar el artículo, compártelo en la sección de comentarios.
Sus valiosas aportaciones me ayudan a mejorar la calidad de los artículos y a publicar más artículos útiles.
No olvides compartir el artículo con tus compañeros entusiastas de Arduino.
I am Puneeth. I love tinkering with open-source projects, Arduino, ESP32, Pi and more. I have worked with many different Arduino boards and currently I am exploring, Arduino powered LoRa, Power line communication and IoT.
Must
Tuesday 11th of July 2023
When you connect 2 max31855 thermocouple sensors to a single arduino, the output from the serial monitor gives 0 (zero) value in 2 max31855 thermocouple sensors. I haven't been able to fix the problem. Can you help me? Thanks.