Você está na página 1de 4

8/4/2011 Termmetro RS-232 com PIC12F675

Navigator Te rmme tro com PIC12F675 e LM35 e


comunicao se rial RS-232

This is like deja vu all over again.


-- Yogi Berra

* Esta pgina est em construo *


Fig. 1 - Diagrama de
In troduo blocos - Amp lia r figura
(11Kb)
Este projeto tem por objetivo a construo de um termmetro digital com
as seguintes caractersticas:

O circuito deve ser barato, simples, compacto e exato em pelo


menos 0.5C.
A temperatura deve ser comunicada a um PC por meio da porta
serial padro RS-232.
A transferncia de dados deve ser feita de modo confivel.
O consumo deve ser baixo e a alimentao deve ser obtida da
prpria interface RS-232.
Fig. 2 - Esquema eltrico
O circuito deve medir e informar continuamente, em intervalos
(ve
ve rs o P DF)
DF - Amp lia r
regulares, digamos a cada segundo, a temperatura registrada.
figura (61Kb)
O termmetro deve medir a temperatura atmosfrica, mas deve
permitir modificaes simples tanto no hardware como no software
para acomodar outros tipos de uso (por exemplo em freezers,
saunas, etc).

Parece que todos os dias uma dezena de novos termmetros digitais


surgem na Internet. No entanto, aps realizar vrias buscas, no pude
encontrar nenhum projeto que atendesse simultaneamente a todos os
requisitos acima.

Teo ria de operao Fig. 3 - Desenho da


placa, lado cobreado
O circuito proposto consiste dos seguintes blocos: um sensor analgico de
(ve
ve rs o P DF)
DF - Amp lia r
temperatura, um amplificador/condicionador para o sinal do sensor, um
figura (16Kb)
microcontrolador para converter esse sinal analgico em um dado digital e
acoplamento com o PC por meio de uma interface RS-232. Um diagrama
exibindo esses blocos apresentado na Figura 1.

Temperatura e o LM35
Amplificao com LM358 (Condicionamento do sinal)
Alimentao e o 78L05
Comunicao RS-232
CRC

O circuito
Fig. 4 - Desenho da
placa, lado dos
O diagrama esquemtico do circuito pode ser visto na Figura 2.
componentes (ve
ve rs o
A alimentao obtida atravs das linhas DTR, RTS e terra da interface P DF)
DF - Amp lia r figura
RS-232. A tenso positiva presente nos dois primeiros pinos varia (29Kb)

conforme o hardware, mas seja qual for, provavelmente superior a 5V e


capaz de fornecer alguns poucos miliamperes.

Como estes sinais podem oscilar entre uma tenso positiva e outra
negativa, estes foram conectados ao circuito por meio de diodos 1N4148.
Um capacitor de 33uF ou mais foi usado como buffer de tenso, caso
ambos os sinais transitem cortando a alimentao momentaneamente. Fig. 5 - Renderizao do
circuito no kicad -
A tenso mxima para o PIC12F675 5.5V e a mnima para o sensor Amp lia r figura (38Kb)
LM35 4.0V, mas como veremos adiante, o terra deste chip ser ligado
em cerca de 0.5V, e portanto a alimentao para o sensor no pode ser
menor do que 4.5V. Isso nos deixa praticamente nos obriga a trabalhar
com uma tenso regulada de 5V, o que feito por um regulador miniatura
78L05.

Para que o sinal serial seja corretamente detectado pelo PC precisamos de


uma alimentao negativa, que obtemos atravs da lina TX da interface
RS-232. Um diodo 1N4148 assegura o correto sentido da corrente,
carregando negativamente um capacitor de 10uF. Fig. 6 - Transfer -
Amp lia r figura (295Kb)
O sensor de temperatura escolhido um LM35, por ser barato preciso e
ter uma ampla faixa linear de medio que vai de -55C a 150C. Este CI
informa a temperatura por meio de uma tenso em volts. Se a referncia
www.dm.ufscar.br/profs//thermopic/ 1/4
8/4/2011 Termmetro RS-232 com PIC12F675
informa a temperatura por meio de uma tenso em volts. Se a referncia
for a terra, ento 23.5C ser apresentada na sada como 0.235V. Cada
incremento de 0.1C representa um incremento de 1mV na tenso.

Temperaturas negativas no so muito comuns na maior parte do Brasil


mas estas podem ocorrer. Uma outra possibilidade seria poder usar este
circuito em geladeiras, freezers e outras cmaras frias, onde a temperatura
rotineiramente vai abaixo dos 10 graus negativos. Fig. 7 - Placa, lado do
circuito impresso -
Para poder registrar essas temperaturas, devemos deslocar a referncia
Amp lia r figura (236Kb)
do sensor para cima. Escolhemos arbitrariamente deslocar de 0.450V,
ligando o terra do LM35 a esta tenso. Com isto, 0C ser lido como
0.450V, -10C como 0.350, etc.

Desse modo, a temperatura -46.8C ser registrada como 0V, e 0C com


