Voce vai precisar de :
1- arduino
1-LM35
1- protoboard
e alguns jumpers .
E vamos as ligações .
Como o LM35 é muito parecido (
- olhando o sensor pela parte reta , o pino da esquerda é a alimentação +5V , o pino central é o sinal analógico e o pino da direita é o GND
Datasheet
Um pouco sobre o sensor de temperatura :
A alimentação maxima dele é de 5V . Como ele é um conversor de 10 bits, consegue diferenciar 1024 bits (de 0 a 1023) com valores entre 0V e 5V. Ou seja, quando ele ler 5v na entrada ele vai converter para 1023.
Agora ficou fácil, pois podemos fazer um regra de três
Bits Voltagem
1023 -------- 5V
512 ---------- X
X = (5 * 512) / 1023 = 2.5 V
Ou seja, quando o conversor analogico / digital do arduino mostrar o valor digital 512 significa que está entrando 2.5V nele.
O LM35 é um sensor linear que fornece 10mV para cada grau celcius que ele medir. Ou seja, se ele fornecer 100mV, significa que ele está medindo 10ºC.
Vamos as ligações .
o pino da esquerda (fio branco) vai ligado ao +5V , o pino central (fio vermelho ) que é o sinal , vai ligado ao pino analogico A0
e o pino da direita , (fio preto) vai ligado ao GND
Para "selecionar" a precisão do conversor , no arduino é preciso fazer uma conta basica onde é dividida a tensão de alimentação pela quantidade de bits .
5V / 1023 = 0.00488
O valor obtido por essa divisão , é a precisão do sensor .
Chega de papo e vamos ao código do nosso arduino
int pinosensor = 0;
int valorlido = 0;
float temperatura = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
valorido = analogRead(pinosensor);
temperatura = (valorlido * 0.00488);
temperatura = temperatura * 100;
Serial.print("Temperatura atual: ");
Serial.println(temperatura);
delay(1000);
}
Boa tarde.
ResponderExcluirParabéns pelo blog, conteúdo muito bom para que está aprendendo assim como eu.
Vê se pode me ajudar.
Fiz o exemplo da temperatura e no serial monitor ok, funciona perfeitamente.
Sabe como posso demonstrar estes valores em uma página html hospedada no cartão SD do W5100?
Obrigado.
Obrigado por acompanhar o blog ! Esse será o proximo tema abordado em uma nova sequencia de posts.. tenho tudo pronto o problema é tempo pra publicar aqui .
ExcluirMas calma que o quanto antes que eu conseguir eu coloco aqui !
obrigadao vlw msm cara eu gosto de caras que sao diretos como vc
ResponderExcluirto sempre te acompanhado
Este comentário foi removido pelo autor.
ResponderExcluirBom dia. Fiz uma programação pra fazer uma irrigação automatica com sensor e a leitura da temperatura ambiente, porém está dando interferência na temperatura, conforme o leitor de umidade começa a funcionar a temperatura muda em relação ao aumento da condutividade no sensor.
ResponderExcluirAlguém poderia me ajudar?
#include
int moistureSensor = 2;
int moisture_val;
int pinosensor =0;
int valorlido=0;
float temperatura =0;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
Serial.begin(9600); //open serial port
}
void loop() {
moisture_val = analogRead(moistureSensor); // read the value from the moisture-sensing probes
Serial.print("moisture sensor reads "); //output the value from the sensors
Serial.println( moisture_val );
valorlido=analogRead(pinosensor);
temperatura=(valorlido*0.00488);
temperatura=temperatura*100;
Serial.print("Temperatura: ");
Serial.println(temperatura);
delay(1000);
lcd.clear(); //limpa o display do LCD.
lcd.print("Condut: ");
lcd.print(moisture_val); //imprime a string no display do LCD.
lcd.setCursor(0,1);
lcd.print("Temp:");
lcd.print(temperatura);
delay(1000);
}