Leitura de temperatura com Arduino

arduino_lm35.jpg

Desta vez, vamos fazer a leitura da temperatura ambiente com o Arduino . Para isso usei o LM35 , um sensor de temperatura da National Semiconductors, fácil de usar e barato de comprar. Custa em torno de R$ 5,00 a unidade para o invólucro de plástico.

O funcionamento dele é muito simples:

A saída no pino Vout gera uma voltagem proporcional a temperatura medida pelo sensor. Cada 0,01 Volt corresponde a 1 grau centígrado. Consequentemente, se no pino Vout eu medir 1 Volt então a temperatura será de 100 graus centígrados.

Liguei a saída Vout do LM35 na entrada Analog In 5 do Arduino . As entradas Analog In do Arduino possuem resolução de 10 bits e devolvem um valor de 0 a 1024 correspondente ao valor lido comparado a tensão de referencia que é 5 Volts.

O que quer dizer isso ? Se ao usar a função analogRead(5) , o retorno for 1024 então a tensão no pino é de 5 Volts , se ler 512 então a tensão é 2.5 Volts e daí por diante.

No caso do LM35 para transformar a tensão lida em temperatura que possa ser entendida é necessário usar a equação :

temperatura = ( 5 * valor_lido_no_LM35 * 100) / 1024

Obs : 5 é o valor da tensão de referencia

Depois é só enviar pela serial do Arduino para o PC e gravar em arquivo , exibir na tela , exibir em formato gráfico , etc.

arduinolm35.jpg

A imagem abaixo é de um programa que adaptei de um exemplo em Processing para receber as temperaturas enviadas pelo Arduino pela porta serial e após, gerar um gráfico e gravar as temperaturas em um arquivo texto. As variações na temperatura foram conseguidas colocando o dedo em cima do LM35.

graftemp.jpg


Posts relacionados:
Liberada Arduino IDE versão 0016
AVR Technical Library DVD
AvrFreaks

Links:
Programa para ler temperatura no arduino
Programa em Processing para receber temperatura do Arduino, gerar grafico e gravar em arquivo
Site da linguagem e ambiente Processing
Datasheet do LM35