0.468V. A escala do LM35 vai de -55C a 150C, mais do que o suficiente
para este projeto. De fato, por razes que sero apresentadas mais
adiante, nossa escala vai de -46.8C a 55.7C.

Como a mnima tenso de referncia possvel para o PIC escolhido de


Fig. 8 - Placa, lado dos
2.1V, e este tem resoluo de 10 bits (ou seja, sua escala de 0 a 2.1V est
componentes - Amp lia r
dividida em 1024 pedaos), sua resoluo mnima de 2.05mV. Isto
figura (216Kb)
suficiente para medir temperaturas de 0.2 em 0.2C, mas no suficiente
para a resoluo do LM35.

Alm disso, 2.1V representaria 163.27C, bem acima da mais alta


temperatura j registrada na superfcie da terra (ver trivia) e tambm alm
do fim da escala do LM35. Para tirari pleno proveito da resoluo desse
componente, ser preciso amplificar o sinal.

Mas amplificar de quanto? Escolhendo a tenso de referncia de 2.5V, que


muito fcil de criar com apenas dois resistores ou usando uma fonte de
referncia como o LM336-2.5, temos 2.5V/1023=2.44mV. Portanto, para Fig. 9 - Resultado final,
casar perfeitamente as variaes do LM35 com as possveis valores de vista lateral - Amp lia r
amostragem do conversor A/D, basta amplificarmos seu sinal 2.44 vezes. figura (222Kb)

Essa amplificao pode ser feita convenientemente pelo amplificador


operacional LM358. Para que o ganho se aproxime de 2.44, escolhemos
um resistor de 33K e outro de 23K, obtendo um ganho de (33+23)/23 =
2.434782609 que bastante prximo de 2.44. O resistor de 23K de
fato um de 22K e outro de 1K.

Substituindo o resistor de 1K por um trimpot multivoltas, possvel ajustar


mais precisamente o ganho em 2.44. No entanto, neste projeto decidimos
deixar esse ajuste por conta do software. A contrapartida que o ganho
precisa ser medido cuidadosamente com um multmetro.

No meu projeto, determinei o ganho do meu amplificador ligando a


entrada do LM358 a um trimpot multivoltas de 50K, com uma extremidade
Fig. 10 - Resultado final,
ligada a 5V e outra terra. Em seguida, ajustei o trimpot at que a tenso
vista superior - Amp lia r
de 0.5V fosse exatamente medida na entrada (para isso, usei um
figura (241Kb)
voltmetro de alta impedncia). Num circuito ideal, eu deveria esperar
0.5V*2.44=1.22V na sada, mas eu encontrei 1.219V, ou seja, um ganho
de 1.219/0.5=2.438, o que me pareceu bastante satisfatrio.

Se o valor medido pelo conversor A/D s, a tenso em Volts na sada do


LM35 dever ser t = 2.5*s/2.44/1023. Para transformar essa tenso em
temperatura em graus Celsius, fazemos T = 100*(t-0.468)C.

O topo da escala atingido quando a tenso na entrada do conversor A/D


chega a 2.5V, o que corresponde a leitura do valor s=1023. Substituindo
esse valor nas frmulas acima, resulta em T=55.7C. A menos que voc Fig. 11 - Circuito
more em Al Azizia, Libia, isto deve bastar. funcionando em seu local
definitivo - Amp lia r
Para que os valores reais fossem o mais prximo possvel do terico, figura (266Kb)
conectei o LM35 ao LM358 e este ao PIC por resistores de 1K, aumentando
efetivamente as impedncias de conexo. Isso tem o efeito extra de limitar
a corrente pelo circuito.

A converso A/D e a interpretao do nmero obtido (no intervalo de 0 a


1023) como temperatura feita pelo PIC12F675. O sinal analgico do
amplificador conectado entrada analgica AN2 (GPIO2).

Tendo sido determinado a temperatura, esta codificada em NRZ (non


return to zero) e enviada para a sada digital GPIO4. A tenso de referncia
de 2.5V foi produzida com um divisor de tenso usando dois resistores de
10K e esta foi ligada entrada analgica AN1 (GPIO1) do PIC.

A sada serial produzida pelo pino GPIO4 foi condicionada aos nveis
requeridos pela RS232 por um transstor PNP. Por sua vez, a sada deste
conversor de nveis foi ligado linha RX da RS-232.

Opcionalmente, um LED pode ser ligado sada GPIO5 do PIC via resistor
de 330 Ohms. Este tem por objetivo apenas acusar o funcionamento
contnuo do circuito por meio de piscadas breves.

Dependendo do consumo do LED, pode ser proibitivo mant-lo aceso por


muito tempo. Por isso fazemos o LED piscar por apenas 2.25ms (como?), o
www.dm.ufscar.br/profs//thermopic/ 2/4
8/4/2011 Termmetro RS-232 com PIC12F675
muito tempo. Por isso fazemos o LED piscar por apenas 2.25ms (como?), o
que basta para confirmar o funcionamento.

