Projeto medidor de temperatura com LM335 e LCD

Este é um projeto que mostra como fazer um projeto com um sensor de temperatura, mostrar os dados de temperatura no LCD e acender Leds e tocar um buzzer caso a temperatura esteja muito alta.

Lista de materiais: Arduino, Leds, Resistores de 200 ohm, Buzzer, sensor de temperatura LM335, resistor de 1K ohm, um display LCD 16x2, um potenciometro e jumpers.

A figura abaixo mostra as ligações:

No projeto, o Arduino recebe dados analógicos do sensor de temperatura LM335 e converte em graus Celsius ou Fahrenheight. Se a temperatura estiver entre 20ºC e 25ºC, um Led acenderá. Se estiver entre 25 e 30, dois leds acenderão e se estiver mais que 30ºC, os três leds acenderão e o buzzer apitará. A programação está demonstrada abaixo:

// include the library code:

#include <LiquidCrystal.h>

#include <Tone.h>

int sensorPin = 0;

int led1=9;

int led2=8;

int led3=7;

int led4=6;

int buzzer=10;

Tone player;

int note[]={NOTE_A3,NOTE_G4};

// initialize the library with the numbers of the interface pins

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {

// set up the LCD's number of columns and rows:

Serial.begin(9600);

lcd.begin(16, 2);

// Print a message to the LCD.

lcd.print("Lab de Garagem");

pinMode(led1,OUTPUT);

pinMode(led2,OUTPUT);

pinMode(led3,OUTPUT);

pinMode(led4,OUTPUT);

pinMode(buzzer,OUTPUT);

player.begin(10);

}

void loop() {

int reading = analogRead(sensorPin);

// set the cursor to column 0, line 1

// (note: line 1 is the second row, since counting begins with 0):

lcd.setCursor(0, 1);

// print the number of seconds since reset:

float voltage = (reading) * 5.0;

voltage /= 1024.0;

// print out the voltage

Serial.print(voltage); Serial.println(" volts");

// now print out the temperature

float temperatureC = (voltage - 0.5) * 10 ; //converting from 10 mv per degree wit 500 mV offset

//to degrees ((volatge - 500mV) times 100)

Serial.print(temperatureC);

Serial.println(" degrees C");

lcd.print(temperatureC);

lcd.print(" Celsius");

// now convert to Fahrenheight

float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;

Serial.print(temperatureF); Serial.println(" degrees F");

if(temperatureC<25)

{

digitalWrite(led1,HIGH);

digitalWrite(led2,LOW);

digitalWrite(led3,LOW);

digitalWrite(led4,LOW);

}

if((temperatureC>=25) && (temperatureC<30))

{

digitalWrite(led1,HIGH);

digitalWrite(led2,HIGH);

digitalWrite(led3,LOW);

digitalWrite(led4,LOW);

}

if((temperatureC>=30) )

{

digitalWrite(led1,HIGH);

digitalWrite(led2,HIGH);

digitalWrite(led3,HIGH);

player.play(note[0]);

delay(200);

player.play(note[1]);

delay(200);

player.stop();

}

delay(500);

}

Referências:

http://arduino.cc/en/Tutorial/LiquidCrystal

http://arduino.cc/playground/Main/InterfacingWithHardware

http://labdegarag1.lojatemporaria.com/kits/starter-kit-com-arduino-...

Depois de feito o UPLOAD para o Arduino, um led piscará e o display LCD mostrará o nome Lab de Garagem na primeira linha e na segunda linha mostrará o valor que está sendo obtido pelo sensor de temperatura em graus Celsius.

Pronto! Agora você tem seu próprio medidor de temperatura ambiente. Boa sorte e boa diversão! Se quiser, poste aqui caso tiver dúvidas ou sugestões!



Exibições: 38321

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de jackson andrade em 29 agosto 2018 às 21:10

massa

Comentário de Kelve Kheaffer Rodrigues Pereira em 21 novembro 2016 às 19:33

Galera montei um projeto com sensor LM35 de temperatura com monitor LCD esta funcionando legal, mas tenho um modulo rele acionado via controle remoto IR para acionar a lampada do quarto, mas não consigo juntar os códigos do modulo rele com o de temperatura mais LCD. Sei que tem que colocar as partes iguais juntas, porem sem sucesso, alguém pode me dar uma luz sobre o que tenho que fazer ou que estou fazendo errado? 

Desculpem a minha falta de informação mas e que sou iniciante ainda 

Comentário de tiago da silva pereira em 25 junho 2016 às 15:19

esse codigo é para TMP36! O LM335 é 10mV/K!

Comentário de Renan Azevedo em 24 setembro 2015 às 13:34

cara, esta linguagem esta errada nao esta?

nao consigo compilar


sketch_sep24a.ino:3:18: fatal error: Tone.h: No such file or directory
compilation terminated.
Erro compilando.

Comentário de Geyce Oliveira em 8 junho 2014 às 17:18

Boa tarde...  O meu arduino é uno, esta dando erro na linha Tone player, porque? 

Comentário de Roberto Leite em 2 maio 2014 às 15:40

Salve Henrique!

Para desenhar o circuito sugiro o Fritzing. Leva um tempinho para aprender como funciona mas ele produz resultados bem satisfatórios no desenho da placa.

Para testar a precisão da temperatura arrumei um termometro de infravermelho, que miro na capsula do LM335. Parece bem preciso.

Sobre o problema que eu havia comentado do meu backlight do LCD: foi comida de bola minha: no datasheet dele recomenda um resistor na alimentação do backlight. Coloquei o resistor e tudo ficou suave.

Espero ter contribuido.

Abraço!

Roberto

Comentário de rodrigo da cruz em 30 abril 2014 às 21:38

alguem sabe pq no meu arduino uno da erro na linha "tone player"

Comentário de Henrique G de Castro em 13 março 2014 às 12:20

Pessoal,

Fiz um medidor de temperatura com alarme com um thermistor 1k NTC, que ja esta funcionando na protoboard. preciso de ajuda para 

a. transformar em produto acabado (circuito+"caixa")

b. testar/avaliar precisao em uma escala de 0-50 C

b1. alguém sabe o que oferece melhor precisao nesta faixa (thermistor/LM335/outro)?

b2. algum instrumento para eu testar precisão na medição de temperatura?

Alem da finalização acima, estou trabalhando com versões mais sofisticadas com envio de email, alertas no iPhone, etc.

Quem estiver trabalhando em temas relacionados e quiser unir esforços, estou a disposição.

Abs

Comentário de Roberto Leite em 6 fevereiro 2014 às 23:40

Salve camarada! Só para confirmar: você está usando MESMO o LM335 ou é o LM36? Pergunto pois estou com o LM335 e ele mede os graus em Kelvin. Já o LM36, que vem no kit do arduino, esse sim já entrega a leitura pronta para celsius. http://www.ti.com/lit/ds/symlink/lm135.pdf

Estou trabalhando num projeto que tem muito a ver com o que vc fez. No entanto estou com problemas ao ativar o backlight do LCD. Quando faço isso o regulador de tensão do arduino começa a esquentar imediatamente.
 Você chegou a ativar o backlight do seu lcd? Valeu.

Comentário de jubileo de oliveira em 23 agosto 2013 às 13:39

bom ddia

com este projeto o que tenho que fazer para enviar estes valores de temperatura via sms para um celular

tem alguma dica

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço