Bargraph de Temperatura com LCD

Com este exemplo você fará a leitura do Termistor NTC e exibirá no display um bargraph representando a escala de tempetura de 0 a 100ºC.

Dificuldade:

Montagem:

Programação:


Material Utilizado:

Arduino Uno

Cabo USB A para B

Protoboard 830

Display LCD 16x2

Resistor 10kΩ

Potenciômetro 10kΩ

Termistor NTC 10kΩ

Alguns Jumpers

A Montagem

O Sketch

Não esqueça de importar a biblioteca para o Arduino: Biblioteca_Termistor

#include <Thermistor.h> //Inclui a biblioteca Thermistor.h
#include <LiquidCrystal.h> //Inclui a biblioteca do LCD  

LiquidCrystal
lcd(12, 11, 5, 4, 3, 2); //Configura os pinos do Arduino para se comunicar com o LCD

Thermistor temp(0); //Instância a biblioteca Thermistor.h

byte
full[8] = {   
B11111,   
B11111,   
B11111,   
B11111,   
B11111,   
B11111,   
B11111,
};

byte grau[8] = {   
B00111,   
B00101,   
B00111,   
B00000,   
B00000,   
B00000,   
B00000,
};

int
temperatura; //Variável para armazenar a temperatura

void setup() {   
lcd.createChar(0, full);   
lcd.createChar(1, grau);      

lcd.begin(16, 2); //Inicia o LCD com dimensões 16x2(Colunas x Linhas)      

for
(int i=2 ; i<= 10 ; i++)   
{   
pinMode(i, OUTPUT); //Configura os pinos de acionamento dos LED como saída   
digitalWrite
(i, LOW); //Desliga todos os LEDs   
}      

lcd.setCursor(0,0);   
lcd.print("Temperatura: ");   
}

void loop()
{      

temperatura = temp.getTemp(); //Pega a temperatura através da função e armazena na variável temperatura   
lcd.setCursor(12,0);   
lcd.print(temperatura);   
lcd.write(byte(1));   
lcd.print("C");            

bargraph(); //Vai para a função de preenchimento do Bargraph      

delay
(1000); //Aguarda 10 milissegundos   

}

void
bargraph()
{     

if(temperatura >= 10)  
{  
lcd.setCursor(0,1);   
lcd.write(byte(0)); //Se a temperatura for maior que 10ºC  
}  
else
 
{    
lcd.setCursor(0,1);   
lcd.print(" "); //Se a temperatura for menor que 10ºC  
}      

if(temperatura >= 20)   
{     
lcd.setCursor(1,1);   
lcd.write(byte(0)); //Se a temperatura for maior que 20ºC   
}   
else  
{    
lcd.setCursor(1,1);   
lcd.print(" "); //Se a temperatura for menor que 20ºC  
}      

if(temperatura >= 30)   
{     
lcd.setCursor(2,1);   
lcd.write(byte(0)); //Se a temperatura for maior que 30ºC   
}   
else
 
{    
lcd.setCursor(2,1);   
lcd.print(" "); //Se a temperatura for menor que 30ºC  
}     

if
(temperatura >= 40)   
{     
lcd.setCursor(3,1);   
lcd.write(byte(0)); //Se a temperatura for maior que 40ºC   
}   
else
 
{    
lcd.setCursor(3,1);   
lcd.print(" "); //Se a temperatura for menor que 40ºC  
}     

if
(temperatura >= 50)   
{     
lcd.setCursor(4,1);   
lcd.write(byte(0)); //Se a temperatura for maior que 50ºC   
}   
else  
{    
lcd.setCursor(4,1);   
lcd.print(" "); //Se a temperatura for menor que 50ºC  
}     

if(temperatura >= 60)   
{     
lcd.setCursor(5,1);   
lcd.write(byte(0)); //Se a temperatura for maior que 60ºC   
}   
else
 
{    
lcd.setCursor(5,1);   
lcd.print(" "); //Se a temperatura for menor que 60ºC  
}     

if
(temperatura >= 70)   
{     
lcd.setCursor(6,1);   
lcd.write(byte(0)); //Se a temperatura for maior que 70ºC   
}   
else
 
{    
lcd.setCursor(6,1);   
lcd.print(" "); //Se a temperatura for menor que 70ºC  
}     

if(temperatura >= 80)   
{     
lcd.setCursor(7,1);   
lcd.write(byte(0)); //Se a temperatura for maior que 80ºC   
}   
else
 
{    
lcd.setCursor(7,1);   
lcd.print(" "); //Se a temperatura for maior que 80ºC  
}     

if
(temperatura >= 90)   
{     
lcd.setCursor(8,1);   
lcd.write(byte(0)); //Se a temperatura for maior que 90ºC   
}   
else
 
{    
lcd.setCursor(8,1);   
lcd.print(" "); //Se a temperatura for menor que 90ºC  
}   

}