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 Fabio Gabriel O Marques em 7 março 2013 às 11:06

Thiago,

acabei de ter esse problema tambem, por causa da biblioteca Tone, resolvi compilando o codigo pelo IDE 0023

Comentário de Thiago Maranduba Silva em 7 março 2013 às 7:25

BOM DIA ESTOU INICIANDO COM ARDUINO E PEQUEI ESSE CODIGO PRA ENTENDER E ESTAR A DAR UNS ERROS QUE NAO CONSEGUIR DECIFRAR. O MEU ide É O 1.0.2 E A BIBLIOTECA TONE ESTA SALVA MAS ESTA DANDO ERROS TIPO ESSES:

C:\Users\Micro 01\Downloads\arduino-1.0.2-windows\arduino-1.0.2\libraries\Tone\Tone.cpp: In member function 'void Tone::begin(uint8_t)':
C:\Users\Micro 01\Downloads\arduino-1.0.2-windows\arduino-1.0.2\libraries\Tone\Tone.cpp:121: error: 'bitWrite' was not declared in this scope
C:\Users\Micro 01\Downloads\arduino-1.0.2-windows\arduino-1.0.2\libraries\Tone\Tone.cpp:123: error: 'digitalPinToPort' was not declared in this scope
C:\Users\Micro 01\Downloads\arduino-1.0.2-windows\arduino-1.0.2\libraries\Tone\Tone.cpp:123: error: 'portOutputRegister' was not declared in this scope
C:\Users\Micro 01\Downloads\arduino-1.0.2-windows\arduino-1.0.2\libraries\Tone\Tone.cpp:124: error: 'digitalPinToBitMask' was not declared in this scope
C:\Users\Micro 01\Downloads\arduino-1.0.2-windows\arduino-1.0.2\libraries\Tone\Tone.cpp: In member function 'void Tone::play(uint16_t, uint32_t)':
C:\Users\Micro 01\Downloads\arduino-1.0.2-windows\arduino-1.0.2\libraries\Tone\Tone.cpp:198: error: 'OUTPUT' was not declared in this scope
C:\Users\Micro 01\Downloads\arduino-1.0.2-windows\arduino-1.0.2\libraries\Tone\Tone.cpp:198: error: 'pinMode' was not declared in this scope
C:\Users\Micro 01\Downloads\arduino-1.0.2-windows\arduino-1.0.2\libraries\Tone\Tone.cpp:294: error: 'bitWrite' was not declared in this scope
C:\Users\Micro 01\Downloads\arduino-1.0.2-windows\arduino-1.0.2\libraries\Tone\Tone.cpp: In member function 'void Tone::stop()':
C:\Users\Micro 01\Downloads\arduino-1.0.2-windows\arduino-1.0.2\libraries\Tone\Tone.cpp:361: error: 'digitalWrite' was not declared in this scope

ALGUEM PODE ME AJUDAR ESTOU COM DUVIDA. 

Comentário de Johnatan Fernando em 25 novembro 2012 às 19:47

Hugo Rafael e  Valter simão Gonçalves  descobri o problema que causa este erro!

É a versão do Arduino Software, o que eu estava usando era o mais recente (1.0.2) ai baixei o 0022 e estalei a biblioteca Tone e rodou direitinho...

 

Comentário de Johnatan Fernando em 24 novembro 2012 às 13:08

Estalei a biblioteca Tone e mesmo assim ta dando este erro:

C:\Users\Johnatan\Documents\Arduino\libraries\Tone\Tone.cpp: In member function 'void Tone::begin(uint8_t)':
C:\Users\Johnatan\Documents\Arduino\libraries\Tone\Tone.cpp:121: error: 'bitWrite' was not declared in this scope
C:\Users\Johnatan\Documents\Arduino\libraries\Tone\Tone.cpp:123: error: 'digitalPinToPort' was not declared in this scope
C:\Users\Johnatan\Documents\Arduino\libraries\Tone\Tone.cpp:123: error: 'portOutputRegister' was not declared in this scope
C:\Users\Johnatan\Documents\Arduino\libraries\Tone\Tone.cpp:124: error: 'digitalPinToBitMask' was not declared in this scope
C:\Users\Johnatan\Documents\Arduino\libraries\Tone\Tone.cpp: In member function 'void Tone::play(uint16_t, uint32_t)':
C:\Users\Johnatan\Documents\Arduino\libraries\Tone\Tone.cpp:198: error: 'OUTPUT' was not declared in this scope
C:\Users\Johnatan\Documents\Arduino\libraries\Tone\Tone.cpp:198: error: 'pinMode' was not declared in this scope
C:\Users\Johnatan\Documents\Arduino\libraries\Tone\Tone.cpp:294: error: 'bitWrite' was not declared in this scope
C:\Users\Johnatan\Documents\Arduino\libraries\Tone\Tone.cpp: In member function 'void Tone::stop()':
C:\Users\Johnatan\Documents\Arduino\libraries\Tone\Tone.cpp:361: error: 'digitalWrite' was not declared in this scope