33 thoughts on “Leitura de temperatura com Arduino”

  1. Olá Jeronimo.

    Estou interessado na arquitetura do Arduino, e verifiquei que você e o Guiuliano são os 2 especialistas do Brasil.

    Gostaria de fazer algumas perguntas, e ficaria feliz se pudéssemos conversar por e-mail.

    O meu é danielcabib@gmail.com

    Obrigado

    Daniel

  2. Estou tentando montar um projeto para leitura de temperatura utilizando o LM35 e cheguei ate este site. Não tenho informações sobre o “arduino” gostaria que me informa-se qual seu funcionamento etc..

    obrigado pela atenção

  3. Ok, obrigado pela dica, estou omnando um Arduino serial já, sabe de algum componente eletrônico que sirva para medir pressão atmosférica e umidade do ar?

    abraço,,,

  4. Bravo;

    First , sorry , i’m french…an I speak english.

    It’s very cool what you have do .

    I have try you code and I have a complet different result.0 27 23 02 0 52 0 49 0 3 5 every second.
    I’ve a few question, did you use a resistor with a 100KOHM or 10KOHM, in you drawing .
    Thanks and very good job.

  5. LordH ,
    Thanks for your comment . I have used a 100 K Ohms resistor on this circuit. The results that I have obtained were in accordance with the measurements made with a clinical mercury thermometer. I suggest that you verify the connections of your circuit and sand the terminals of the lm35 with a sandpaper , it´s possible to have glue or corrosion at it.
    Good luck !

  6. Estou montando um sistema de monitoramento de temperatura, a temperatura máxima será de 650 °C, minha pergunta é posso trabalhar com o arduino e um termopar tipo J?

    Abraços;

  7. Denner ,
    A principio , não vejo nenhum impedimento , com um teste rapido e com os devidos cuidados, voce poderia determinar a viabilidade do uso. O que vejo de problema é que o Arduino não foi projetado para trabalhar em ambientes hostis , na presença de ruidos “industriais” , etc. Sugiro que você procure um equipamento mais adequado ao ambiente que você deseja monitorar/controlar ou modifique o projeto do Arduino para atender as suas necessidades . Estas modificações seriam a troca dos componentes ( microprocessador, resistores etc.) por componentes que suportem um regime de temperatura mais alto. mudança do layout da placa, modificação do projeto para suportar ruidos, isolamentos nos pinos de entrada , colocação em um gabinete adequado e vai por ai afora. No site da Atmel informa que o ATMEGA168 na versão automotiva suporta até 150 graus celsius : http://www.atmel.com/dyn/products/product_card.asp?PN=ATmega168%20Automotive

  8. Boa noite! Estou fascinato pela estrutura do arduino e decidi fazer um controle de temperatura para uma estufa com o arduino, gostaria de saber se vc pode me dar algumas dicas..
    fico no aguardo.
    Obrigado.
    Bruno Martins

  9. O Arduino é realmente fascinante. Compre ou monte um e divirta-se experimentando e aprendendo o seu funcionamento . Para controlar a estufa voce precisará conhecer o seu funcionamento normal, como esquenta , como desliga. Basicamente trata-se de colocar sensores que verificarão a temperatura atual e atraves do arduino , comparar com a temperatura desejada e atuar na estufa , modificando a sua temperatura de trabalho.
    Experimente , consulte os projetos ja existentes na Internet e qq duvida entre em contato
    Boa Sorte !!

  10. Olá,
    Estou envolvido em projeto de sistema na faculdade e gostaria de saber se utilizando o arduíno eu poderia criar um sistema web com java para controlar dispositvos elétricos e eletrônicos, como ligar/desligar lâmpadas, tv, geladeira e etc.

  11. Olá … Blogdoje
    gostei muito do seu projeto… parabéns
    Gostaria de saber se você pode me ajudar quanto a ESCREVER e LER com o Arduíno em um arquivo TXT.
    Desde já agradeço

  12. Oi, gostei mt do projeto. Gostaria de começar um projeto de controle de temperatura utilizando o arduino e este esquema, mas seria para um tanque. Como poderia ser utlizado lm35 em contato com algum liquido?
    Abraço

  13. Rodrigo, è necessário protege-lo para que não aconteçam curtos entre os terminais. Não me lembro o site mas já vi um projeto onde o lm35 foi colocado dentro de um tubinho de plastico termo-retratil , o mesmo usado para proteger fios e colocado dentro de um recipiente com agua.
    Boa sorte !!

  14. Boa tarde , então preciso da sua ajuda . Nosso projeto final de curso e usando o arduino com sensor de pressão diferencial mpx 4115 . Vamos projetar um medidor digital de agua residencial , poderia da uma dica na programação ? Obrigado

    Michel rodrigues dos santos
    engmichel38@gmail.com

  15. Michel, o Arduino é uma plataforma de prototipação, ou seja é para experimentar, testar e até queimar sem ficar com dor na consciencia. Inicie o seu projeto, esperimente suas idéias e alguma duvida especifica sobre programação é só postar que tentarei ajudar.
    Boa Sorte !

  16. Olá, estou desenvolvendo meu tcc com arduino e android, queria que o arduino fizesse a leitura de sensores de umidade e temperatura, porém ele deveria mandar essa informação a uma aplicação em java rodando no pc (que seria enviada a um celular depois) eu consigo enviar comandos do celular ao pc e do pc ao arduino, só não sei fazer o inverso, do arduino ao pc (em java)
    para enviar do java ao arduino é:
    serialOut.write(int msg);
    e o arduino recebe:
    Serial.print(msg);

    como seria o inverso?
    qualquer ajuda é bem vinda.. abçs a todos!!

  17. Giovanni , sugiro que voce uma olhada na pagina de referencia para as funcos que usam a porta serial do Arduino em : http://arduino.cc/en/Reference/Serial
    O básico do uso da serial no Arduino, na versão 0023 da IDE do Arduino é

    setup :
    Serial.begin(9600) ;

    enviar do Arduino para o pc:
    Serial.write(val) ;

    receber dado enviado do PC para o Arduino :
    incomingByte = Serial.read();

    Boa sorte !

  18. Olá Amigo,

    estou tendo usar o codigo para grava o arquivo texto no pc mas está dando um erro no import processing.serial.*;. Como fazer para usar esta opção?

    Abraço

  19. Gilmar ,
    Este codigo deve ser executado dentro da IDE do Processing. Por favor explique melhor a sua duvida , onde voce está executando o código , etc.
    Abs,
    Jeronimo

  20. Olá,

    Gostei muito do seu trabalho, estamos fazendo algo parecido por aqui, mas precisamos usar 10 arduinos para medir temperatura em locais diferentes e cada um gerar seu respectivo txt e gráfico.

    Por enquanto os dados estão se misturando e o resultado é de apenas um gráfico com os dados completamente embaralhados.

    Obrigado.

  21. Ola Felipe , de uma olhada no projeto Thingspeak ( thingspeak.com ). É um software coletor de dados de diversos arduinos e que permite a geração de gráficos de cada uma deles individualmente ou com um pouco de software gerar medidas estatiticas.
    Estamos utilizando no projeto monitora-cerrado.net.br que visa coletar os dados climaticos da cidade de Brasilia. Desejo sucesso ao seu projeto.
    Abs

  22. Os meus parabéns pelo seu trabalho, hoje em dia é difícil encontrar quem dê sem querer receber. Em breve tenho um projecto automotivo, medir pressao turbo, temperatura gases escape, temperatura ar admissão e apresentar dados num displays LCD rgb 16×2. Será que posso ligar as entradas analógicas do arduino aos sensores já existentes no carro em paralelo com a centralina? Todos eles trabalham com 5v como sendo o valor max medido. Abraço

  23. Boa noite, estou começando no arduino, gostaria de saber como gero o modo
    gráfico para o sensor de temperatura, vi que tem o código pronto, mas qual IDE
    eu uso e como faço ele usar as informações da serial do arduino para gerar o
    modo gráfico?
    Grato,
    Fernando Jr.
    Academico de Sistemas de Informação.

  24. Estou pensando em usar um arduino para controlar remotamente (pelo computador) resistências elétricas. Preciso de comprar e programar o arduino para ativar dois relês e ler dois sensores termopar tipo k. Qual seria o chip recomendado para isso?

Leave a Reply

Your email address will not be published. Required fields are marked *