Medição de temperatura: Aplicação de Termopares com MAX31855

Tipos de termopares Leis para Termopares MAX31855

Olá leitor, desta vez estamos trazendo para você a continuação do material referente aos instrumentos de medição de temperatura, voltado para uma aplicação prática referente ao uso do MAX31855 na leitura de termopares juntamente com o Arduino UNO

Introdução

O MAX31855 é um CI utilizado para realizar a digitalização do sinal de termopares, bem como fazer a compensação de junta fria (assunto que será abordado no próximo artigo da série), necessária para garantir que a resposta do termopar seja a mais fiel possível à realidade. Este elemento proporciona a possibilidade de se realizar leituras de temperaturas altas como 1800°C e também de temperaturas baixas como -270°C, no entanto, exibe temperaturas com uma precisão de ±2°C no intervalo de medição que vai de -200°C a 700°C para termopares tipo K. Para maiores informações clique aqui.

Figura 1 – MAX31855

Objetivo

Este projeto consiste em criar uma aplicação utilizando o CI MAX31855 para realizar a medição da temperatura de um determinado processo utilizando um termopar tipo K. Observe que o desenvolvimento será feito no Proteus/ISIS por questões de praticidade além de poder fornecer um material de mais fácil entendimento para o leitor. No entanto, este conteúdo pode ser feito com os componentes reais da mesma forma.

Hardware – Conectando os componentes com o Arduino

A seguir são apresentados os componentes utilizados no Proteus, assim como o esquema de ligação dos mesmos.

Componentes necessários

Figura 2 – Componentes necessários para a simulação

Diagrama esquemático das ligações

Figura 3 – Diagrama esquemático das ligações

Antes de prosseguir com o desenvolvimento do código deve-se fazer algumas ressalvas em relação aos componentes utilizados no Proteus/ISIS para aqueles que desejam reproduzir este circuito para realizar simulação.

Os termopares quando são inseridos no ambiente de desenvolvimento possuem dois terminais que são basicamente as pontas dos fios constituídos de metais diferentes (assim como já foi explicado nos outros artigos), no entanto, ainda existe um outro terminal nomeado por CJ cuja função é definir a temperatura da junta fria através de um determinado nível de tensão aplicado no mesmo. Porém, não foi possível constatar os valores de tensão para as diferentes temperaturas de junta fria por meio de nenhuma referência, logo, até então isto deve ser feito de forma experimental (medir a tensão nos terminais do termopar enquanto coloca-se a temperatura da junta quente de acordo com a que se deseja obter na junta fria e progressivamente aumenta-se a tensão no terminal CJ até que o voltímetro esteja zerado, já que as temperaturas em ambas as juntas serão iguais). Além disso, para que a medida tenha o menor erro possível é imprescindível que a temperatura da junta fria seja a mesma temperatura “ambiente” no qual está inserido o CI (esta pode ser definida na aba de preferências do componente no Proteus/ISIS).

Desenvolvimento do código – Adquirindo medidas utilizando o MAX31855

No decorrer desta seção serão explicados todos os passos utilizados para o desenvolvimento do programa, isto é, o código será comentado de modo que todo conhecimento aplicado seja facilmente compreendido.

Primeiramente deve-se incluir a biblioteca SPI.h  para que seja possível fazer a interação do Arduino UNO com o MAX31855 por meio do protocolo SPI e em seguida deve-se adicionar ao código a biblioteca Adafruit_MAX31855.h (Esta biblioteca pode ser encontrada aqui) que será responsável por fornecer as funções básicas para a aquisição dos dados referentes às medidas da temperatura.

Em seguida utiliza-se a diretiva #define para associarmos os elementos do MAX31855 aos seus respectivos pinos no Arduino UNO. Neste momento os pinos SO, CS e SCK do MAX31855 estão relacionados com os pinos 5, 6, e 7 do Arduino UNO respectivamente. 

O próximo passo é criar o objeto responsável por representar o termopar no programa, este será denominado termopar

Dentro da função setup() apenas iniciamos a comunicação serial para poder conferir a leitura dos valores do termopar. Em alguns códigos referentes ao uso do MAX31855 encontrados utiliza-se um tempo para estabilização do CI, logo, neste caso, um pequeno delay será adicionado ao código para cumprir a função citada.

Na função loop() está presente a função readCelsius(), esta é responsável por apresentar o valor da temperatura lida a partir do termopar utilizando o MAX31855 em graus Celsius. Vale ressaltar que também existe a função readFarenheit(), que por sua vez retorna o mesmo valor, no entanto em graus Farenheit. Além disso, foi utilizado também um delay para dar que houvesse um intervalo entre as leituras.

Esta foi a quarta parte do nosso conteúdo voltado para a utilização de termopares em medições de temperatura. Preparamos esta aplicação prática para poder dar um exemplo ao leitor de como utiliza-se termopares juntamente com elementos como o Arduino UNO. Esperamos que você tenha gostado deste conteúdo, sinta-se à vontade para sugestões, críticas ou elogios. Deixe seu comentário abaixo.