Integrando Sensor Termopar com Arduino Portenta H7 usando CI MAX6675
Componentes e Materiais
| Arduino Portenta H7 | ×1 |
| Acessório de Teste, Termopar e Adaptador | ×1 |
| Breakout Termopar SparkFun – MAX31855K | ×1 |
Aplicativos e Serviços Online
- CircuitMaker by Altium
Sobre Este Projeto
Neste tutorial, percorro a conexão de um termopar de alta temperatura ao Arduino Portenta H7, aproveitando o conversor termopar-para-digital MAX6675. As portas SPI duplas do Portenta fornecem uma interface robusta, e o MAX6675 entrega resolução de 12 bits até 1024 °C — ideal para monitoramento de grau industrial.
O Que Você Aprenderá
- Como um termopar gera tensão e como essa tensão varia com a temperatura.
- Selecionar e ligar um CI MAX6675 ao barramento SPI do Portenta H7.
- Interpretar dados do sensor na Arduino IDE e visualizá-los no Monitor Serial.
Materiais
- Arduino Portenta H7
- Termopar Tipo-K (via breakout SparkFun MAX31855K)
- Placa Portenta Throne (PCB customizada com headers SPI duplos)
- Capacitores de desacoplamento 0,1 µF padrão
- Bloco de terminal de parafuso 4 pinos para inserção do sensor
Como Funcionam Sensores Termopar
Um termopar consiste de dois metais diferentes unidos em uma extremidade. Quando essa junção é aquecida, uma tensão termoelétrica é gerada proporcional à diferença de temperatura entre a junção e a extremidade de referência. Como a tensão é minúscula — tipicamente alguns milivolts — ela deve ser amplificada e digitalizada antes que um microcontrolador possa lê-la.
Termopares Tipo-K, feitos de cromel e alumel, são a escolha mais comum para sensoriamento de temperatura industrial. Cobrem –200 °C a 1260 °C com precisão típica de ±1 °C quando pareados com conversor adequado como o MAX6675.
Requisitos de Hardware do Sensor
Para operação confiável, o MAX6675 deve ser alimentado do mesmo rail de 3,3 V do Portenta H7, e um capacitor de desacoplamento 0,1 µF deve ser colocado o mais próximo possível do pino VCC do CI. Os fios do termopar devem ser inseridos nos terminais de parafuso dedicados na breakout board, respeitando polaridade (vermelho = positivo).
Voltando ao Nosso Esquemático Throne
Usando Altium Designer, roteie os dois barramentos SPI disponíveis do Portenta para os CIs MAX6675 na placa Throne customizada. A primeira interface SPI (pinos 38, 40, 42 no conector HD 2) serve ao primeiro MAX6675, enquanto a segunda (pinos 33, 59, 61 no conector HD 1) alimenta o segundo CI. O design segue recomendações do datasheet do MAX6675 para largura de trilha e posicionamento de desacoplamento.
A montagem é direta — solde os MAX6675s e capacitores de desacoplamento com ferro de precisão, então fixe o termopar na breakout usando os terminais de parafuso.
Pinos de Conexão do Sensor
Ao ligar o termopar, observe as marcas de polaridade do fabricante: fio vermelho é +, fio preto é –. Conecte o sensor aos terminais de parafuso da breakout, então ligue os pinos VCC, GND, DO, CS e SCK da breakout aos headers correspondentes do Portenta conforme mostrado no esquemático.
Software e Teste
O sketch Arduino usa a biblioteca MAX6675 da Adafruit para comunicar via SPI. Após inicializar o LED onboard (PC_7) para feedback visual, o programa imprime leituras em Celsius e Fahrenheit a cada segundo.
Uma vez o sketch carregado, o Monitor Serial exibe aumento constante de temperatura conforme a chapa quente aquece o termopar — confirmando comunicação SPI bem-sucedida e conversão precisa.
Isso conclui o projeto. Experimentação contínua com sensores e I/O versátil do Portenta aprofundará suas habilidades embarcadas. Boa hacking!
Código
Arquivo Sem Título (Arduino)
// Exemplo domínio público – demo rápido MAX6675
// Fonte: www.ladyada.net/learn/sensors/thermocouple
#include "max6675.h"
// Pinos SPI no Portenta H7 (ajuste conforme necessário)
const uint8_t thermoCLK = 9;
const uint8_t thermoCS = 8;
const uint8_t thermoDO = 10;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
void setup() {
pinMode(PC_7, OUTPUT); // LED onboard
digitalWrite(PC_7, HIGH);
delay(500);
digitalWrite(PC_7, LOW);
delay(500);
Serial.begin(9600);
Serial.println("MAX6675 test");
delay(500); // permite chip estabilizar
}
void loop() {
float tempC = thermocouple.readCelsius();
float tempF = thermocouple.readFahrenheit();
Serial.print("C = ");
Serial.println(tempC);
Serial.print("F = ");
Serial.println(tempF);
// Pisca LED quando temperatura excede 30 °C
digitalWrite(PC_7, tempC > 30 ? HIGH : LOW);
delay(1000);
}
Esquemáticos
Veja o esquemático completo e layout da PCB nos arquivos PDF anexos.
Processo de manufatura
- Conecte Múltiplos Sensores DS18B20 1-Wire ao Raspberry Pi para Monitoramento Preciso de Temperatura
- Construa um Sensor de Temperatura Remoto com Raspberry Pi e Python – Guia Passo a Passo
- Sensor de Rastreamento de Linha com Raspberry Pi – Detector KY‑033 Simples para Porta/Linha
- Construa API Robusta de Temperatura e Sensores no Raspberry Pi com Módulo GY‑91
- Construa um Sistema de Monitoramento de Temperatura e Luz Multi-Sensor com Raspberry Pi e DS18B20
- Dominando Controle de Sensores e Atuadores no Raspberry Pi: Acelerômetro, Servo e Streaming de Dados
- Crie Seu Primeiro Projeto IoT com Raspberry Pi, DHT11 e ThingSpeak
- Construa um Sistema Aeropônico Automatizado com Raspberry Pi e Sensor de Umidade
- Verifique e Calibre Seu Sensor de Umidade para Medições Precisas
- Sistema de Segurança Residencial com Raspberry Pi: Detecção PIR + Alertas de Câmera por Email