Sensor de temperatura: LM35 | TMP36 | DS18B20 (Completo)

Flávio Babos
Escrito por Flávio Babos
Atualizado em:

Hoje você irá aprender como funciona cada sensor de temperatura Arduino: LM35, DS18B20 e TMP36 e também irá aprender a programar todos eles.

Esses sensores juntos possuem uma grande aplicabilidade quando utilizados para medir a temperatura de animais, humanos e líquidos (sensor de temperatura DS18B20).

No entanto, você verá que é bastante simples obter a temperatura desses 3 sensores: LM35, DS18B20 e TMP36 já que basta saber escrever algumas linhas de código.

Preparado (a)?

Então veja o que separamos para você:

Quais são os principais sensores de temperatura e suas principais características?

Sensor de temperatura: principais componentes

Na atualidade, dispomos de diversos sensores de temperatura de baixo custo que podem ser usados em nossos projetos com a plataforma Arduino e que calculam a tensão de saída e dispõem a temperatura em outras escalas, como: Celsius, Fahrenheit e Kelvin.

Mas, são tantos que até ficamos meio perdidos, não concorda?

Dessa forma, trago nos próximos tópicos os mais utilizados hoje em dia e suas principais características para que você possa escolher o componente que mais se encaixa no seu projeto.

Mas, se você não domina a plataforma Arduino ainda, recomendo você ler o artigo: tudo sobre o que é a plataforma open-source Arduino.

Ou então, caso queira um curso na área, acesse o guia dos melhores treinamentos online sobre Arduino e se matricule nos Cursos Gratuitos ou Pagos mais bem avaliados deste ano.

Família LM 35/335/34

Sensor de temperatura LM35
Sensor de temperatura LM35

LM35: o que é e como funciona?

O sensor de temperatura Arduino LM35 usa diodos como princípio para medir a temperatura e funciona da seguinte forma: conforme os graus mudam, a tensão se altera a uma taxa conhecida de 10mV/°C.

Sendo assim, para medir a temperatura, precisamos apenas medir a tensão de saída do sensor e fazer um cálculo para converter os Volts em °C.

Esse sensor é bastante preciso e se trata de um componente eletrônico analógico.

Crie seus próprios projetos com Arduino com o Curso de Arduino

No programa você vai encontrar a seguinte conversão, veja só:

  // Faz a leitura do sensor
  valorSensor = analogRead(sensorPin);

  // Faz a conversão para tensão 
  tensaoSaida = (valorSensor * 5000) / 1024;

  // Calculando a temperatura para o LM35 
  temperaturaC = tensaoSaida / 10;

Essa família de sensores LM35, LM335 e LM34 trabalha de forma similar, e, a única diferença entre eles é apresentarem as temperaturas em escalas diferentes (Kelvin, Celsius e Fahrenheit) e serem calibrados de formas diferentes também.

Ou seja, a saída dos sensores no quesito tensão (milivolts) é calibrada de forma proporcional para os diferentes tipos de escalas.

Por exemplo, se o LM35 libera uma tensão de 285 mV, isso significa que o valor da temperatura será 28,5°C.

Da mesma forma se tivermos o LM34 liberando uma tensão de 285 mV, a temperatura proporcional será de 30 °F…

Isso fica mais claro na tabela abaixo, veja as diferenças entre esses sensores e suas respectivas escalas:

EspecificaçõesLM34LM335LM35
Escala UsadaFahrenheitKelvinCelsius
Temperatura de trabalho em °C-50°C até 150°C-40°C até 100°C-55°C até 150°C
Linearidade10 mV/°F10 mV/K10 mV/°C
Precisão a 25 °C± 1°F± 1 K± 0.5°C

Aqui você encontra os datasheets do LM35, LM335 e do LM34.

Agora, as características que eles possuem em comum, são:

  • Temperatura de trabalho que varia de -55°C até 150°C;
  • Utilizam tensão negativa para temperaturas negativas;
  • Operam entre 4V e 30V.

Mas você deve estar se perguntando por que sensores em escalas diferentes?

Qual sensor de temperatura utilizar

