Exemplo de como ler um sensor de Temperatura (LM-35) utilizando o Arduino e converter o sinal analógico lido, na temperatura correspondente, em grau Celsius, e enviar para o computador via USB (Serial).
Circuito
Arquivos
- O Arduino possui seis portas analógicas, que vão de A0 à A5, com resolução de 10 bits, e faixa de leitura 0 à 5v (0 à 1023).
Código do Sketch:
/*
Projeto - Temômetro LCD com sensor LM35 e Arduino
By - Zedequias Fonseca - 08/2014
http://vfeletronica.blogspot.com.br
*/
#include <LiquidCrystal.h> // Biblioteca para o LCD
// Variáveis
int tempPin = 0; // Declaração do pino de entrada analógica 0 (A0) no Arduino
float mAmostra[8]; // matriz para armazenar oito amostras para o cálculo da temperatura média
float mLeitura = 0.00; // variavel para armazena leitura da temperatura
LiquidCrystal lcd(13, 12, 11, 10, 9, 8); // Inicialização do display e pinos correspondentes
void setup()
{
Serial.begin(9600); // inicia comunicação serial
lcd.begin(16, 2); // inicia e configura o número de linhas e colunas do LCD
lcd.setCursor(1, 0); // seta posição do cursor (coluna, linha) do LCD
lcd.print("Projeto com LM35"); // imprime texto no LCD
delay(1000); // aguarda 1s
}
void loop()
{
// Início dos cálculos
for(int i = 0; i <= 7; i++) // pega 8 amostras de temperatura
{
// ler porta analogica e faz a conversão matemática para amostra
// legível de temperatura do LM35 e armazena resultado de conjunto de amostras.
// 1024 é a profundidade de bits (quantização) do Arduino.
// 5 é a voltagem fornecida ao LM35.
mAmostra[i] = (5 * analogRead(tempPin) * 100.0) / 1024.0;
lcd.setCursor(1, 1); // seta posição do cursor LCD
lcd.print(" Temp: "); // imprime no LCD
lcd.setCursor(9, 1); // seta posição do cursor LCD
lcd.print(mAmostra[i]); // imprime amostra da temperatura atual no LCD
lcd.print(" C"); // imprime caractere C
mLeitura = analogRead(tempPin); // ler porta analogica
Serial.println(mLeitura); // imprime valor lido na porta analogica no Virtual Terminal
delay(500); // aguarda 500ms
}
}
Código do Sketch:
/*
Projeto - Temômetro LCD com sensor LM35 e Arduino
By - Zedequias Fonseca - 08/2014
http://vfeletronica.blogspot.com.br
*/
#include <LiquidCrystal.h> // Biblioteca para o LCD
// Variáveis
int tempPin = 0; // Declaração do pino de entrada analógica 0 (A0) no Arduino
float mAmostra[8]; // matriz para armazenar oito amostras para o cálculo da temperatura média
float mLeitura = 0.00; // variavel para armazena leitura da temperatura
LiquidCrystal lcd(13, 12, 11, 10, 9, 8); // Inicialização do display e pinos correspondentes
void setup()
{
Serial.begin(9600); // inicia comunicação serial
lcd.begin(16, 2); // inicia e configura o número de linhas e colunas do LCD
lcd.setCursor(1, 0); // seta posição do cursor (coluna, linha) do LCD
lcd.print("Projeto com LM35"); // imprime texto no LCD
delay(1000); // aguarda 1s
}
void loop()
{
// Início dos cálculos
for(int i = 0; i <= 7; i++) // pega 8 amostras de temperatura
{
// ler porta analogica e faz a conversão matemática para amostra
// legível de temperatura do LM35 e armazena resultado de conjunto de amostras.
// 1024 é a profundidade de bits (quantização) do Arduino.
// 5 é a voltagem fornecida ao LM35.
mAmostra[i] = (5 * analogRead(tempPin) * 100.0) / 1024.0;
lcd.setCursor(1, 1); // seta posição do cursor LCD
lcd.print(" Temp: "); // imprime no LCD
lcd.setCursor(9, 1); // seta posição do cursor LCD
lcd.print(mAmostra[i]); // imprime amostra da temperatura atual no LCD
lcd.print(" C"); // imprime caractere C
mLeitura = analogRead(tempPin); // ler porta analogica
Serial.println(mLeitura); // imprime valor lido na porta analogica no Virtual Terminal
delay(500); // aguarda 500ms
}
}
Nenhum comentário:
Postar um comentário