Arduino UNO R4 - Módulo Termopar MAX6675

Se você quer medir a temperatura com um Arduino UNO R4, existem muitos sensores para escolher. Algumas das opções populares incluem a série DHTxx, o DS18B20, o LM35 e o TMP36, entre outras, cada uma com recursos e capacidades próprios para atender às necessidades do seu projeto.

Mas e se você quiser medir a temperatura de algo tão quente quanto um vulcão (que pode passar bem dos 1000°C ou 1800°F) ou algo super frio como o nitrogênio líquido (que fica por volta de −195,8°C ou −320°F)? Nesses casos, um sensor de temperatura comum vai derreter ou congelar por completo.

Então, como medir coisas extremamente quentes ou frias? Com um par esperto de cabos elétricos chamado Termopar. Um termopar é um tipo de sensor de temperatura que usa o efeito termoelétrico para medir temperaturas de -330°F a +2460°F.

Este tutorial vai guiar você na conexão do módulo termopar MAX6675 - um dos módulos de termopar mais usados, baratos e, ainda assim, precisos - a um Arduino UNO R4. Mas, primeiro, vamos fazer uma rápida revisão dos conceitos básicos de termopares.

Módulo termopar MAX6675 com Arduino UNO R4

Sobre o Módulo Termopar MAX6675

O módulo termopar MAX6675 inclui uma placa breakout MAX6675 e uma sonda de termopar Tipo K.

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

Conceitos Básicos de Termopares

Um termopar é um sensor de temperatura feito de dois fios de metais diferentes unidos em uma das pontas, chamada de junção quente. Quando a junção quente é aquecida, ela produz uma pequena tensão que muda com a temperatura. Esse princípio simples permite que um termopar meça temperaturas extremamente altas ou baixas, que danificariam outros tipos de sensores.

Existem alguns tipos comuns de termopar (J, K, E, T etc.), cada um feito com um par diferente de metais. O mais usado é o termopar Tipo K, feito de fios de Chromel e Alumel, que mede uma faixa de temperatura bem ampla, de aproximadamente -328°F a +2300°F.

A tensão produzida por um termopar é extremamente pequena e não é simples convertê-la diretamente em uma leitura de temperatura. Por isso precisamos de um chip dedicado para fazer esse trabalho por nós - e é exatamente isso que o CI MAX6675 faz.

Pinagem do Módulo MAX6675

A placa breakout lê o sinal da sonda do termopar, converte-o em um valor de temperatura e o envia para o Arduino UNO R4 por SPI. Ela mede temperaturas de 0°C a +1024°C com precisão de cerca de ±3°C e funciona com uma alimentação de 3,0V a 5,5V.

  • VCC: pino de alimentação, conecte a 3V - 5V.
  • GND: pino de terra.
  • SCK: pino de clock SPI.
  • CS: pino de seleção de chip.
  • SO: pino de dados, envia a leitura da temperatura ao Arduino UNO R4.

No outro lado do módulo, há um bloco de bornes de 2 pinos para a sonda do termopar: conecte o fio vermelho a + e o fio azul a -.

Sonda de Termopar Tipo K

A sonda incluída no módulo tem cerca de 18 polegadas de comprimento e mede temperaturas de 0°C a 80°C. O fio vermelho é o positivo e o fio azul é o negativo.

Especificações Técnicas

  • Tensão de Operação: 3,0V a 5,5V
  • Interface: SPI
  • Faixa de Temperatura: 0 – 1024°C (MAX6675), 0 – 80°C (sonda fornecida)
  • Precisão: ±3°C

Diagrama de Ligação

Conecte o pino VCC do módulo ao 5V do Arduino UNO R4 e o pino GND ao terra. Depois, conecte três pinos digitais do Arduino UNO R4 para usar como interface SPI. Por fim, ligue a sonda do termopar ao módulo: conecte o fio vermelho ao terminal '+' do módulo e o fio azul ao terminal '-'.

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

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Uno R4 e outros componentes.

Tabela de ligação do Módulo MAX6675 e do Arduino UNO R4

Módulo MAX6675 Arduino UNO R4
VCC → 5V
GND → GND
SCK → 5
CS → 4
SO → 3

Código Arduino UNO R4