Esses sensores foram criados para atender diversos mercados de forma a se adequarem a diversas escalas de temperatura.

Por exemplo, aplicações exteriores onde a escala de graus Celsius não é tão popular, as pessoas preferem utilizar outras escalas, como a escala Fahrenheit nos EUA.

Além disso, qualquer faixa pode ser facilmente convertida para qualquer outra faixa da seguinte forma (digitalmente):

Celsius = Kelvin – 273,15
Fahrenheit = ((Kelvin – 273,15) * 9/5) + 32
Fahrenheit = (Celsius * 9/5) + 32

Ademais, com esses tipos de sensores, você só precisa de um voltímetro e uma fonte de alimentação de 4 ou 5 volts para ler a temperatura.

Se seu LM35 lê 0,28 volts, multiplique isso por 100 e você tem 28 graus C.

Se seu LM34 lê 0,72 volts, multiplique isso por 100 e você tem 72 graus F.

Simples assim!

Pinagem do sensor de temperatura LM35

Pinout sensor de temperatura LM35

Pinagem VCC LM35 – Este pino vai conectado no +5V do Arduino;

– Já este, é o pino de dados do sensor, conecte-o no pino analógico A0 do Arduino;

– Por fim, o GND representa o pino negativo, conecte-o ao GND do Arduino.

Montagem do sensor de temperatura Arduino e LM35

Chegou a hora de você aprender a fazer a montagem e a programar o LM35.

A montagem do projeto com o LM35 fica da seguinte forma, observe:

Montagem sensor de temperatura LM35
  • Apenas conecte o sinal do LM35 no pino A0 do Arduino e o positivo do sensor no +5V e o negativo no GND.

Código utilizado no projeto

Por padrão, o programa está destinado a fazer as leituras do LM35 mas, caso for fazer medidas no LM34 ou no LM335 basta descomentar suas respectivas linhas na IDE.

O Arduino irá então ler os valores medidos do sensor de temperatura e converter em graus kelvin, fahrenheit ou celsius, dependendo de qual sensor que estiver utilizando.

A partir disso, poderemos acompanhar no serial monitor a variação de temperatura e tensão do sensor.

Se liga no código:

/*   Código do projeto sensor de temperatura Família LM
    
     Monte seus próprios projetos sem dificuldade com programação! 
     ACESSE: https://flaviobabos.com.br/
*/
 
const int sensorPin = A0; // Esse é o pino do Arduino que irá ler a saída do sensor
float valorSensor;        // Essa variável irá ser usada para armazenar o input do sensor
float tensaoSaida;        // Essa variável irá ser usada para armazenar a tensão do sensor

float temperaturaC, temperaturaF;       // Variável que será usada para armazenar a temperatura em graus

// Descomentar se estiver usando o LM335
//float temperaturaK;      


void setup() {
  
  pinMode(sensorPin, INPUT); // Declare o tipo de pino que está conectado na placa
  Serial.begin(9600);        // Inicialize a comunicação serial em 9600 bits por segundo
   
}

void loop() {

  // Insira seu código principal aqui, para rodar repetidamente: 
  valorSensor = analogRead(sensorPin);          // Leia o sensor analógico e armazene seu valor
  tensaoSaida = (valorSensor * 5000) / 1024;    //Cálculo para obter a tensão de saída do sensor
  
  // Calculando a temperatura para o LM35 
  temperaturaC = tensaoSaida / 10;             // Convertendo a tensão em graus Celsius
  temperaturaF = (temperaturaC * 1.8) + 32;    // Convertendo para graus Fahrenheit
 
  // Calculando a temperatura para o LM335
  //temperaturaK = tensaoSaida / 10;
  //temperaturaC = temperaturaK - 273;
  //temperaturaF = (temperaturaC * 1.8) + 32;

  // Calculando a temperatura para o LM34
  //temperaturaF = tensaoSaida / 10;
  //temperaturaC = (temperaturaF - 32.0)*(5.0/9.0);

  Serial.print("Temperatura(ºC): ");           // Printando em graus Celsius
  Serial.print(temperaturaC);
  Serial.print("  Temperatura(ºF): ");         // Printando em graus Fahrenheit
  Serial.print(temperaturaF);
  Serial.print("  Tensão(mV): ");              // Printando a tensão em miliVolts
  Serial.println(tensaoSaida);
  delay(1000);                                 // Uma pequena pausa para não exibir dados errôneos
}

