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!
Nenhum comentário:
Postar um comentário