PROJETO 25 – GRÁFICO DE LEITURA DE TEMPERATURA COM UM LCD NOKIA 5110

Olá pessoal, com o Nokia 5110 podemos fazer variarias coisas, como visualizar na tela imagens, textos e muito mais, irei mostrar como visualizar um gráfico de temperatura com este maravilhoso LCD juntamente com um sensor de temperatura LM35, deixando com uma visualização mais compreensível ao usuários. Os códigos serão todos comentados para melhor entendimento, podendo ser retirados após a compreensão de cada linha. Bom trabalho !!!

COMPONENTES NECESSÁRIOS

1 Resistor de 220Ω

1 Módulo Nokia 5110

1 Protoboard

1 Sensor de temperatura LM35

Fios jumpers

CONECTANDO OS COMPONENTES

Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB. Agora, conecte o módulo Nokia 5110, o LM35 e o resistor assim como mostra a figura abaixo:

 

SEGUE O ESQUEMÁTICO ABAIXO PARA MELHOR ENTENDIMENTO:

Pinos LCD Nokia 5110            Pinos do Arduino
RST                                                 11
CE                                                   12
DC                                                   10
Din                                                    9
Clk                                                    8
VCC                                                  5V
GND                                                 GND

FAZENDO O DOWNLOAD E IMPORTANDO A BIBLIOTECA DO LCD NOKIA 5110

1) Acesse o link https://onedrive.live.com/?cid=F877FDED1DE63FAA&id=F877FDED1DE63FAA%21122;

2) Faça o download do arquivo PCD8544;

3) Descompacte o arquivo;

4) Agora entre no diretório (C:) e na pasta Arquivos de Programas, Arduino, libraries, copie o arquivo descompactado nesta pasta;

5) Pronto para utilizar;

AGORA VAMOS AO CÓDIGO

// Projeto 25 – Gráfico de leitura de temperatura com um LCD Nokia 5110

// Biblioteca utilizada para controle de gráficos e/ou desenhos.
#include <PCD8544.h>

static const byte SensorTemp = 0; // Pino analógico onde está o LM35.

// Definindo as dimensões do LCD (em pixels).
static const byte LCD_WIDTH = 84;
static const byte LCD_HEIGHT = 48;

// Define o número de linhas para exibir o caracter de temperatura.
static const byte CHART_HEIGHT = 5;

// Define o símbolo gráfico para ser exibido no LCD.
static const byte DEGREES_CHAR = 1;
static const byte degrees_glyph[] = { 0x00, 0x07, 0x05, 0x07, 0x00 };

// Uma imagem bitmap gráfica de 10X2 do termômetro.
static const byte THERMO_WIDTH = 10;
static const byte THERMO_HEIGHT = 2;
static const byte thermometer[] =
{ 0x00, 0x00, 0x48, 0xfe, 0x01, 0xfe, 0x00, 0x02, 0x05, 0x02,
0x00, 0x00, 0x62, 0xff, 0xfe, 0xff, 0x60, 0x00, 0x00, 0x00};

static PCD8544 lcd;


void setup() {
lcd.begin(LCD_WIDTH, LCD_HEIGHT);

// Registra o símbolo personalizado do termômetro.
lcd.createChar(DEGREES_CHAR, degrees_glyph);

/* A referência 1.1V interno prevê uma melhor
Resolução do LM35, e também é mais estável
Quando alimentado a partir de uma entrada USB. */

analogReference(INTERNAL);
}


void loop() {

// Define a borda do LCD.
static byte xChart = LCD_WIDTH;

// Lê a temperatura em graus Celsius.
float SensorTemp = (1.1 * analogRead(SensorTemp) * 100.0) / 1024.0;

// Imprime a temperatura na tela do LCD.
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(SensorTemp, 1);
lcd.print(" \001C ");

// Desenhar o bitmap termômetro no canto inferior esquerdo ...
lcd.setCursor(0, LCD_HEIGHT/8 - THERMO_HEIGHT);
lcd.drawBitmap(thermometer, THERMO_WIDTH, THERMO_HEIGHT);

// Define a posição do gráfico.
if (xChart >= LCD_WIDTH) {
xChart = THERMO_WIDTH + 2;
}

// Atualiza o gráfico de temperatura.
lcd.setCursor(xChart, 1);
// Define uma faixa entre 0 - 45°C
lcd.drawColumn(CHART_HEIGHT, map(SensorTemp, 0, 45, 0,
CHART_HEIGHT*8));
// Define uma posição correta do gráfico.
lcd.drawColumn(CHART_HEIGHT, 0);

xChart++;

delay(500);
}


Para certificar se o código está correto pressione o botão Verify/Compile. Se tudo estiver correto pressione o botão Upload para fazer o upload do código para seu Arduino.

Se tudo estiver OK você verá na tela a temperatura real, juntamente com um gráfico que irá mudar de acordo com a temperatura.

fonte: facacomarduino.info