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.

Módulo termopar MAX6675 com Arduino Nano

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×MAX6675 Thermocouple Module
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

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

Pinagem do módulo termopar MAX6675
image source: diyables.io

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

Diagrama de ligação do módulo termopar MAX6675 com o Arduino Nano

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

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-max6675-thermocouple-module */ #include "max6675.h" int SCK_PIN = 4; // Clock (SCK) pin int CS_PIN = 3; // Chip Select (CS) pin int SO_PIN = 2; // Serial Out (SO) pin MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN); // create a MAX6675 object with the specified pins void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. delay(500); // give the MAX6675 chip time for its first conversion } void loop() { Serial.print("Temperature: "); Serial.print(thermocouple.readCelsius()); // read temperature in Celsius Serial.print("\xC2\xB0"); // shows degree symbol Serial.print("C ~ "); Serial.print(thermocouple.readFahrenheit()); // read temperature in Fahrenheit Serial.print("\xC2\xB0"); // shows degree symbol Serial.println("F"); delay(1000); }

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.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Library Manager
Type:
All
Topic:
All
MAX6675 library by Adafruit
Arduino library for interfacing with MAX6675 thermocouple amplifier More info
1.1.2
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
Arduino Nano on COM15
1
  • 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.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Temperature: 24.50°C ~ 76.10°F Temperature: 24.75°C ~ 76.55°F Temperature: 26.00°C ~ 78.80°F Temperature: 29.25°C ~ 84.65°F Temperature: 33.50°C ~ 92.30°F Temperature: 38.75°C ~ 101.75°F Temperature: 41.00°C ~ 105.80°F
Ln 11, Col 1
Arduino Nano on COM15
2

※ 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:

#include "max6675.h"

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:

int SCK_PIN = 4; // Clock (SCK) pin int CS_PIN = 3; // Chip Select (CS) pin int SO_PIN = 2; // Serial Out (SO) pin

Esses três pinos são então passados ao construtor da classe MAX6675 para criar um objeto termopar:

MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN);

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:

void setup() { Serial.begin(9600); delay(500); }

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:

Serial.print("Temperature: "); Serial.print(thermocouple.readCelsius()); Serial.print("\xC2\xB0"); Serial.print("C ~ "); Serial.print(thermocouple.readFahrenheit()); Serial.print("\xC2\xB0"); Serial.println("F");

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.

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!