Descripción
El MAX6675 módulo interfaz para termopar tipo K permite acondicionar la señal analógica que entrega un sensor de tipo termopar para que pueda ser leída de forma digital por un microcontrolador.
Dentro de el MAX6675 se encuentra la electrónica necesaria para amplificar, compensar y convertir a digital el voltaje generado por el termopar, lo que hace muy sencilla la tarea de conectar un sensor de este tipo a un microcontrolador. El único “pero” es que este circuito solo se consigue en encapsulado SOIC, por lo que no es tan fácil usarlo en el protoboard, sin embargo, en este módulo encontramos el MAX6675 con toda la electrónica necesaria y las terminales apropiadas para facilitar su uso en prototipos.
El módulo interfaz para termopar tipo K es una excelente forma de comenzar a medir temperaturas elevadas con cualquier microcontrolador, ya que incluye el MAX6675 en una práctica tarjeta breakout y un termopar tipo K de forma que puedas comenzar a experimentar cuanto antes.
Características del MAX6675 módulo interfaz para termopar tipo K
- Circuito base: MAX6675
- Marca: Genérico
- Tipo de interfaz: Digital
- Estándar de comunicaciones: SPI (solo lectura)
- Voltaje de alimentación: 3.0 a 5.5 VDC
- Corriente máxima en operación: 1.5 mA
- Corriente típica en reposo: 0.7 mA
- Resolución: 12 bits (0.25 °C)
- Temperatura máxima: 1024 °C
- Frecuencia de reloj SPI: 4.3 Mhz
- Tiempo de conversión: 0.22 s (máximo)
- Compensación de unión fria
- Detección de termopar abierto o desconectado
- El módulo MAX6675 incluye terminales de tipo tornillo
- Incluye termopar tipo K
¿Que es el MAX6675?
El circuito integrado MAX6675 es un convertidor analógico a digital especializado para termopar tipo K. Con este módulo es posible conectar fácilmente un termopar a cualquier microcontrolador a través de una interfaz SPI unidireccional.
Existen muchos sensores de temperatura en el mercado, sin embargo las soluciones basadas en silicio, como el LM35 por citar un ejemplo que sea familiar, están normalmente limitados a un rango de temperatura por debajo de los 150 grados centígrados. Lo que los deja fuera de consideración cuando debemos monitorear algún proceso con temperaturas superiores.
Afortunadamente los termopares pueden salvarnos el día, permitiéndonos mediciones en un rango más amplio, usualmente de varias centenas de grados centígrados y sin un costo excesivo.
¿Cómo funciona el MAX6675 módulo interfaz para termopar tipo K?
El MAX6675 es un circuito sofisticado convertidor de termopar a digital. Integra un convertidor analógico a digital (ADC) de 12 bits, también integra la compensación de unión fría, un controlador digital y una interfaz serial digital compatible con SPI y la lógica de control asociada a esta.
El circuito integrado está diseñado para trabajar en conjunto con un microcontrolador externo o cualquier otro dispositivo inteligente que provee la lógica necesaria para el control o monitoreo de procesos térmicos.
El diagrama a bloques del circuito puede apreciarse en la siguiente imagen:
Teoría de funcionamiento del termopar
Un termopar es un dispositivo formado por la unión de dos metales distintos que produce un voltaje (efecto Seebeck), que es función de la diferencia de temperatura entre uno de los extremos denominado “punto caliente” o unión caliente o de medida y el otro denominado “punto frío” o unión fría o de referencia.
Este tipo de sensores son ampliamente utilizados en aplicaciones de instrumentación industrial debido principalmente a su bajo costo y su amplio rango de temperaturas. La principal desventaja de los termopar es su exactitud, ya que rara vez se consiguen errores menores que 1 grado centígrado.
En la siguiente imagen podemos ver un típico termopar tipo K.
Para conocer los tipos de termopares que existen, dependiendo del material con el que están elaborados, te recomendamos revisar este enlace, donde se explica más a detalle el funcionamiento del termopar y los tipos que existen en el mercado así como su composición.
Transmisión de los datos a un microcontrolador
El MAX6675 se conecta con un microcontrolador mediante una interfaz de 3 lineas compatible con el estándar SPI. El formato en el que el MAX6675 envía datos al microcontrolador es el siguiente.
Como se puede observar, además de la palabra digital correspondiente a la temperatura tenemos un bit (2) que nos indica si el termopar esta abierto (desconectado o roto, por ejemplo) que podemos usar para tomar acciones correctivas o informativas en el software, como disparar una alarma o mostrar un aviso. También hay una buena cantidad de bits que no tienen significado.
Tutorial MAX6675 módulo interfaz para termopar tipo K con Arduino
En este tutorial te enseñaremos a conectar un termopar con Arduino usando el MAX6675 que esta diseñado para termopares tipo K.
¿Cómo conectar el módulo MAX6675 con Arduino?
El siguiente diagrama muestra como llevar a cabo la conexión de un módulo de MAX6675 con Arduino. Cabe recordar que existen varios tipos de módulos en el mercado y debemos prestar atención para no equivocarnos en la posición de las señales.
Las señales requeridas por el módulo MAX6675 son:
- GND – Tierra o común del circuito
- VCC – Alimentación del circuito 3.3 a 5 volts
- CS – Chip select o señal de habilitación de esclavo SPI
- SCK – Señal de reloj de la interfaz SPI
- DO – Salida de datos seriales
Si no usaremos la pantalla LCD 16×2, podemos omitir el armado de esta parte del circuito.
Practicas y código de ejemplo para termopar con Arduino
Los materiales necesarios para realizar las prácticas en esta página son los siguientes:
- Arduino UNO o tarjeta compatible con Arduino Uno
- MAX6675 módulo interfaz para termopar tipo K (este producto)
- Pantalla o display LCD 16×2
- Cables tipo dupont para conexiones
- Protoboard
Programa para leer la temperatura con MAX6675 y mostrarla en monitor serial
Este programa es el más sencillo para probar el módulo de interfaz MAX6675, se toma una lectura de temperatura y se muestra en el monitor serial de Arduino.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | /** Geek Factory - "Dale vuelo a tus proyectos" Tienda de electrónica, Arduino, Raspberry Pi, IoT www.geekfactory.mx GEEK FACTORY INVIERTE TIEMPO Y RECURSOS EN DESARROLLAR ESTOS EJEMPLOS Y TUTORIALES. SI ENCUENTRAS ÚTIL ESTE CÓDIGO, CONSIDERA REALIZAR UNA COMPRA CON NOSOTROS. EJEMPLO TERMOPAR CON MAX6675 1 Descripción: Programa de ejemplo para medir temperatura con el circuito MAX6675 y un termopar tipo K. El resultado de la medición se muestra en el monitor serial de Arduino. Este ejemplo utiliza la librería MAX6675 de Adafruit, que deberá estar instalada en nuestro IDE para que pueda compilar de forma satisfactoria. */ // incluir la librería para el MAX6675 en nuestro programa #include "max6675.h" // configurar los pines para la conexión con el MAX6675 #define CONFIG_TCGND_PIN 8 #define CONFIG_TCVCC_PIN 9 #define CONFIG_TCSCK_PIN 10 #define CONFIG_TCCS_PIN 11 #define CONFIG_TCDO_PIN 12 // objeto utilizado para la comunicación con el termopar MAX6675 thermocouple(CONFIG_TCSCK_PIN, CONFIG_TCCS_PIN, CONFIG_TCDO_PIN); /** Función setup: se ejecuta una vez cuando encendemos el arduino */ void setup() { // preparar la comunicación serial Serial.begin(115200); // configuramos estos pines como salida para alimentar el chip MAX6675 // directamente desde los pines de entrada / salida del microcontrolador pinMode(CONFIG_TCVCC_PIN, OUTPUT); digitalWrite(CONFIG_TCVCC_PIN, HIGH); pinMode(CONFIG_TCGND_PIN, OUTPUT); digitalWrite(CONFIG_TCGND_PIN, LOW); // mostrar mensaje inicial Serial.println(F("----------------------------------------------------")); Serial.println(F(" EJEMPLO SENSOR DE TERMOPAR MAX6675 CON ARDUINO ")); Serial.println(F(" https://www.geekfactory.mx ")); Serial.println(F("----------------------------------------------------")); } /** Función loop: se ejecuta continuamente mientras el arduino permanece encendido */ void loop() { // esperar para realizar las primeras mediciones delay(1000); // leer la temperatura desde el MAX6675 float t = thermocouple.readCelsius(); // imprimir la lectura de temperatura al la interfaz serial Serial.print(F("Temperatura: ")); Serial.print(t); Serial.println(" *C"); } |
Código para leer la temperatura y mostrarla en un display LCD 16×2
Este programa nos permitirá mostrar la lectura de un termopar en una pantalla o display LCD 16×2.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | /** Geek Factory - "Dale vuelo a tus proyectos" Tienda de electrónica, Arduino, Raspberry Pi, IoT www.geekfactory.mx GEEK FACTORY INVIERTE TIEMPO Y RECURSOS EN DESARROLLAR ESTOS EJEMPLOS Y TUTORIALES. SI ENCUENTRAS ÚTIL ESTE CÓDIGO, CONSIDERA REALIZAR UNA COMPRA CON NOSOTROS. EJEMPLO TERMOPAR CON MAX6675 2 Descripción: Programa de ejemplo para medir temperatura con el circuito MAX6675 y un termopar tipo K. El resultado de la medición se muestra en una pantalla o display LCD 16 x 2. Este ejemplo utiliza la librería MAX6675 de Adafruit, que deberá estar instalada en nuestro IDE para que pueda compilar de forma satisfactoria. */ // incluir la librería para el MAX6675 en nuestro programa #include <max6675.h> #include <LiquidCrystal.h> // configurar los pines para la conexión con el MAX6675 #define CONFIG_TCGND_PIN 8 #define CONFIG_TCVCC_PIN 9 #define CONFIG_TCSCK_PIN 10 #define CONFIG_TCCS_PIN 11 #define CONFIG_TCDO_PIN 12 // objeto utilizado para la comunicación con el termopar MAX6675 thermocouple(CONFIG_TCSCK_PIN, CONFIG_TCCS_PIN, CONFIG_TCDO_PIN); // constructor de la clase LiquidCrystal, se crea un objeto llamado "lcd" para // poder acceder a la funcionalidad de la pantalla y escribir texto LiquidCrystal lcd(7, 6, 5, 4, 3, 2); /** Función setup: se ejecuta una vez cuando encendemos el arduino */ void setup() { // indicar a la librería que tenemos conectada una pantalla de 16x2 lcd.begin(16, 2); // mover el cursor a la primera posición de la pantalla (0,0) // y al mismo tiempo borramos su contenido lcd.clear(); // imprimir otra cadena en la posición actual del cursor lcd.print(" GEEKFACTORY "); } /** Función loop: se ejecuta continuamente mientras el arduino permanece encendido */ void loop() { // esperar para realizar las primeras mediciones delay(1000); // leer la temperatura desde el MAX6675 float t = thermocouple.readCelsius(); // borrar la pantalla lcd lcd.clear(); // imprimir la temperatura en la pantalla lcd.print(F("T: ")); lcd.print(t); lcd.println(" *C"); } |
Valoraciones
No hay valoraciones aún.