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: 38328

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 Pedro Humberto Júnior em 17 abril 2012 às 13:55

Esse codido fonte. Não funfa.

sketch_apr17a.cpp:3:18: error: Tone.h: No such file or directory
sketch_apr17a:9: error: 'Tone' does not name a type
sketch_apr17a:10: error: 'NOTE_A3' was not declared in this scope
sketch_apr17a:10: error: 'NOTE_G4' was not declared in this scope
sketch_apr17a.cpp: In function 'void setup()':
sketch_apr17a:24: error: 'player' was not declared in this scope
sketch_apr17a.cpp: In function 'void loop()':
sketch_apr17a:65: error: 'player' was not declared in this scope

Comentário de ALLAN DAVID SILVA DA COSTA em 6 abril 2012 às 11:37

Gostaria de sugerir um projeto:

que acham de enviarmos as informações de temperatura para uma pagina na internet (feita por nos). Uma especie de malhar de sensoriamento. Assim, poderiamos aprender varias coisas, desde a montagem do circuito acima até a comunicação com a net. estariamos prestando um serviço, pois, bastaria entrar no site e ter as temperaturas on-line. Sei que parece meio besta, mas seria um bom aprendizado.

Algo do tipo: colocaria um sensor desse na minha casa; Em um mapa marcaria a minha residência e ficaria mostrando a leitura feita.

Bem, é só uma ideia.

aberto para criticas e sugestões.

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço