Neste artigo, vou mostrar como usar o sensor de temperatura TMP36 com um microcontrolador ESP32.
O TMP36 é um sensor de temperatura de baixo custo e baixa tensão. Já está calibrado em Celsius, o que facilita o manuseio dos dados do sensor.
Verá que a medição de temperatura é uma necessidade fundamental em muitas aplicações diferentes.
Sensores de temperatura protegem dispositivos eletrónicos como portáteis e TVs contra sobreaquecimento. Atualmente, todas as baterias também vêm com um sensor de temperatura para evitar o sobreaquecimento.
Neste artigo, vou ensinar-lhe todas as informações essenciais que precisa de saber sobre o sensor de temperatura TMP36.
Vou mostrar como usar um sensor TMP36 com ESP32. Terá um guia de ligação, código de exemplo para ESP32 com TMP36, e também responderei a algumas perguntas frequentes sobre o TMP36.
Vamos começar!
Componentes Necessários Para Construir o Projeto ESP32 e Sensor TMP36
Componentes de Hardware
- Dupont wire x 1 conjunto
- Micro USB Cable for ESP32 x 1
Software
Guia
Makerguides.com participa no Programa de Associados Amazon Services LLC, um programa de publicidade afiliada concebido para fornecer meios para sites ganharem comissões ao anunciar e ligar a produtos na Amazon.com.
Fundamentos dos Sensores TMP36
Vamos entender as características intrínsecas do sensor de temperatura TMP36. Conhecer os detalhes ajuda a construir o projeto com confiança e a decidir se o TMP36 é a escolha certa.
O TMP36 está disponível tanto em pacote de três pinos como em pacote SMD de pequeno formato.

O CI TMP36 é simples de usar. Não há endereços de CI, cálculo de CRC, ou comunicação serial, etc.
- Basta usar um ADC e ler o valor analógico.
- Converter o valor analógico em tensão.
- Usar a tabela de referência abaixo para converter a tensão em temperatura.
É isso. É simples e direto usar o sensor TMP36.
Além do sensor TMP36, existem também o TMP35 e TMP37, que são muito semelhantes mas têm diferenças subtis, que resumi na tabela abaixo:
| Sensor | Tensão a 25 ℃ | Intervalo de medição | Fator de escala de saída |
| TMP35 | 250 mV | 10 °C a 125 ℃ | 10 mV/℃ |
| TMP36 | 750 mV | −40 °C a +125 ℃ | 10 mV/℃ |
| TMP37 | 500 mV | 5 °C a 100 ℃ | 20 mV/℃ |
Características do Sensor TMP36
Aqui estão as principais características do sensor TMP36 resumidas numa tabela:
| Parâmetro | Intervalo |
| Intervalo de temperatura de funcionamento | -40 ℃ a 125 ℃ |
| Precisão da temperatura | ± 1 ℃ (típico), ± 2 ℃ (máximo) |
| Tensão de alimentação | 2.7 V a 5.5 V |
| Saída | 750 mV a 25 ℃ |
| Corrente de alimentação | 50 uA |
| Corrente em espera | 0.5 uA |
| Estabilidade a longo prazo | ± 0.4 ℃ |
| Intervalo de tensão de saída | 100 mV a 2 V |
Definição dos Pinos do Sensor TMP36
Pode usar a referência abaixo para consultar rapidamente a pinagem do CI do sensor de temperatura TMP36:

| Número do Pino | Pino | Descrição |
| 1 | +Vs | Pino de alimentação. (2.7 V a 5.5 V) |
| 2 | VOUT | Tensão analógica de saída |
| 3 | GND | Ligação à terra |
Na versão SMD, existe um pino adicional chamado shutdown. Nestas versões, pode poupar ainda mais energia colocando o CI em modo de suspensão usando o pino shutdown.
O consumo de corrente desce para 500 nA (o que é fantástico para um dispositivo alimentado por bateria!).
Como Derivar a Temperatura a partir do VOUT do TMP36?
Pode usar o gráfico abaixo para converter a tensão analógica lida em temperatura.

