Skip to Content

Arduino And MAX31855 Thermocouple Amplifier

Arduino And MAX31855 Thermocouple Amplifier

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

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 termoparCombinación de aleacionesRango de temperaturaAplicaciones específicas
Tipo KCromel / Alumel0 ℃ a 1260 ℃Atmósfera neutra
Tipo JHierro / Constanton0 ℃ a 760 ℃Vacío, atmósfera reductora y oxidante
Tipo TCobre / Constanton- 200 ℃ a 370 ℃Condiciones de vacío y atmósfera reductora
Tipo ECromel / Constanton0 ℃ a 870 ℃Atmósfera continuamente oxidante e inerte 
Tipo N Nicrosil / Nisil0 ℃ a 1260 ℃Cuando se necesita una vida útil más larga y estabilidad 
Tipo S/RPlatino / Platino (13% Rodio)538 ℃ a 1481℃Aplicaciones de alta temperatura
Tipo BPlatino (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 termoparSensibilidad ( µV / ℃ )Sensibilidad de la unión fría ( µV / ℃ )
K41.27640.73
J57.95352.136
N36.25627.171
S9.5876.181
T52.1841.56
E76.37344.123
R10.5066.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 pinPin FunciónPin Función
1GNDTierra
2T-Entrada de termopar
3T+Entrada de termopar
4VCCTensión de alimentación
5SCKEntrada de reloj serie
6CS#Selección de chip activa baja. Ponga CS# bajo para habilitar la interfaz serie
7SOSalida de datos en serie
8DNCNo conectar

A continuación se muestra el diagrama de bloques del amplificador de termopar MAX31855.

diagrama 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.

siguiente diagrama muestra el típico MAX31855

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

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.

Amplificador de termopar MAX31855

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.

Comienza 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

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

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

Conecte 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

Conectar el pin Reloj

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.

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. 

  1. Vaya a Herramientas → Gestionar bibliotecas
  2. Busca el Adafruit MAX31855 en la barra de búsqueda y pulsa Enter
  3. 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.

instala la librería MAX31855 de Adafruit

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.

#include "SPI.h"
#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.

#include "SPI.h"
#include "Wire.h"
#include "Adafruit_MAX31855.h"
#include "LiquidCrystal.h"
 
// 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.

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.

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.