Explicação do código utilizado:

Seta AS VARIÁVEIS DO CÓDIGO

const int sensorPin = A0;

Primeiramente, comece identificando a porta analógica que o sensor está conectado no Arduino.

float valorSensor;
float tensaoSaida;

Depois, crie 2 variáveis para ler o sensor e outra para converter a tensão do sensor futuramente.

float temperaturaC;
float temperaturaF;

Declare mais 2 variáveis do tipo flutuante para armazenarem os valores de temperatura em °C e °F.

Seta CONFIGURANDO O SENSOR E O MONITOR SERIAL

  pinMode(sensorPin, INPUT);
  Serial.begin(9600);

Escreva no void setup () que o sensor é um componente INPUT e inicialize a comunicação serial à 9600 bits por segundo (bps) de forma a exibir as leituras no monitor serial.

Seta CONFIGURANDO A FUNÇÃO NATIVA LOOP ()

valorSensor = analogRead(sensorPin);

No void loop (), leia o valor saindo do sensor e armazene-o na variável valorSensor. Para ler o sensor basta usar a função analogRead () e inserir o pino do sensor como argumento da função.

Seta LEITURA DO SENSOR

tensaoSaida = (valorSensor * 5000) / 1024;

Como foi mencionado anteriormente, esses sensores possuem uma tensão proporcional à temperatura.

Já, os valores lidos no Arduino podem variar de 0 a 1023, no qual 0 condiz com 0 Volts e 1023 com 5 Volts. Portanto, podemos facilmente transformar a tensão de saída em mV de acordo com o algoritmo acima.

Seta CONVERSÃO DA TENSÃO EM °C

temperaturaC = tensaoSaida / 10;

Vimos também que a cada 10 mV corresponde a um aumento no valor da temperatura. Sendo assim, use a conversão acima para obter os valores de mV para °C.

Seta CONVERTA PARA A ESCALA FAHRENHEIT

temperaturaF = (temperaturaC * 1.8) + 32;

Já para obter essa medida em °F, basta usar a conversão dada acima.

PS: Lembrando que, caso você estiver usando os outros 2 sensores ao invés do LM35, basta descomentar as linhas do código e lembrar que o LM34 retorna a temperatura em °F e o LM335 em K.

Seta IMPRIMA OS VALORES NO MONITOR SERIAL

  Serial.print("Temperatura(ºC): ");
  Serial.print(temperaturaC);
  Serial.print("  Temperatura(ºF): ");
  Serial.print(temperaturaF);

Por último, você deve imprimir as leituras realizadas no monitor serial, utilizando os comandos abaixo:

  Serial.print("  Tensão(mV): ");
  Serial.println(tensaoSaida);

E, também não se esqueça de exibir os valores de tensão do sensor para verificar se está tudo funcionando ok.

Seta INSIRA UM DELAY

  delay(1000);

Forneça uma pausa de 1 segundo durante a execução do código para que o Arduino não faça leituras errôneas.

Família TMP 36/35/37

Sensor de temperatura TMP36

Esse sensor TMP36 se parece muito com a família dos sensores LM.

Mas, não se deixe enganar em pensar que por serem parecidos eles possuem as mesmas características técnicas.

A diferença entre eles começa na acurácia.

Enquanto os sensores TMP35, TMP36 e TMP37 possuem precisão de ± 2 °C os sensores LM chegam a ±0.5°C.

Pois bem!

Além disso, ao analisar o datasheet separado de cada um, você consegue notar que o range da família LM é de -55°C à 150°C enquanto que a faixa ideal dos sensores TMP é de -40°C à 125°C.