Como pode ver no gráfico, a tensão a 25 graus é 750 mV, e a 50 graus é 1 V.
Agora, se leu uma tensão de 1 V no ADC, deve consultar este gráfico e referir-se à linha azul (que corresponde ao sensor TMP36).
Para converter o valor do ADC em tensão, use a equação abaixo.
ADC_volts_in_mV = (ADC_reading) * 3300 / 1024;
Para converter a tensão do ADC em temperatura, pode usar a fórmula abaixo.
temperature = (ADC_volts_in_mV – 500) / 10;
Função do pino SHUTDOWN do sensor TMP36
As três variantes, TMP35, TMP36 e TMP37, têm a função shutdown. É um pino adicional nas versões SMD. Ajuda a reduzir o consumo de corrente para 0.5 uA.
Deve escolher o pacote com cuidado. A versão de três pinos (TO-92) não tem este pino shutdown.
Deve colocar o pino shutdown em nível baixo para colocar o CI em modo shutdown. Se usar um GPIO, deve enviar um nível lógico 0. Isso coloca o CI em modo de suspensão.
O pino shutdown tem um pull-up interno para o pino de alimentação dentro do TMP36. Portanto, também pode controlar o pino shutdown usando um pino open-drain.
Quando o TMP36 está em modo shutdown, a tensão de saída deixa de ser válida.
Além disso, ao colocar o sensor em modo shutdown, demora algum tempo finito até entrar nesse modo. O gráfico abaixo mostra o tempo esperado até o CI desligar.

À temperatura ambiente, o tempo de resposta é cerca de 265 us, variando conforme a temperatura ambiente. Deve considerar isto no seu código ao usar a função shutdown.
Aplicações do sensor TMP36
O TMP36 é um sensor primário usado para medição de temperatura, com uma ampla gama de usos, incluindo:
- Sistemas HVAC – Sistemas de Aquecimento, Ventilação e Ar condicionado dependem fortemente da temperatura ambiente para o seu funcionamento. O TMP36 é uma solução valiosa para esses sistemas
- Processamento de alimentos – Precisa de um sistema de monitorização de temperatura para garantir que os alimentos não estraguem e sejam cozinhados à temperatura correta. Pode usar o TMP36 nestas aplicações.
- Equipamento médico – Pode usar o sensor para monitorizar a temperatura do paciente e garantir que a UCI e outras áreas críticas têm temperaturas controladas para o conforto e precisão do procedimento de recuperação.
- Processos industriais: Vários processos industriais dependem do sensor TMP36 para garantir que as peças são produzidas à temperatura correta, assegurando a precisão da produção.
A variação de temperatura pode causar alterações dimensionais ou de cor em processos específicos. Por isso, é crucial monitorizar a temperatura.
Para que aplicação está a usar o sensor TMP36? Conte-nos na secção de comentários abaixo.
Ligação do Módulo Sensor TMP36 ao ESP32
Vou mostrar como construir um projeto usando ESP32 e o sensor de temperatura TMP36. Vamos começar pelas ligações de hardware.
Passo 1: Complete as ligações de hardware

O TMP36 é um CI de apenas 3 pinos. A simplicidade da ligação é óbvia no diagrama aqui.
Comece pelas ligações à terra. Se precisar usar outros pinos, edite o código em conformidade.
Alimente todo o sistema apenas depois de completar todas as ligações.
Passo 2: Programe o ESP32 com o código abaixo
Siga o próximo passo para entender a implementação do código. Pode usar o código abaixo para testar o módulo ESP32 e o sensor TMP36 ligado.
Se nunca usou um ESP32 com o seu Arduino IDE, leia o nosso tutorial Install ESP32 core in Arduino IDE.
const int tempPin = 2; //analog input pin constant
int tempVal; // temperature sensor raw readings
float volts; // variable for storing voltage
float temp; // actual temperature variable
void setup()
{
// start the serial port at 9600 baud
Serial.begin(9600);
}
void loop()
{
//read the temp sensor and store it in tempVal
tempVal = analogRead(tempPin);
volts = tempVal / 1023.0;
temp = (volts - 0.5) * 100 ;
Serial.print(" Temperature is: ");
Serial.print(temp); // in the same line print the temperature
Serial.println (" degrees C"); // still in the same line print degrees C, then go to next line.
delay(1000); // wait for 1 second or 1000 milliseconds before taking the next reading.
}
Passo 3: Análise do Código
Vamos analisar o código. Este exemplo testa sensores TMP36. O código é usado para ler a temperatura e imprimir no terminal serial.
const int tempPin = 2; //analog input pin constant
Primeiro, definimos uma variável inteira constante tempPin que recebe o valor 2. Este é o pino ao qual ligámos o sensor de temperatura TMP36.
int tempVal; // temperature sensor raw readings float volts; // variable for storing voltage float temp; // actual temperature variable
A variável tempVal é declarada como inteira para armazenar o valor analógico bruto lido do sensor de temperatura.
A variável volts é usada para armazenar o valor da tensão calculada a partir do tempVal. A variável temp é para armazenar o valor real da temperatura.
Na função setup(), chamamos a função Serial.begin() para comunicar com uma taxa de 9600 baud.
volts = tempVal / 1023.0;
A linha acima converte o valor analógico lido em tensão.
temp = (volts - 0.5) * 100;
A linha acima é a chave neste código. Subtraímos 500 mV da tensão lida.
Porquê? Consulte a secção de fundamentos deste artigo para mais informações detalhadas.
Como sabe, o sensor adiciona um offset de 500 mV. Isso ajuda a ler a faixa de temperatura negativa assim como a tensão positiva.
Finalmente, a temperatura é mostrada no terminal serial. Espero que a explicação do código tenha ajudado. Espero que use o TMP36 em breve nos seus próximos projetos.
Perguntas Frequentes Sobre os Sensores TMP36
Incluí uma lista das perguntas mais frequentes sobre projetos construídos usando ESP32 e sensores TMP36.
O que é o TMP36?
O TMP36 é um sensor de temperatura analógico de baixa tensão e precisão que pode medir temperaturas entre -40°C e +125°C. Fornece uma tensão linearmente proporcional à temperatura em graus centígrados.
Qual é a tensão de saída do sensor TMP36?
A tensão de saída do TMP36 varia linearmente com a temperatura e tem um fator de escala de 10 mV/°C.
Exemplo: Se a temperatura for 25°C, a tensão de saída será 0,25 V. Pode consultar o gráfico abaixo para encontrar a tensão de saída esperada para a temperatura correspondente. (gráfico b).