/* * Este código de Arduino UNO R4 foi desenvolvido por pt.newbiely.com * Este código de Arduino UNO R4 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-max6675-thermocouple-module */ #include "max6675.h" // Define the Arduino UNO R4 pins the MAX6675 module is connected to int SO_PIN = 3; // Serial Out (SO) pin int CS_PIN = 4; // Chip Select (CS) pin int SCK_PIN = 5; // Clock (SCK) pin // Create an instance of the MAX6675 class with the specified pins MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN); void setup() { Serial.begin(9600); delay(500); } void loop() { // Read the current temperature and print it to the Serial Monitor // Read the temperature in Celsius Serial.print("Temperature: "); Serial.print(thermocouple.readCelsius()); Serial.print("\xC2\xB0"); // shows degree symbol Serial.print("C | "); // Read the temperature in Fahrenheit Serial.print(thermocouple.readFahrenheit()); Serial.print("\xC2\xB0"); // shows degree symbol Serial.println("F"); delay(1000); }

Passos Rápidos

Siga estas instruções passo a passo:

  • Se esta é a primeira vez que você usa o Arduino Uno R4 WiFi/Minima, consulte o tutorial sobre como configurar o ambiente para o Arduino Uno R4 WiFi/Minima na Arduino IDE.
  • Conecte o módulo MAX6675 ao Arduino Uno R4 de acordo com o diagrama fornecido.
  • Conecte a placa Arduino Uno R4 ao seu computador usando um cabo USB.
  • Abra a Arduino IDE no seu computador.
  • Selecione a placa Arduino Uno R4 apropriada (por exemplo, Arduino Uno R4 WiFi) e a porta COM.
  • Vá ao ícone Libraries no lado esquerdo da Arduino IDE.
  • Pesquise por "MAX6675" e localize a biblioteca da Adafruit.
  • Clique no botão Install para adicionar a biblioteca MAX6675.
  • Search for MAX6675 library created by Adafruit and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
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 Uno R4 WiFi on COM15
1
  • Copie o código acima e abra-o na Arduino IDE.
  • Clique no botão Upload na Arduino IDE para fazer o upload do código para o Arduino UNO R4.
  • Coloque o termopar em contato com o material a ser medido.
  • Abra o Serial Monitor.
  • Confira os resultados no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' on 'COM15')
New Line
9600 baud
Temperature: 25.00°C | 77.00°F Temperature: 25.25°C | 77.45°F Temperature: 26.50°C | 79.70°F Temperature: 28.75°C | 83.75°F Temperature: 31.00°C | 87.80°F
Ln 11, Col 1
Arduino Uno R4 WiFi on COM15
2

※ Nota:

Se a temperatura exibida no Serial Monitor não mudar ou parecer incorreta, confira novamente a ligação entre o módulo e o Arduino UNO R4 e verifique se a sonda do termopar Tipo K está bem conectada aos terminais '+' e '-'.

Explicação do Código

O sketch começa incluindo o arquivo de cabeçalho do MAX6675. Ele permite que o Arduino UNO R4 interaja com o módulo MAX6675.

#include "max6675.h"

Na área global, são declarados três inteiros, SO_PIN, CS_PIN e SCK_PIN, que indicam os pinos do Arduino UNO R4 conectados aos pinos de saída serial (SO), seleção de chip (CS) e clock (SCK) do módulo.

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

Em seguida, é criada uma instância da classe MAX6675 chamada thermocouple. Ela inicializa o objeto thermocouple com os pinos SCK, CS e SO definidos.

MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN);

A função setup() inicializa a comunicação serial com o computador a uma taxa de 9600 baud.

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

No loop(), lemos o termopar MAX6675 e imprimimos o resultado no Serial Monitor usando duas funções da biblioteca:

  • Thermocouple.readCelsius(): retorna a temperatura em Celsius.
  • Thermocouple.readFahrenheit(): retorna a temperatura em Fahrenheit.
Serial.print("Temperature: "); Serial.print(thermocouple.readCelsius()); Serial.print("\xC2\xB0"); // shows degree symbol Serial.print("C | "); Serial.print(thermocouple.readFahrenheit()); Serial.print("\xC2\xB0"); // shows degree symbol Serial.println("F");

O loop continua sendo executado indefinidamente, lendo e imprimindo a temperatura repetidamente a cada segundo.

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!