Já as principais funcionalidades dos sensores TMP 36/35/37, se destacam as seguintes:

  • Possuem uma tensão de baixa operação (2.7V até 5.5V);
  • Trabalham na faixa de -40°C até 125°C e operam até no máximo 150°C;
  • Não esquentam tão facilmente;
  • São estáveis a grandes cargas capacitivas aplicadas;
  • Não precisam de calibração para funcionar e são componentes que já fornecem valores na escala Celsius;
  • São qualificados para serem utilizados em automóveis.

Caso deseje se certificar de todas as especificações técnicas da família, acesse o datasheet do TMP36 aqui.

Para se ter uma ideia, encontramos aplicações desses sensores de temperatura:

  • no controle de sistemas ambientais;
  • na proteção contra superaquecimento de computadores;
  • no controle de processos industriais, e;
  • entre muitos outros.

Agora, a diferença entre os sensores TMP 36/35/37 você encontra melhor detalhado na tabela abaixo.

Veja só:

EspecificaçõesTMP35TMP36TMP37
Temperatura de trabalho10°C até 125°C-40°C até 125°C5°C até 100°C
Linearidade10 mV/°F10 mV/K20 mV/°C
Tensão de saída a 25°C250 mV750 mV500 mV

Algumas características são comuns para os 3 componentes, tais como:

  • Utilizam o mesmo protocolo de comunicação: interface analogRead() com o Arduino;
  • Possuem a mesma faixa de alimentação: 2.7V até 5.5V;
  • Possuem precisão de +/- 1°C em 25°C e precisão de +/- 2°C entre -40°C e e 150°C.

Pinagem do sensor de temperatura TMP36

Pinout do sensor de temperatura TMP36

Pinagem VCC LM35 – Esse é o pino positivo, portanto conecte-o ao +5V do Arduino;

– Conecte este no pino analógico A0 do Arduino;

– E, o GND você já sabe, né? Vai conectado no negativo (GND) do Arduino!

Montagem do sensor de temperatura Arduino e TMP36

A montagem proposta para este projeto usando o sensor TMP36 está representada abaixo:

Montagem sensor de temperatura TMP36

Da montagem do LM35 o que muda aqui é apenas o componente TMP36 pois, o restante permanece intacto: mesma polaridade de alimentação e mesmo pino analógico para coleta de dados.

Código utilizado no projeto

O código utilizado para programar o Arduino e o TMP36 é bastante similar com o usado para o LM35.

Então, olhe só:

/*   Código do projeto sensor de temperatura Família TMP
    
     Monte seus próprios projetos sem dificuldade com programação! 
     ACESSE: https://flaviobabos.com.br/
*/

const int sensorPin = A0;  // Esse é o pino do Arduino que irá ler a saída do sensor
float valorSensor;        // Essa variável irá ser usada para armazenar o input do sensor
float temperaturaC, temperaturaF;        // Variável que será usada para armazenar a temperatura em graus

void setup() {
  
  pinMode(sensorPin, INPUT);  // Declare o tipo de pino que está conectado na placa
  Serial.begin(9600);         // Inicialize a comunicação serial em 9600 bits por segundo
  
}

void loop() {
  
  // Insira seu código principal aqui, para rodar repetidamente: 
  valorSensor = analogRead(sensorPin);    // Leia o sensor analógico e armazene seu valor
  temperaturaC = valorSensor / 1024;       // Encontrando a porcentagem da leitura de input
  temperaturaC = temperaturaC * 5;          // Multiplique por 5V para obter a tensão
  temperaturaC = temperaturaC - 0.5;        // Subtraia o deslocamento  
  temperaturaC = temperaturaC * 100;        // Converta em graus Celsius
  temperaturaF = (temperaturaC * 1.8) + 32;  // Converta para graus Fahrenheit

 
  Serial.print("Temperatura atual (°C): ");  // Printando em graus Celsius
  Serial.println(temperaturaC);
  Serial.print("Temperatura atual (°F): ");  // Printando em graus Fahrenheit
  Serial.println(temperaturaF);
  delay(1000);                               // Uma pequena pausa para não exibir dados errôneos
}

Sensor de temperatura DS18B20

