Powered By Blogger
Mostrando postagens com marcador Termômetro. Mostrar todas as postagens
Mostrando postagens com marcador Termômetro. Mostrar todas as postagens

domingo, 19 de agosto de 2012

Arduino Termômetro 2

Arduino by myself
Esta barra, indica o nível de dificuldade encontrado para cada experiência realizada.
sendo:
"VERDE", indicação de nível 1 a 5 (Fácil);
"AMARELO", indicação de nível 6 a 8 (Médio);
VERMELHO, indicação de nível 9 e 10 (Difícil);


Olá pessoal,

Este post é um complemento do Arduino Termômetro (que eu estava devendo já algum tempo), utilizando agora o LM35DZ como sensor de temperatura, ao invés do Termistor.
Um projeto bem simples, mas com um componente de grande precisão, garante um nível bem profissional.

No Link abaixo você encontrará muita informação sobre os sensores de temperatura.
http://www.facstaff.bucknell.edu/mastascu/elessonshtml/Sensors/TempLM35.html

Vamos aos detalhes:

COMPONENTES:

1 x Arduino duemilanove, UNO ou MEGA
1 x BreadBoard
1 x LM35DZ (sensor de temperatura)
1 x resistor de 100KO
1 x Display LCD 16x2 comunicação I2C
fios e cabos

HARDWARE & MONTAGEM:

O componente LM35DZ tem a seguinte pinagem:

Pinagem LM35DZ e equivalentes

A ligação no circuito, pede um resistor  para manter a precisão da medida, ligado entre a saída de tensão do dispositivo (Pino-2, central) e o terra (Pino-3, direita).
E uma conexão à tensão de alimentação do circuito, no nosso caso, de 5 V (Pino-1, esquerda).


