Você está na página 1de 4

PROJETO 25 GRFICO DE LEITURA DE

TEMPERATURA COM UM LCD NOKIA


5110

Maro 06, 2014


Comentrios

Ol pessoal, com o Nokia 5110 podemos fazer variarias coisas, como visualizar na tela
imagens, textos e muito mais, irei mostrar como visualizar um grfico de temperatura
com este maravilhoso LCD juntamente com um sensor de temperatura LM35, deixando
com uma visualizao mais compreensvel ao usurios. Os cdigos sero todos
comentados para melhor entendimento, podendo ser retirados aps a compreenso de
cada linha. Bom trabalho !!!

COMPONENTES NECESSRIOS
1 Resistor de 220
1 Mdulo 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 mdulo Nokia 5110, o LM35 e o resistor assim como mostra a
figura abaixo:

SEGUE O ESQUEMTICO ABAIXO PARA MELHOR


ENTENDIMENTO:
Pinos LCD Nokia 5110Pinos 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) Faa o download do arquivo PCD8544;
3) Descompacte o arquivo;
4) Agora entre no diretrio (C:) e na pasta Arquivos de Programas, Arduino, libraries,
copie o arquivo descompactado nesta pasta;
5) Pronto para utilizar;

AGORA VAMOS AO CDIGO


// Projeto 25 Grfico de leitura de temperatura com um LCD Nokia 5110
// Biblioteca utilizada para controle de grficos e/ou desenhos.
#include <PCD8544.h>
static const byte SensorTemp = 0; // Pino analgico onde est o LM35.
// Definindo as dimenses do LCD (em pixels).
static const byte LCD_WIDTH = 84;
static const byte LCD_HEIGHT = 48;
// Define o nmero de linhas para exibir o caracter de temperatura.
static const byte CHART_HEIGHT = 5;
// Define o smbolo grfico para ser exibido no LCD.
static const byte DEGREES_CHAR = 1;
static const byte degrees_glyph[] = { 0x00, 0x07, 0x05, 0x07, 0x00 };
// Uma imagem bitmap grfica de 10X2 do termmetro.
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 smbolo personalizado do termmetro.
lcd.createChar(DEGREES_CHAR, degrees_glyph);

/* A referncia 1.1V interno prev uma melhor


Resoluo do LM35, e tambm mais estvel
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 termmetro no canto inferior esquerdo ...


lcd.setCursor(0, LCD_HEIGHT/8 - THERMO_HEIGHT);
lcd.drawBitmap(thermometer, THERMO_WIDTH, THERMO_HEIGHT);
// Define a posio do grfico.
if (xChart >= LCD_WIDTH) {
xChart = THERMO_WIDTH + 2;
}
// Atualiza o grfico de temperatura.
lcd.setCursor(xChart, 1);
// Define uma faixa entre 0 - 45C
lcd.drawColumn(CHART_HEIGHT, map(SensorTemp, 0, 45, 0,
CHART_HEIGHT*8));
// Define uma posio correta do grfico.
lcd.drawColumn(CHART_HEIGHT, 0);
xChart++;
delay(500);
}

Para certificar se o cdigo est correto pressione o boto Verify/Compile. Se tudo


estiver correto pressione o boto Upload para fazer o upload do cdigo para seu
Arduino.
Se tudo estiver OK voc ver na tela a temperatura real, juntamente com um grfico que
ir mudar de acordo com a temperatura.

Você também pode gostar