Dando sequência nos sensores de temperatura, temos no mercado um bastante preciso: o DS18B20.

Este é um sensor digital de temperatura que se apresenta em duas formas, o modelo em encapsulamento TO92 (modelo mais comum que também se assemelha a um transistor) e o modelo a prova d’água do sensor de temperatura Arduino DS18B20:

Sensor de temperatura DS18B20

Algumas características desse sensor DS18B20 são:

  • Escala graduada em graus Celsius;
  • Mede entre -55°C até 125°C;
  • Possui precisão de 0,5°C entre -10°C e 85°C;
  • Alimentação: 3V a 5,5V;
  • Consumo de energia: 1,5mA;
  • ID Único de 64 bits;
  • Protocolo One Wire.

Se interessou? Então acesse o datasheet do sensor DS18B20 aqui.

O protocolo One Wire nos permite que a comunicação com o Arduino seja feita com diversos sensores através de apenas uma porta digital.

Veja este tutorial de uso com 3 sensores DS18B20 utilizando uma mesma porta digital do Arduino.

Além disso, você pode definir através do protocolo, uma temperatura de alarme com temperaturas mínimas e máximas definidas no seu micro-controlador.

Por exemplo, quando a temperatura ultrapassar um determinado valor programado pelo usuário, um LED, um buzzer ou qualquer outro componente pode ser configurado para ser acionado para alertar o usuário.

Pinagem do sensor de temperatura DS18B20

Pinout sensor de temperatura DS18B20

– Ligue este pino no negativo do seu Arduino;

– Já este, conecte-o na porta digital 8 e após, insira um resistor pull-up de 4,7kOHMS e ligue-o no VCC;

Pinagem VCC LM35 – Espete este pino no +5Volts do microcontrolador.

Montagem do sensor de temperatura Arduino e DS18B20

Segue a montagem dos componentes do projeto usando o sensor de temperatura Arduino DS18B20:

Montagem sensor de temperatura DS18B20

Neste projeto, é necessário que utilizemos um resistor de pull-up de 4,7KOhms para manter a transferência de dados de forma estável.

PS: Observe que este sensor possui polaridade inversa aos sensores LM35 e TMP36, portanto, siga a montagem as conexões como mostradas na imagem acima para não queimar o componente.

Agora, caso você possuir o sensor DS18B20 a prova d’água, a montagem fica da seguinte forma:

Sensor de temperatura Arduino DS18B20

Com tudo montado na protoboard, vamos partir para a programação do sistema.

Código utilizado no projeto

Utilize o código abaixo para programar o seu sensor de temperatura Arduino:

/*   Código do projeto sensor de temperatura DS18B20
    
     Monte seus próprios projetos sem dificuldade com programação! 
     ACESSE: https://flaviobabos.com.br/
*/

#include <OneWire.h>
#include <DallasTemperature.h>
 
// Porta do pino de sinal do DS18B20
#define ONE_WIRE_BUS 8
 
// Define uma instancia do oneWire para comunicacao com o sensor
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

// Armazena temperaturas minima e maxima
float tempMin = 999;
float tempMax = 0;
 
DeviceAddress sensor1;

void setup()
{
  Serial.begin(9600);
  sensors.begin();
  // Localiza e mostra enderecos dos sensores
  Serial.println("Localizando sensores DS18B20...");
  Serial.print("Foram encontrados ");
  Serial.print(sensors.getDeviceCount(), DEC);
  Serial.println(" sensores.");
  if (!sensors.getAddress(sensor1, 0)) 
     Serial.println("Sensores nao encontrados !"); 
  // Mostra o endereco do sensor encontrado no barramento
  Serial.print("Endereco sensor: ");
  mostra_endereco_sensor(sensor1);
  Serial.println();
  Serial.println();
}
 
void mostra_endereco_sensor(DeviceAddress deviceAddress)
{
  for (uint8_t i = 0; i < 8; i++)
  {
    // Adiciona zeros se necessário
    if (deviceAddress[i] < 16) Serial.print("0");
    Serial.print(deviceAddress[i], HEX);
  }
}
 
void loop()
{
  // Le a informacao do sensor
  sensors.requestTemperatures();
  float tempC = sensors.getTempC(sensor1);
  // Atualiza temperaturas minima e maxima
  if (tempC < tempMin)
  {
    tempMin = tempC;
  }
  if (tempC > tempMax)
  {
    tempMax = tempC;
  }
  // Mostra dados no serial monitor
  Serial.print("Temp C: ");
  Serial.print(tempC);
  Serial.print(" Min : ");
  Serial.print(tempMin);
  Serial.print(" Max : ");
  Serial.println(tempMax);
   
  delay(3000);
}

Após entender o código e ter ele pronto na sua IDE, você deve baixar as seguintes bibliotecas:

  • One Wire, e;
  • Dallas Temperature.

Siga o passo-a-passo para download:

Download Biblioteca do Sensor de Temperatura DS18B20
Acesse: Sketch > Incluir Biblioteca > Gerenciar bibliotecas
Download Biblioteca One Wire
Instale a biblioteca one wire
Download Biblioteca Dallas Temperature
Instale a biblioteca dallas temperature

Explicação do código utilizado:

Seta AS BIBLIOTECAS DO CÓDIGO

#include <OneWire.h>
#include <DallasTemperature.h>

O código precisa começar incluindo as bibliotecas DallasTemperature.h e OneWire.h pois caso contrário seu código não irá funcionar. Além disso, devemos declarar qual pino o seu sensor está conectado (pino digital 8 do Arduino):

Seta CRIE UM OBJETO PARA CONTROLAR O DS18B20

// Porta do pino de sinal do DS18B20
#define ONE_WIRE_BUS 8

Na próxima linha, é preciso criar um objeto One Wire pois assim, nos dará permissão do controle do nosso componente.

Seta CRIE UMA INSTÂNCIA DO ONEWIRE E DEFINA UM OBJETO DA BIBLIOTECA DALLAS TEMPERATURE

// Defina uma instancia do oneWire para comunicacao com o sensor
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

Após isso, também criamos um objeto da biblioteca Dallas Temperature para passar a referência do objeto One Wire como parâmetro.

Seta INTERAJA COM O SENSOR ATRAVÉS DE COMANDOS BÁSICOS

Por fim, após a criação do objeto DallasTemperature, podemos criar comandos simples, como o exemplo abaixo, para interagir com o sensor.

Se liga:

begin()

A função procura sensores conectados no barramento e define a resolução de bits (12 bits) para cada um.

requestTemperatures()

Função que envia o comando para todos os sensores no barramento para realizar uma conversão de temperatura.

getTempCByIndex(deviceIndex)

Essa função lê e retorna a leitura de temperatura do sensor. O argumento deviceIndex nada mais é que a localização do sensor no barramento.

Se você estiver usando apenas um DS18B20 no barramento, defina-o como 0.

Como Usar Seu Projeto com Arduino para Crescer no Instagram

Projetos como o desenvolvimento de um sensor de temperatura com Arduino não são apenas uma oportunidade de aprendizado, mas também uma chance de compartilhar seu conhecimento e criatividade com uma audiência maior.

Muitos entusiastas de tecnologia adoram ver projetos DIY (faça você mesmo) e experimentos inovadores, e plataformas como o Instagram são perfeitas para divulgar suas criações.

Ao compartilhar o passo a passo do seu projeto de sensor de temperatura, você não só educa outros interessados no assunto, mas também posiciona seu perfil como uma referência em tecnologia. Isso pode atrair seguidores que compartilham da mesma paixão por Arduino e projetos eletrônicos, aumentando seu alcance e engajamento na plataforma.

Dica: Invista na compra de seguidores reais e brasileiros para dar um impulso inicial ao seu perfil. Com uma base sólida, seus conteúdos técnicos têm mais chances de se espalhar e alcançar um público que realmente valoriza suas contribuições. A combinação de conteúdo de qualidade e uma estratégia eficaz de crescimento pode transformar seu perfil em uma verdadeira comunidade de entusiastas por tecnologia.

Análise final dos sensores de temperatura

Comparação entre o TMP36, LM35 e DS18B20

TMP36 VS LM35 VS DS18B20

Com tantas informações sobre esses sensores, fica um pouco complicado filtrar qual o melhor para se usar, não concorda comigo?

Mas, digo o seguinte, caso seu projeto não requerer muita precisão e não necessitar de um range amplo de medição, eu recomendo o TMP36 para facilitar na aplicação.

No entanto, se seu projeto for algo como um sensor interno conectado a um Arduino que não irá coletar temperaturas negativas, então provavelmente eu ficaria com a precisão extra do LM35, já que a tensão de alimentação e a saída negativa não seria uma preocupação.

Para facilitar na escolha veja as tabelas abaixo.

Tabela de comparação do TMP36:

ProsContras
Faixa de tensão operacional de 2,7 V a 5,5 V perfeita para projetos de fabricantesPrecisão menor do que LM35
Toda a faixa de temperatura suportada representada como saída de tensão positivaFaixa de temperatura ligeiramente menor

Tabela de comparação do LM35:

ProsContras
Precisão de ±0,5 ° CA tensão de alimentação mínima de 4 V proibe a integração fácil de 3,3 V
Excelente faixa de temperaturaRequer saída negativa para temperaturas negativas

Já o DS18B20 é utilizado em uma situação/ambiente mais específico do que os outros sensores, ou seja, onde é preciso medir a temperatura de um líquido ou de outra coisa no qual o sensor precisa estar bem protegido e bem vedado.

Com relação aos preços dos sensores, não há muita variação.

Após fazer uma breve pesquisa do mercado e dependendo da época, você deve encontrar o seguinte (vendedores da China):

SensoresPreço
LM35R$ 7,95
TMP36R$ 7,34
DS18B20R$ 7,84
DS18B20 (a prova d’água)R$ 9,59

E aí, com qual sensor de temperatura Arduino você mais se identificou? Comente aqui embaixo e me deixe saber 👇


Foto escritor

Flávio Babos

Flávio é especialista em tecnologia, empreendedor e estudante de Engenharia Mecatrônica pela Universidade Federal de Uberlândia (UFU). Já desenvolveu diversos projetos de elétrica, eletrônica e atualmente dedica seu tempo em escolher os melhores produtos de tecnologia para ajudar sua audiência no processo de decisão de compra na internet.


4 Comentários

Foto escritor

Francisco

Posso substituir o TPM 35 por um LM35?

Foto escritor

Joel Flavio Caldas

Ambos os sensores são bastante semelhantes e fornecem medições de temperatura analógicas.

O TMP35 e o LM35 são sensores de temperatura de junção de junção PN que geram uma tensão de saída proporcional à temperatura. A principal diferença entre eles é a forma como a temperatura é convertida em tensão.

O TMP35 gera uma tensão de saída de 10 mV por grau Celsius, ou seja, para cada grau Celsius de aumento na temperatura, a tensão de saída aumenta em 10 mV. Já o LM35 gera uma tensão de saída de 10 mV por grau Celsius, mas a tensão de saída começa em 0°C, o que significa que a tensão de saída é diretamente proporcional à temperatura absoluta.

No entanto, a maioria dos Arduinos possui conversores analógico-digitais (ADC) embutidos, que são capazes de medir a tensão de saída de ambos os sensores. Portanto, você pode substituir o TMP35 pelo LM35 sem problemas, desde que faça as alterações necessárias no código para acomodar a diferença nas características de saída dos sensores.

Certifique-se de ler a documentação do LM35 e ajustar as equações de conversão de tensão para temperatura em seu código, para garantir que as leituras de temperatura sejam precisas.

Foto escritor

Santo Oliani Junior

Sensacional a explicação. Sempre uso essa página pra explicar os sensores de temperatura aos meus alunos, pois é muito didático. Parabéns Flavio e muito obrigado por compartilhar com a gente seu vasto conhecimento.

Foto escritor

Flávio Babos

Fico imensamente grato que tenha gostado Junior!! Abraços!

Deixar comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Comentário