Abaixo o diagrama de montagem, incluindo a ligação do Display LCD 16x2 com comunicação serial I2C.
Alguns me perguntam porque I2C? Resposta: economia de pinos no Arduino, simplesmente isso!
Obtenha a biblioteca do LCD via I2C, que é essencial no link abaixo.
(essa biblioteca não funciona corretamente com a IDE 1.0 do arduino, particularmente por existirem alguma bibliotecas que ainda não funcionam corretamente com esta IDE, continuo utilizando a IDE 0023.

http://www.4shared.com/zip/wy9_mLH5/LiquidCrystal_I2C.html



Diagrama:

Ligação dos componentes

Montagem real

Para ligar o LM35DZ, usamos o seguinte esquema:
onde Ra = Vc / 50uA
resultando Ra = 5/50x10-6 = 100000 O ou 100 KO


PROGRAMAÇÃO & SOFTWARE:

A parte de programação consta de dois sketches usados no projeto:
1 - teste via interface serial de comunicação (monitor serial)
2 - Termômetro com display em LCD

Obtenha o software completo nos links abaixo

http://www.4shared.com/file/54hN_6zw/Termometro_LM35DZ_1.html


TESTES & VÍDEO:

Os videos podem ser visto, também,  no canal do youtube nos links abaixo, e com maior qualidade:
http://www.youtube.com/watch?v=qnkI0hhSAyE


Experiência 1 e 2:




Espero que estas explicações possam ajudá-los e espero sua visita no próximo projeto.
Então, até lá!...










sábado, 24 de março de 2012

Arduino, Termômetro

Arduino by my Self
Esta barra, indica o nível de dificuldade encontrado para cada experiência realizada.
sendo:
"VERDE", indicação de nível 1 a 5 (Fácil);
"AMARELO", indicação de nível 6 a 8 (Médio);
VERMELHO, indicação de nível 9 e 10 (Difícil);



Olá! a todos,

Neste post veremos como usar um Thermistor como componente de sensoreamento da temperatura ambiente.  E como usar o Arduino para adquirir as informações e visualizar isto em um display LCD 16 x 2.
Ajuste necessário: um termômetro digital para saber a temperatura do ambiente e assim ajustar o Arduino Termômetro.

O HARDWARE:
Para esta experiência necessitaremos de:
1 x Arduino UNO ou Duemilanove
1 x Bread Board
1 x LCD 16x2 I2C
1 x Thermistor de 10KO
1 x Potenciômetro de 50KO
Fios e Cabos


O CIRCUITO:

Ligar os pinos do LCD da seguinte forma:
GND ao negativo da alimentação
VCC ao positivo da Alimentação
SDA ligar ao pino analógico 4 do Arduino
SCL ligar ao pino analógico 5 do Arduino

O Thermistor deve ser ligado da seguinte maneira:
Um terminal do Thermistor deve ser conectado diretamente ao VCC, o outro terminal deve ser ligado ao pino 2 de um potenciômetro.
O pino central do potenciômetro deve ser ligado ao pino 1 dele mesmo, e o pino 1 deve ser conectado ao GND.
Na junção, entre o terminal do Thermistor e o pino 2 do potenciômetro, deve ser ligado o pino analógico 0 do Arduino.


                                  _                                ________
                                   \                              c|               |
VCC |---------------/\/\/\/\-------------2-/\/\/\/\-1-----+-------|GND
                                       \                           Potenciômetro
                                      Thermistor


Qual é a necessidade do potenciômetro?
O Thermistor é de 10 KO à temperatura ambiente de 25 Graus Celcius. Isso significa que se estivermos a 25 Graus Celsius, sua resistência terá exatamente 10KO e se colocarmos uma outra resistência fixa de 10KO como divisor de tensão, teremos metade do valor de VCC, ou seja 2,5V no pino analógico 0 do Arduino. Assim fica fácil parametrizar que quando tivermos 2,5V no pino analógico 0 , termos 25 Graus Celcius.
Como geralmente nosso ambiente não estará a 25 Graus Celcius, necessitamos do potenciômetro para saber qual resistência devemos colocar como divisor de tensão, e assim fazer um ajuste fino.
De posse de um termômetro digital (quanto mais preciso melhor), podemos fazer o ajuste;

Nota: se girarmos totalmente o POT em direção ao negativo o circuito nunca mostrará nenhuma temperatura.  Se quiser pode ser colocado um resistor de 5KO em série com o POT e assim ter um valor fixo e ajustar o valor somente dentro de uma faixa.

Existem dispositivos semicondutores que podem ser usados para medir a temperatura ambiente com maior precisão que um Thermistor, por exemplo o LM35,  ou o LM335, mas isto será tema de um outro post.

Vejamos o circuito feito em fritzing:

Arduino Termômetro - Esquema

O SOFTWARE:
Abaixo o software completo e comentado.
Visite para maiores informações; http://arduino.cc/playground/ComponentLib/Thermistor2


/*
  Este exemplo é um código de domínio público.
*/


#include <Wire.h> // inclui a biblioteca Wire


 #include <LiquidCrystal_I2C.h> // inclui a biblioteca do LCD

 // initialize the library with the numbers of the interface pins
 LiquidCrystal_I2C lcd(0x27, 16, 2); // inicalização do LCD com o endereço de 
                                     // pinos utilizados no Arduino
                                     
 //Código extraído de ...http://www.arduino.cc/playground/ComponentLib/Thermistor2

 #include <math.h> // inclui a biblioteca math

 double Thermister(int RawADC) { 
                                 // pega os dados lido do Thermistor quando chamada a função
                                 // e armazena em RawADC, este é um valor relacionado a
                                 // queda de tensão
 double Temp; // variável usada no cálculo
 Temp = log(((10240000/RawADC) - 10000));
                                         // relaciona o valor de queda de tensão lido com resistência
                                         // 10000 é o valor da resistência do Thermistor
                                         // se for necessário usar um Thermistor diferente
                                         // ajustar o valor corretamente

 // formula para dar a temperatura em Kelvin
 Temp = 1 / (0.001129148 + (0.000234125 * Temp) + (0.0000000876741 * Temp * Temp * Temp)); 
 Temp = Temp - 273.15;            // converte de Kelvin para Celcius

 return Temp; // retorna o valor da temperatura calculada
 }

 void setup() {
   // configura o LCD
   lcd.init();                           // inicializa o lcd 
   lcd.backlight();                  // com luz de fundo
   Serial.begin(9600);           // inicializa a comunicação serial
   // imprime mensagens no LCD
  
 }

 void loop() {
   
   lcd.clear();                                      // limpa o LCD
   lcd.setCursor(0,0);                         // posiciona o cursor na coluna 0 x linha 0
   lcd.print("Temp. Ambiente: ");         // texto para colocar significado ao que for apresentado
   lcd.setCursor(0,1);                        // posiciona o cursor na coluna 0 x linha 1
   lcd.print(int(Thermister(analogRead(0))));  // imprime o valor lido do thermistor correspondente
                                                                    // à temperatura
   lcd.print(" Graus C");                    // imprime a unidade medida
   delay(1000);                                // pausa até executar uma nova leitura e visualização
 }
 // Fim da Compilação



O VÍDEO:

Dúvidas e sugestões enviem para: arduinobymyself@gmail.com

Nesta experiência não teremos vídeo, pois ela é bem simples e está bem documentada.

Segue fotos do projeto.

Visão Geral
Temperatura no Display
Thermistor em azul
Pinagem


Até o próximo post, Bons experimentos!