Qual é o intervalo de tensão de funcionamento do TMP36?
O intervalo de tensão de funcionamento do TMP36 é de 2,7 V a 5,5 V.
Qual é a precisão do CI sensor TMP36?
A precisão do TMP36 é tipicamente ±1 °C a 25 °C. O TMP36 tem um erro máximo de ±2 °C no intervalo de temperatura de -40°C a +125 °C.
Qual é a resolução do sensor de temperatura TMP36?
A resolução do sensor de temperatura TMP36 é 0,1°C.
Como posso ligar o TMP36 a um microcontrolador?
Pode ligar o TMP36 a qualquer MCU usando um pino de entrada ADC, pois o TMP36 fornece uma tensão analógica de saída (correspondente à temperatura medida em graus centígrados).
O ESP32 tem ADC incorporado, assim como o Arduino UNO> A maioria dos MCUs tem ADCs incorporados.
Quais são as aplicações do TMP36?
O TMP36 pode ser usado em várias aplicações, como medição de temperatura em dispositivos eletrónicos, estações meteorológicas, processamento de alimentos, logística e sistemas HVAC.
O TMP36 pode ser usado para medições de alta temperatura?
O TMP36 não é adequado para medições de alta temperatura, pois só pode medir até +125 °C.
Se quiser medir temperaturas na faixa de 200 ou 400 graus, deve procurar termopares. Eles são projetados para monitorizar altas temperaturas.
Qual é o tipo de pacote do TMP36?
O TMP36 está disponível em vários pacotes: 3 pinos (TO-92), CI de 5 pinos (SOT23) e até CI de 8 pinos (SOIC).
Consulte a imagem abaixo para entender as várias versões de pinos do TMP36 que pode comprar no mercado. A minha favorita é a TO-92, que é a versão de três pinos.

Conclusão
Cobri todas as informações essenciais sobre os sensores TMP36 neste artigo. Dei-lhe informações completas sobre o funcionamento do sensor de temperatura TMP36 e as vantagens de usar este sensor nos seus futuros projetos de medição térmica.
O diagrama de ligação do ESP32 e o código de exemplo ajudaram-no a testar as suas ligações e a construir o projeto mais rapidamente. Se tiver mais perguntas sobre os sensores, por favor coloque-as na secção de comentários.
Usei sensores TMP36 enquanto estudava o desempenho térmico de uma PCB de teste. Usei 6 sensores TMP36 para monitorizar a temperatura em diferentes pontos da PCB de teste.
Pode utilizar o TMP36 em muitos projetos diferentes com ESP32 e ligá-lo a várias unidades de visualização para mostrar os dados.
Diga-nos se há algo mais que gostaria que eu abordasse em futuros artigos.