Para desenhar o esquema eltrico (Figura 2) e o layout da placa de circuito


impresso (Figura 3 e Figura 3) usamos o excelente software kicad.

Os compo nentes

O software

Cdigo fonte: thermopic.asm


Verso formatada para visualizao: thermopic.html
Binrio: thermopic.hex
Programa para fazer a leitura e verificao dos dados no PC:
readtemp.c (cdigo fonte em C)

Con cluses

O circuito proposto atende a todos os requisitos estabelecidos, mas ainda


se pode perguntar se no possvel simplific-lo ainda mais. A resposta
afirmativa. De fato, o prprio PIC pode ser usado como termmetro, sem
mesmo necessitar do conversor A/D, mas eu ainda no tentei fazer isso.

Ao invs de usar um sensor analgico, poderiamos ter empregado um


sensor digital, como o Maxim/Dallas DS18B20, dispensando todos os
componentes analgicos relacionados com o sensor.

No entanto, todos os sensores desse tipo que pude encontrar custavam


mais caro do que todo este projeto tal como est, sem apresentar
benefcios adicionais.

muito fcil modificar o circuito para permitir chegar ao fundo de escala


de -55C do sensor, bastando para isso que tenso terra de referncia do
LM35 seja maior ou igual a 0.550V (e inferior a 1V), mas devido a largura
da escala isso ir reduzir a temperatura mxima para 47.5C.

Por outro lado, baixando o terra de referncia, podemos elevar a


temperatura mxima at 65.5C, mas este um limite do software. Para
superar esse limite, ser preciso representar a temperatura com mais do
que 16bits, ou ento dividir a temperatura por 10, podendo assim chegar
aos 150C do sensor.

O comprimento da escala determinado pela resoluo do conversor A/D,


pelo ganho do amplificador e pela tenso de referncia escolhidas. A
resoluo fixa em 10 bits, mas a tenso de referncia pode variar entre
2.1V e 4.6V e o ganho tambm pode variar bastante, o que d uma certa
flexibilidade na determinao da escala. Neste projeto, com os valores
escolhidos, temos um comprimento de 102.5C.

Um projeto que permita no apenas medir, mas registrar as temperaturas


em determinados instantes de tempo permitem realizar outras coisas alm
de simplesmente observar e ficar informado acerca de um valor particular
dessa grandeza fsica em determinado local.

Por causa dos registros, torna-se possvel observar tambm observar as


variaes, associar esse fenmeno a outros, como a presso e a umidade,
e at mesmo realizar previses acerca da temperatura.

Trivia

Um raio, ao atingir a superfcie da Terra, momentaneamente a


aquece a 23700C. Esta provavelmente a temperatura mais
quente associada a um fenmeno natural na Terra.
A temperatura externa do nibus espacial durante a reentrada de
cerca de 1648C e o chumbo ferve a 1749C. Algum ai quer uma
sopa da pesada?
Temperatura atmosfrica mais quente registrada na superfcie da
Terra: 58C, em Al Azizia, Libia, 1922 (veja a wikipdia). Esta
temperatura rcorde foi medida por uma estao meteorolgica,
cujos termmetros oficialmente residem na sombra e a uma altura
de 1.6m do solo.
Temperatura atmosfrica mais fria registrada na superfcie da
Terra: -89C, em Vostok, Antartica, 1983.
Zero Absoluto: -273.15C, o Santo Graal da Fsica.

Crditos

Agradeo a Luiz Nardelli da Prefeitura municipal de Rio do Oeste,


por me trazer ao conhecimento o seu projeto de termmetro e por
vrias discusses a esse respeito via e-mail.
gputils uma coleo de ferramentas para trabalhar com os
microcontroladores PIC da Microchip
kicad Kicad um programa open source (GPL) para a criao de
esquemas eletrnicos e circuitos impressos. No to funcional e
cheio de recursos como Eagle, mas grtis, ainda bastante

www.dm.ufscar.br/profs//thermopic/ 3/4
8/4/2011 Termmetro RS-232 com PIC12F675
poderoso e muito convivial para o usurio principiante.
piklab um ambiente de desenvolvimento integrado (IDE) para
aplicativos baseados nos PIC's e dsPIC's da Microchip

Refern cias

Extremos da Terra (ingls) - elevaes e profundidades,


temperaturas, quedas verticais e outros extremos geogrficos da
Terra.
A Histria da Temperatura e dos Termmetros (ingls)
Sensor de temperatura usando o watchdog timer do PIC (ingls)
Termmetro (ingls), na wikipdia. Histria, tipos, calibrao, usos e
curiosidades sobre o termmetro.
Zero Absoluto: A Corrida para o Zero Absoluto, documentrio
exibido pela rede de tv pblica americana PBS.

Updated on Fri Apr 23 23:05:39 2010 De p a rta me nt of Ma the ma tics,


tics UFSCa r Copyright 1997-2010, Waldeck Schutzer

www.dm.ufscar.br/profs//thermopic/ 4/4