Sei sulla pagina 1di 3

Termmetro Digital

Navigator

2014-07-19

Termmetro Digital com PIC16F818 e LM35


Introduo
Nesta pgina vou descrever a construo de um dispositivo eletrnico para
medir a temperatura ambiente, que informada ao usurio por meio de um
display de LED's do tipo 7-segmentos.
Este projeto consiste de duas partes: hardw are(menor complexidade) e
softw are(maior complexidade). Na primeira descrevo o conceito, o
funcionamento e a montagem do dispositivo. Na segunda fao o mesmo para o
firmw are(programa) que ir executar dentro do dispositivo.
A principal vantagem da abordagem adotada neste projeto o nmero reduzido
de componentes utilizados na construo. Embora existam chips dedicados a
esta tarefa, estes podem no ser muito facilmente encontrados e no podem
ser modificados ou adaptados a uma utilizao em particular. Alm disso, a
construo com PIC bastante didtica.
Todos os arquivos necessrios para realizar a construo e a programao,
inclundo o esquema eltrico e o cdigo fonte em assembler, podem ser
encontrados neste arquivo compactado.

Hardware
O componente escolhido para ser o corao deste projeto foi o PIC16F818, que
em seus 18 pinos apresenta uma quantidade suficiente de entradas e sadas
(16), possui conversor A/D integrado, oscilador interno de 8MHz, pode
armazenar at 1K palavras de programa, 128 bytes de RAM e 128 de EEPROM,
bem mais do que o necessrio para esta aplicao. Esse componente apresenta
ainda outros recursos bem convenientes, como um mdulo para comunicao
serial sncrona e outro para PW M. Em outro projeto, utilizei o mdulo de
comunicao serial para implementar um bus I2C para que um componente
mestre controle outros componentes escravos.
O PIC16F818 compatvel pino-a-pino com seu ancestral direto, o popular
PIC16F84, mas muito mais verstil do que este.
Dentre todos os tipos de sensores de temperatura, por causa do baixo preo,
estabilidade, preciso e facilidade de uso, o LM35 foi escolhido. Este
componente um circuito integrado dotado de um sensor de temperatura e
circuitos de compensaso trmica e de potncia, apresentando a temperatura
medida como voltagem com resoluo de 10mV de por grau Celsius.
Prottipo montado em proto-board:

Prottipo auto-iluminado:

Veso final e sua caixa:

http://www.dm.ufscar.br/~waldeck/pic/termometro/

1/3

Termmetro Digital

2014-07-19

Verso final, em seu local definitivo:

Esquema eltrico:

Verso em PDF.
Arquivo fonte para o gEDA: Termometro.sch
Arquivo de smbolos descrevendo o componente PIC16F818: pic16F818-1.sym

Software
O firmw are para o termmetro foi escrito em linguagem assembly para PIC em
PC/Linux usando as ferramentas de cdigo aberto piklab e gputils. Os
repositrios de algumas distros j vm com esses pacotes, mas normalmente
eles no so instalados por padro. Apesar disso foi muito fcil instal-los em
meu Fedora usando yum:

[waldeck@hal pic]$ yum -y install piklab gputils


O screenshot abaixo mostra o ambiente de desenvolvimento integrado do
piklab, com um excerto do cdigo fonte do termometro visivel na janela de
editorao. Com o piklab possvel organizar os arquivos contendo o cdigo
fonte em um mesmo diretrio, e inclu-los em um arquivo de projeto, que
contm tambm detalhes e configuraes sobre o hardw are onde o programa
ir executar. Aps compilar o cdigo fonte, pode-se transferir o executvel para
a memria flash do chip com apenas um clique do mouse.

http://www.dm.ufscar.br/~waldeck/pic/termometro/

2/3

Termmetro Digital

2014-07-19

O softw are responsvel por fazer leituras digitais peridicas do sinal analgico
fornecido pelo LM35, converter essa informao em uma temperatura segundo
a escala Celsius, converter esse nmero de binrio para decimal, exibir a
temperatura no visor, memorizar na EEPROM as temperaturas mnima e mxima
observadas e responder presso de um boto. O softw are tambm permite
exibir a temperatura em Farenheit, se desejado. Para algumas dessas
converses, foi necessrio implementar rotinas de multiplicao e diviso
eficientes, j que estas operaes no esto presentes no hardw are.
Cdigo fonte: termometro.asm, distribudo sob a licena GPL
Arquivo de projeto para o piklab: Termometro.piklab
Arquivo compilado .HEX para programar o chip: Termometro.hex
Todos os arquivos acima em formato .ZIP

Referncias
Datasheet do PIC16F818 - link para o site da Microchip
Errata desse datasheet (muito importante)
Datasheet do LM35

Updated on Mon Jul 15 13:27:35 2013

http://www.dm.ufscar.br/~waldeck/pic/termometro/

Copyright 1997-2014, Waldeck Schutzer

3/3

Potrebbero piacerti anche