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!
Comentar
Thiago,
acabei de ter esse problema tambem, por causa da biblioteca Tone, resolvi compilando o codigo pelo IDE 0023
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.
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...
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?
boas estou com o mesmo erro que o Hugo Rafael
alguém me ajuda?
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?
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
Bom dia Marcelo,
Deu certo agora. Muito obrigado.
Abraço.
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!!
Alguém por favor poderia corrigir esse codigo ae.... Desde já agradeço.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
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)