0

Como medir Temperatura com o LM35 e o Arduino

Em diversas aplicações temos que fazer a leitura de variáveis físicas, tais como a temperatura, distância, entre diversas outras. Neste tutorial iremos aprender como fazer a leitura de temperatura usando o LM35, um sensor barato e de ótima precisão.

Sistemas autónomos

Quando pensamos em um sistema autónomo, pensamos em um sistema que faça a tarefa designada por conta própria, sem a necessidade de interferência do homem. Para isso, é fundamental que o seu sistema autónomo entenda as variáveis físicas que serão importantes para o desempenho da atividade.

Pense numa geladeira ou num ar condicionado. Neles devemos definir o valor da temperatura desejado e a partir desse valor o equipamento deve controlar essa variável. Para que ele tenha capacidade de controlar a temperatura, é fundamental que o sistema possa ler a variável. É ai que entram os sensores.

Sensores

Da famosa enciclopédia online Wikipédia, temos que:

“Um sensor é um dispositivo que responde a um estímulo físico/químico de maneira específica e mensurável analogicamente.”

Ou seja, sensores são dispositivos capazes de ler variáveis físicas ou químicas do ambiente e transformá-las em informação.

Qualquer processo automático possui sensores. Em industrias, onde há processos de produção automatizados, temos muitos tipos de sensores medindo as mais diversas variáveis do processo: temperatura, pressão, peso, pH, entre muitos outros. Devido a importância da leitura dessas variáveis, existe uma área responsável por instrumentos de medição, a Instrumentação Industrial.

Nós, seres humanos, também somos feitos de vários sensores que nos ajudam a desenvolver nossas tarefas. Os nossos cinco sentidos: Olfato, audição, paladar, tato e visão, nada mais são do que conjuntos de sensores que colhem informações do ambiente para que o cérebro possa tomar decisões adequadas em cada situação.

Usando sensores

Tão importante quanto medir uma variável física é transformá-la numa informação legível pelo cérebro do sistema autónomo, nosso Arduino, por exemplo. Pensando em eletrónica, essa informação pode ser digital ou analógica.

  • Digital: Quando a informação é passada através de valores lógicos Altos(1) ou valores lógicos baixo(0).
  • Analógico: Quando a informação pode assumir qualquer valor dentro de um máximo e um mínimo. Quando trabalhamos com eletrónica, geralmente essa informação é dada por um valor de corrente ou tensão.

LM35

O sensor LM35 é um sensor de precisão que apresenta uma saída de tensão linear proporcional à temperatura em que ele se encontrar no momento, tendo em sua saída um sinal de 10mV para cada Grau Célsius de temperatura.

Esse sensor não necessita de qualquer calibração externa para fornecer com exatidão, valores temperatura com variações de ¼ºC ou até mesmo ¾ºC dentro da faixa de temperatura entre –55ºC e 150ºC.

Ele pode ser usado de duas formas, com alimentação simples ou simétrica, dependendo do que se desejar como sinal de saída, mas independentemente disso, a saída continuará sendo de 10mV/ºC.

Em cada uma dessas duas formas de alimentação, o range de temperatura, ou seja, a temperatura máxima e mínima medida com exatidão, é diferente.

Modo escala completa – (-55ºC a 150ºC)

 

Modo Básico – (2ºC a 150ºC)

Uma vantagem é o fato desse sensor drenar apenas 60μA para estas alimentações. Dessa forma, seu auto-aquecimento é de aproximadamente 0.1ºC ao ar livre.

O sensor LM35 é apresentado com vários tipos de encapsulamentos, sendo o mais comum o TO-92, que mais se parece com um transístor, e oferece ótima relação custo benefício, por ser o encapsulamento mais barato sem diferenças em seu uso ou exatidão.

Veja a folha de dados dele clicando aqui.

 

Medindo temperatura

Material a utilizar:

  • Fios Jumper’s
  • Breadborad
  • Arduino Uno Rev3
  • LM35

Agora vamos ligar os componentes do projeto. Para isso, desligue o cabo USB de seu Arduino e monte seu circuito conforme a figura a seguir.

 

Veja como ficou o nosso:

 

Ligue o Arduino ao computador e abra o IDE Arduino.

Antes de carregar um programa, precisa selecionar qual porta deseja usar para fazer carregar o programa no Arduino (upload). Dentro do Arduino IDE, clique no menu Ferramentas (tools) e abra o submenu Porta(Port). Clique na porta que seu Arduino está conectado, tal como COM3 ou COM4.

Geralmente aparece o nome da placa Arduino : “COM3 (Arduino Uno)”.

 

Também precisa garantir que o tipo de placa apropriado está selecionado em Ferramentas(Tools) no submenu Placa (Board).

 

Programa

Crie um programa (sketch) e salve com o nome de “programa_sensor_de_luz”.

Com o seu programa salvo, escreva nele o código conforme escrito abaixo.

 

//Sensor de temperatura usando o LM35
 
const int LM35 = A0; // Define o pino que lera a saída do LM35
float temperatura; // Variável que armazenará a temperatura medida
 
//Função que será executada uma vez quando ligar ou resetar o Arduino
void setup() {
Serial.begin(9600); // inicializa a comunicação serial
}
 
//Função que será executada continuamente
void loop() {
temperatura = (float(analogRead(LM35))*5/(1023))/0.01;
Serial.print("Temperatura: ");
Serial.println(temperatura);
delay(2000);
}

 

Após escrever o código, clique em Upload para que o programa seja transferido para seu Arduino.
aso tenha ocorrido tudo conforme esperado, poderemos fazer a leitura da temperatura através do monitor serial. Abra o monitor serial para verificar o que está sendo lido na entrada A0.

Software

No nosso programa usamos o comando de leitura analógica, já estudado no tutorial Entradas e Saídas Analógicas, para fazer a leitura do valor em A0. É importante que o leitor entenda como eles funcionam. Experimente ler nossos tutoriais anteriores.

Em resumo, nosso programa lerá qual é o valor do sinal em A0, que varia de 0 a 1023, onde 0 corresponde a 0Volts e 1023 corresponde a 5Volts. Como sabemos, 1ºC é igual a 10mV. Sendo assim, temos:

 

Tensão em A0 = (Valor lido em A0)*(5/1023)

Temperatura = Tensão em A0/10mV

 

Logo:

 

Temperatura =  [(Valor lido em A0)*(5/1023)]/10mV

 

Em linguagem de programação, ficará:

 

temperatura = (float(analogRead(LM35))*5/(1023))/0.01;

 

Perceba que colocamos o comando de leitura do valor analógico, analogicRead, dentro de float(). Você saberia me dizer o motivo?

Quando o Arduino faz uma leitura analógica, ele converte o valor lido, que pode ser um valor de tensão entre 0V e 5V, em um número entre 0 e 1023. Ou seja, o Arduino divide 5Volts, que é o maior valor que ele é capaz de ler, em 1024 partes iguais e lhe informa quantas partes tem o valor que ele está medindo.

O número que o Arduino lhe informa é do tipo inteiro, contudo, o valor de temperatura é um numero racional, que pode assumir valores decimais. Por conta disso, no nosso programa, declaramos a temperatura como uma float.1

Em programação, quando multiplicamos uma variável inteira por uma variável racional, o programa considera que o resultado deve ser inteiro, eliminando a parte decimal da variável. Dessa forma, para que tenhamos um resultado racional, devemos transformar o número inteiro em um número racional.

Em virtude disso, em nosso código foi necessário colocar o comando de leitura do valor analógico, analogicRead, dentro de float().

numeroracional = float(numero);
temperatura = (float(analogRead(LM35))*5/(1023))/0.01;

 

Sempre que for necessário fazer um calculo com o valor analógico, precisamos convertê-lo para uma variável do tipo float.

Em alguns casos, precisamos transformar uma variável qualquer para o tipo inteiro. O procedimento é o mesmo, ou seja, basta colocar o valor ou variável dentro dos parenteses de int();

 

numerointeiro= int(numero);
temperatura = int((float(analogRead(LM35))*5/(1023))/0.01);
Se usamos o int() no calculo de temperatura, tal como mostrado acima, teremos um resultado sem os números decimais. Faça o teste.

 

Se usamos o int() no calculo de temperatura, tal como mostrado acima, teremos um resultado sem os números decimais.

 

Artigo gentilmente cedido por Vida de Silicio

 

Todos os produtos utilizados neste artigo podem ser encontrados na Loja de Eletrónica e Robótica – ElectroFun.

Gostaram deste artigo? Deixem o vosso comentário no formulário a baixo e partilhem com os vossos amigos.

Não se esqueçam de fazer like na nossa Página no Facebook.

Podem ainda colocar as vossas dúvidas no nosso Forum da Comunidade Arduino em Portugal ou no nosso Grupo no Facebook Arduino Portugal – Qual o teu projeto?

Comments

Comentários

mariana guedes

Deixar uma resposta