alguém poderia me ajudar?

Comentário de Valter simão Gonçalves em 24 outubro 2012 às 18:10

boas estou com o mesmo erro que o Hugo Rafael

alguém me ajuda?  

Comentário de Hugo Rafael em 20 setembro 2012 às 15:06

Tava com o mesmo erro do Pedro Humberto, baixei a biblioteca e coloquei na pasta, mas surgiram varios outros erros :/


C:\Users\Hugo\Desktop\arduino-1.0.1\libraries\Tone\Tone.cpp: In member function 'void Tone::begin(uint8_t)':
C:\Users\Hugo\Desktop\arduino-1.0.1\libraries\Tone\Tone.cpp:121: error: 'bitWrite' was not declared in this scope
C:\Users\Hugo\Desktop\arduino-1.0.1\libraries\Tone\Tone.cpp:123: error: 'digitalPinToPort' was not declared in this scope
C:\Users\Hugo\Desktop\arduino-1.0.1\libraries\Tone\Tone.cpp:123: error: 'portOutputRegister' was not declared in this scope
C:\Users\Hugo\Desktop\arduino-1.0.1\libraries\Tone\Tone.cpp:124: error: 'digitalPinToBitMask' was not declared in this scope
C:\Users\Hugo\Desktop\arduino-1.0.1\libraries\Tone\Tone.cpp: In member function 'void Tone::play(uint16_t, uint32_t)':
C:\Users\Hugo\Desktop\arduino-1.0.1\libraries\Tone\Tone.cpp:198: error: 'OUTPUT' was not declared in this scope
C:\Users\Hugo\Desktop\arduino-1.0.1\libraries\Tone\Tone.cpp:198: error: 'pinMode' was not declared in this scope
C:\Users\Hugo\Desktop\arduino-1.0.1\libraries\Tone\Tone.cpp:294: error: 'bitWrite' was not declared in this scope
C:\Users\Hugo\Desktop\arduino-1.0.1\libraries\Tone\Tone.cpp: In member function 'void Tone::stop()':
C:\Users\Hugo\Desktop\arduino-1.0.1\libraries\Tone\Tone.cpp:361: error: 'digitalWrite' was not declared in this scope

Alguém da uma Luz por favor?

Comentário de Emerson Herzeg em 30 junho 2012 às 19:09

Olá, tudo bem ?

Montei o projeto conforme o esquema mas a temperatura em Celcius da 3.11. 

No esquema vi que o LM35 o Vs esta no GND também. Num outro projeto que vi o Vs estava ligado no 5V. 

O que pode estar errado. ?

Att,

Emerson

Comentário de Pedro Humberto Júnior em 20 abril 2012 às 10:15

Bom dia Marcelo,

Deu certo agora. Muito obrigado.

Abraço.

Comentário de Marcelo Rodrigues em 20 abril 2012 às 10:05

Pedro,

O código não parece ter erro. Veja que o erro que você recebeu em:

sketch_apr17a.cpp:3:18: error: Tone.h: No such file or directory

mostra que você não tem essa biblioteca instalada.

 

O recomendado é não copiar apenas o código e tentar rodar, mas entendê-lo bem e adaptá-lo a sua necessidade, assim você terá domínio completo desse conhecimento. ;)

 

Abraço!!

Comentário de Pedro Humberto Júnior em 19 abril 2012 às 20:26

Alguém por favor poderia corrigir esse codigo ae.... Desde já agradeço.

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço