Arduino Nano - Módulo Termopar MAX6675
A maioria dos sensores de temperatura que abordamos em outros tutoriais - a família DHTxx, DS18B20, LM35 - chega no máximo a cerca de 125°C. Isso é suficiente para uma sala, uma geladeira ou um canteiro de jardim, mas é inútil se você precisa saber o que está acontecendo dentro de um forno de cerâmica, de uma defumadora ou no escapamento de um motor pequeno. Para esse tipo de calor, você precisa de um elemento sensor completamente diferente: um termopar. Este tutorial mostra como ligar um módulo termopar MAX6675 a um Arduino Nano e ler a temperatura que ele informa, em Celsius e em Fahrenheit.

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
O Que É um Termopar?
Um termopar é simplesmente dois fios feitos de metais diferentes, soldados em uma das pontas. Essa junção é chamada de junção quente e, quando é aquecida, gera uma pequena tensão própria - um efeito conhecido como efeito Seebeck. Quanto mais quente fica a junção, mais essa tensão varia, então medir a tensão informa a temperatura. Como não há componentes delicados de silício perto da ponta, a junção pode chegar a temperaturas que destruiriam instantaneamente um sensor eletrônico comum.
Os fabricantes combinam diferentes pares de metais para criar diferentes "tipos" de termopar, e a variante Tipo K (Cromel combinado com Alumel) é, de longe, a que você mais vai encontrar. Ela é barata, robusta e especificada para aproximadamente -328°F a +2300°F, o que cobre quase tudo de que um projeto de hobby precisa.
O problema é que a tensão que um termopar produz é medida em microvolts - pequena demais e ruidosa demais para a entrada analógica de um Arduino Nano ler diretamente. É para isso que o chip MAX6675 foi projetado.
Sobre o Módulo Termopar MAX6675
O que você realmente vai segurar na mão é uma pequena placa breakout com o chip MAX6675, mais uma sonda Tipo K ligada a um borne de parafuso na placa.
Pinagem do Módulo MAX6675

O chip MAX6675 amplifica o pequeno sinal do termopar, cancela internamente o erro da junção fria e fornece um valor de temperatura de 12 bits pronto para uso. O Arduino Nano lê esse valor por meio de uma interface serial simples de 3 fios - não há dados voltando para o módulo, apenas saindo dele. A placa expõe cinco pinos:
- VCC: entrada de alimentação, aceita de 3,0V a 5,5V.
- GND: referência de terra.
- SCK: clock serial, controlado pelo Arduino Nano.
- CS: seleção de chip; levado a nível baixo pelo Arduino Nano enquanto uma leitura está sendo feita.
- SO: saída de dados serial (esta é a única linha de dados do módulo - ela só envia, nunca recebe).
Na borda oposta da placa fica um borne de parafuso de 2 pinos para a sonda: o fio vermelho vai em + e o fio azul vai em -. A própria sonda tem cerca de 18 polegadas de cabo blindado terminando em uma ponta de metal fina e, embora o chip MAX6675 consiga digitalizar qualquer valor de 0°C até 1024°C, a sonda que acompanha o módulo é especificada apenas para 0-80°C - tenha esse limite em mente se você planeja medir algo mais quente, pois seria necessária uma sonda de temperatura mais alta.
Para completar as especificações: o módulo funciona com 3,0-5,5V, resolve a temperatura em passos de cerca de 0,25°C e tem precisão de aproximadamente ±3°C.
Diagrama de Ligação
Alimente o módulo primeiro: VCC ao pino 5V do Arduino Nano e GND a qualquer pino GND. Depois, escolha quaisquer três pinos digitais livres para SCK, CS e SO - eles não precisam ter suporte a PWM ou qualquer função especial, pois a biblioteca se comunica com o chip por software. Por fim, conecte o fio vermelho da sonda termopar ao terminal + do módulo e o fio azul ao -.

This image is created using Fritzing. Click to enlarge image
Veja A melhor forma de alimentar o Arduino Nano e outros componentes.
Tabela de ligação do Módulo MAX6675 e do Arduino Nano
| Módulo MAX6675 | Arduino Nano |
|---|---|
| VCC | → 5V |
| GND | → GND |
| SCK | → 4 |
| CS | → 3 |
| SO | → 2 |
Código Arduino Nano
Passos Rápidos
- Ligue o módulo MAX6675 ao Arduino Nano exatamente como mostrado no diagrama acima.
- Conecte o Arduino Nano ao PC com o cabo USB.
- Abra o Arduino IDE e escolha a placa e a porta COM corretas.
- Clique no ícone Libraries na barra lateral esquerda.
- Digite "MAX6675" na caixa de pesquisa e procure a biblioteca publicada pela Adafruit.
- Clique em Install para adicioná-la ao seu IDE.
- Search for MAX6675 library created by Adafruit and click the Install button.
- Cole o sketch acima no IDE.
- Pressione Upload para gravar o Arduino Nano.
- Encoste a ponta da sonda em algo quente - um copo de água quente funciona bem para um primeiro teste.
- Abra o Serial Monitor e acompanhe as leituras chegando.
※ Nota:
Se o Serial Monitor continuar mostrando o mesmo valor, não importa o que você faça, confira primeiro a ligação de SCK/CS/SO - um pino trocado é, de longe, o erro mais comum com este módulo.
Explicação do Código
Primeiro, importe o cabeçalho da biblioteca MAX6675:
Em seguida, três números de pino são declarados para os fios que vão aos pinos SCK, CS e SO do módulo:
Esses três pinos são então passados ao construtor da classe MAX6675 para criar um objeto termopar:
Dentro de setup(), só é preciso abrir a conexão com o Serial Monitor, mais uma pequena pausa para dar ao chip MAX6675 tempo de concluir sua primeira conversão interna:
Dentro de loop(), o sketch pede uma leitura ao objeto termopar duas vezes - uma em Celsius e outra em Fahrenheit - e imprime ambas no Serial Monitor:
Um atraso de um segundo fecha o loop, o que mantém o ritmo das leituras fácil de acompanhar no Serial Monitor sem sobrecarregar o chip MAX6675 com requisições seguidas.