Centro Universitário Positivo
Pró-Reitoria de Pós-Graduação e Pesquisa
Programa de Iniciação Científica
Sistema de Sensoriamento Térmico
Monografia do Projeto do
Programa de Iniciação Científica,
desenvolvido no ano de 2000, na
área
de
Engenharia
da
Computação.
Alunos:
Cleverson Rebelo Sabatowski
Josmar Pedro Klemba
Mauricio Perretto
Orientador. Prof. Edson Pedro
Ferlin
2000
Sumário
I – Lista de Figuras
pág.
i
II – Lista de Abreviaturas
pág.
iii
III – Lista de Tabelas
pág.
iv
IV – Unidades do Sistema Internacional de Medidas (S.I.)
pág.
v
1 – Introdução
pág.
04
2 – Descrição do Projeto
pág.
06
3 – Sensores
pág.
07
pág.
07
3.1.1 – Elétrons e Lacunas
pág.
08
3.2- Dispositivos Semicondutores
pág.
10
3.2.1 – Diodos
pág.
10
3.2.2 – Transistores
pág.
12
3.2.3 – Termistores
pág.
14
3.2.4 – Termopares
pág.
16
pág.
18
4.1 – Método da Voltagem em rampa
pág.
18
4.2 - Método da Aproximação Sucessiva
pág.
20
pág.
23
5.1 – Porta Serial
pág.
23
5.2 – Porta Paralela
pág.
24
6 – Software
pág.
27
7 – Implementação
pág.
29
7.1 - Principais Componentes
pág.
29
7.1.1 - Diodo 1N4148
pág.
29
7.1.2 - Amplificador Operacional LM358
pág.
31
7.1.3 - Conversor A/D ADC0804
pág.
34
7.2 – Hardware
pág.
35
7.3 – Software
pág.
39
8 – Resultados
pág.
47
9 – Conclusão
pág.
50
Referências Bibliográficas
pág.
53
Anexos
pág.
55
Glossário
pág.
59
3.1 – Semicondutores
4 – Conversores
5 – Interfaceamento com o Computador
2
I – Lista de Figuras
•
Figura 2.1 – Diagrama em Blocos do Sistema
pág.
05
•
Figura 3.1 – Estrutura de um Diodo
pág.
10
•
Figura 3.2 – Relação de Tensão X Temperatura
pág.
10
•
Figura 3.3 – Transistor PNP e NPN, nota-se que a base controla
pág.
11
a junção
•
Figura 3.4 – Desenho de um Transistor funcionando c/ porta lógica
pág.
12
•
Figura 3.5 – Porta NAND de 3 entradas operada à diodo
pág.
13
•
Figura 3.6 – Dois metais com uma temperatura aplicada a eles
pág.
15
•
Figura 3.7 – Desenho esquemático de um termopar
pág.
15
•
Figura 4.1 – Configuração Lógica para a Voltagem em Rampa
pág.
18
•
Figura 4.2 – Esquema lógico para a Aproximação Sucessiva
pág.
21
•
Figura 5.1 – Pinagem da porta paralela
pág.
24
•
Figura 5.2 – Funcionamento dos pinos da porta paralela
pág.
24
•
Figura 6.1 – Fluxograma do software implementado
pág.
27
•
Figura 7.1 – Relação Corrente X Temperatura em um diodo 1N4148
pág.
30
•
Figura 7.2 – Diagrama Esquemático do CI LM358
pág.
31
•
Figura 7.3 – Montagem para amplificação inversora
pág.
32
•
Figura 7.4 – Montagem para amplificação não inversora
pág.
33
•
Figura 7.5 – Esquemático da Amplificação da Diferença
pág.
33
•
Figura 7.6 – Vista superior do ADC0804
pág.
34
•
Figura 7.7 – Circuito para conversão contínua com o ADC0804
pág.
35
•
Figura 7.8 – Esquemático do Hardware implementado
pág.
37
•
Figura 7.9 – Interface Gráfica com o Usuário
pág.
39
•
Figura 7.10 – Aviso de temperatura
pág.
40
i
•
Figura 8.1 – Relação Temperatura X Tensão no transistor 2N2222
pág.
47
•
Figura 8.2 – Relação Temperatura X Tensão no diodo 1N4148
pág.
48
•
Figura I.1 – Interface do Software
pág.
56
•
Figura I.2 - Aviso indicando que a temperatura excedeu o limite
pág.
58
ii
II – Lista de Abreviaturas
A/D – Analógico para Digital
ASP – Ajustador de Sinal de Prova
D/A – Digital para Analógico
DAC – Conversor Digital para Analógico (Digital/Analog Converter)
DTL – Lógica Diodo-Transistor
E/S – Entrada e Saída
IEEE – Instituto de Engenheiros Elétricos e Eletrônicos
LSB – Less Significative Bit – Bit Menos Significativo
MSB - More Significative Bit – Bit Mais Significativo
NTC – Negative Temperature Coefficient – Coeficiente de Temperatura Negativo
PTC – Positive Temperature Coefficient – Coeficiente de Temperatura Positivo
RS – Registrador Sequencial
SD – Sequenciador Digital
USB – Universal Serial Bus – Barramento Serial Universal
Vcc – Tensão de Corrente Contínua
Vh – Tensão de entrada alta
Vl – Tensão de entrada baixa
iii
III – Lista de Tabelas
Tabela 7.1 – Características Elétricas do Diodo 1N4148
pág.
30
Tabela 7.2 – Características principais do LM358
pág.
32
Tabela 7.3 – Características Principais do ADC0804
pág.
34
Tabela 7.4 – Listagem dos Componentes
pág.
36
iv
IV – Unidades do Sistema Internacional de Medidas (S.I.)
Símbolo
Unidade
Descrição
C
Celsius
Escala de temperatura, nesta escala as temperaturas
de fusão e ebulição da água ficam próximas de 0º e
100º, escala criada por Andres Celsius.
A
Ampère
Unidade de Medida da Intensidade da Corrente,
tem esse nome em homenagem ao físico e
matemático André Marie Ampère.
F
Fahrenheit
Escala de temperatura ainda utilizada em países
anglo-saxões, escala criada por Daniel Gabriel
Fahrenheit para o termômetro de mercúrio.
K
Kelvin
Escala de temperatura onde o 0º corresponde ao
zero absoluto, momento onde as moléculas param
de vibrar.
M
mili
Dimensão de unidade que corresponde a 10-3 da
unidade original
N
Newton
Unidade de força, homenagem a Sir Isaac Newton
O
Ohm
Unidade de resistência elétrica, homenagem a
George Simon Ohm, físico alemão.
V
Volts
Unidade de diferença de potencial.
v
1 - Introdução
A engenharia sempre deu um enfoque especial sobre os efeitos da temperatura
em determinadas situações, nos componentes e nas máquinas. Em especial na parte
eletrônica a temperatura pode causar a queima dos componentes, devido a eles terem
uma faixa de atuação ante a temperatura. Na mecânica a temperatura tem vital
importância na quebra ou desgaste de peças, pois quanto maior for a temperatura mais
propensa a quebras a peça estará.
Para esses problemas e outros é necessário um sistema que possa monitorar a
temperatura e gerar um alerta em determinados valores de temperatura que sejam
críticos, definidos caso a caso.
O projeto tem como função principal o monitoramento da temperatura através de
uma interface, acoplada ao computador, que terá o objetivo de supervisionar todo o
monitoramento.
Esse sistema tem uma aplicação nas indústrias para que haja um sensoriamento
constante nos equipamentos, em estabelecimentos comerciais e residências para
prevenção de incêndios, pois ele pode disparar os alarmes de incêndio; em indústrias
químicas e siderúrgicas, no controle do processo através da temperatura; e nas demais
aplicações em que é necessário um acompanhamento constante da temperatura.
No projeto, a grandeza física inicial é a temperatura que será medida e
apresentada na tela do computador. Para que isto aconteça é necessário a transformação
3
da temperatura em algo que o computador manipule. Como não existe dispositivo
eletrônico que faça toda essa transformação, é necessário separar as partes: detenção da
grandeza, conversão A/D (Analógico para Digital), interfaceamento com o computador
e apresentação dos resultados no monitor do computador.
4
2 – Descrição do Projeto
No projeto, a grandeza física inicial será a temperatura que será medida e
apresentada em um monitor, para que essa apresentação aconteça é necessário a
transformação da temperatura em algo que o computador entenda, não existe dispositivo
eletrônico que faça toda essa transformação, então é necessário separar as partes: sendo
uma delas a parte de captura da temperatura e a outra a transformação para uma
linguagem que o computador entenda.
O computador trabalha com dados digitais, as grandeza físicas são analógicas,
para que ocorra a transformação é necessário um conversor A/D, os conversores A/D
recebem tensão, e transformam em um conjunto de bits. Então para que exista a
absorção dos dados pelo computador há a necessidade de um conversor e como o
conversor recebe como dado de entrada uma tensão é necessário um dispositivo que
transforme a temperatura em tensão.
Por essas razões nosso projeto foi dividido em 4 partes principais, como
mostrado na figura 2.1: sensor, conversor, interface e software.
Figura 2.1 – Diagrama em Blocos do Sistema
5
3 – Sensores
Segundo [ENC – 1987] os sensores são, basicamente, dispositivos que tem como
função transformar medidas de uma grandeza física qualquer para outra grandeza física,
normalmente elétrica.
Partindo deste princípio é necessário o uso de dispositivos que sofram alguma
alteração, de suas propriedades elétricas, ante a uma variação de temperatura, que é o
escopo do trabalho.
Como exemplo de dispositivos que podem ser usados para essa finalidade estão
os: diodos, transistores, termistores e termopares, mas para um melhor entendimento
desses elementos, citar-se-á os princípios básicos dos semicondutores, que são os
componentes básicos destes dispositivos.
3.1 – Semicondutores
Os semicondutores, como o próprio nome indica, constituem uma categoria
intermediária entre os bons condutores e os bons isolantes de eletricidade. O material
semicondutor não é usado em seu estado puro, pois são acrescentadas quantidades
controladas de certas impurezas, as quais, conferem certas propriedades condutoras ao
material, produzindo o que se denomina de um semicondutor estimulado.
6
O termo elétron é um termo proveniente da química e está associado com a
eletrônica e o fluxo de corrente. Aceita-se, geralmente, que o fluxo de corrente nos
componentes eletrônicos seja constituído de elétrons. O termo lacuna por sua vez, indica
uma carga positiva ou a ausência de elétron.
O material estimulante pode ser de um dos seguintes tipos:
Impureza doadora – doa elétrons ao semicondutor. Semicondutores tipo N.
Impureza aceitadora – aceita elétrons do semicondutor. Semicondutores tipo P.
A principal diferença entre o material do tipo P o tipo N reside na espécie de
carga que se movimenta em seu interior. No material tipo N a corrente é produzida pela
circulação de elétrons. Obviamente, no material do tipo P a corrente é produzida pelo
movimento das lacunas ou cargas positivas.
3.1.1 – Elétrons e Lacunas
Para uma melhor compreensão, é necessária uma pequena descrição da estrutura
de um átomo. Os átomos são constituídos por um núcleo, circulado por anéis de
elétrons. Cada anel contém um número certo de elétrons. Os elétrons do anel externo
situam-se numa órbita, ou banda, chamada de banda de valência. Um nível
característico de energia dessa banda fornece a força que liga todos os elétrons da banda
de valência de um átomo aos elétrons da banda de valência de outro átomo, formando,
desta forma, a estrutura do cristal, conforme explicado em [MAN – 1970].
Se fosse adicionado átomos com cinco elétrons de valência à estrutura, o
material ficaria então com elétrons livres que não seriam ligados por uma banda de
valência. Essa adição pode ser feita nos semicondutores pela introdução de uma
impureza doadora, que produz um semicondutor do tipo N. Os elétrons (cargas
7
negativas), não ligados na estrutura do cristal, poderão ser usados como portadores de
corrente. No material do tipo N os elétrons são denominados portadores majoritários
porque o maior fluxo de corrente é constituída de elétrons. Essa afirmativa faz supor
que a corrente pode fluir por lacunas, o que é verdade, desta forma, as lacunas são
portadores minoritários nos semicondutores do tipo N.
Da mesma forma que fosse introduzida uma impureza doadora, que doa elétrons
ao material semicondutor, pode-se introduzir uma impureza aceitadora que aceita
elétrons, produzindo assim um semicondutor do tipo P.
Para compreender esta teoria, deve-se lembrar que:
(1) um elétron é uma partícula com carga negativa que será atraída e se
movimentará na direção de uma carga positiva;
(2) que a lacuna é uma carga positiva que será atraída por uma carga
negativa e se movimentará na direção dela.
Um elétron que abandona a banda de valência deixa uma lacuna nessa banda,
formando um par elétron-lacuna. O elétron e a lacuna tem a mesma carga, mas com
polaridades opostas. Se um elétron ocupar uma lacuna na banda de valência, as cargas
se neutralizam.
Os pontos principais a salientar são que os elétrons são partículas carregadas
negativamente e que as lacunas são cargas positivas. Ambos podem movimentar-se e,
por causa disso, podem ser portadores de corrente. Nos semicondutores do tipo P as
lacunas são os portadores majoritários. Logo, a corrente nos semicondutores é formada
pelo movimento de cargas positivas, negativas ou ambas.
Após essa breve explanação, descrever-se-á os dispositivos semicondutores que
podem ser usados como sensores, ou seja, converterão a grandeza física temperatura em
uma grandeza elétrica.
8
3.2 – Dispositivos Semicondutores
Descrever-se-á abaixo as características, de alguns dispositivos semicondutores e
sua relação temperatura/tensão, fundamental ao funcionamento dos sensores de
temperatura.
3.2.1 Diodos
Os diodos são dispositivos constituídos da junção de elementos do tipo P e do
tipo N mantendo a continuidade da estrutura cristalina. Desta definição que surge o seu
nome diodo: dois elementos de tipos diferentes unidos em uma mesma estrutura física.
O diodo opera da seguinte forma: quando se forma uma junção PN como na
figura 3.1, o material N tem excesso de elétrons e o P excesso de lacunas, havendo
difusão de lacunas de P para N e de elétrons de N para P. Durante a difusão as áreas
próximas da junção tendem a ficar livres de portadores de cargas (lacunas e elétrons),
devido a recombinação e conseqüente anulação delas, assim um elétron vindo do lado N
encontrará uma barreira negativa do lado P que o repelirá, dando-se o mesmo com as
lacunas, formando, desta forma, um campo elétrico. Para que essa barreira ocorra é
necessário uma diferença de potencial de ordem 0,3 a 0,6 Volts dependendo do material,
e a temperatura. Isso tudo tem como conseqüência o alargamento da Camada de Carga
Espacial (C.C.E.), que é o espaço em que a corrente circulará no dispositivo.
9
Figura 3.1 – Estrutura de um Diodo
Como comentado anteriormente um diodo varia suas características elétricas
devido a temperatura. Para cada aumento de 1ºC na temperatura ter-se-á uma queda de
tensão de aproximadamente 2,5 miliVolts, ou seja, quanto mais a temperatura aumentar
menor será a tensão em um diodo.
Na figura 3.2, observa-se as características elétricas do diodo para diferentes
temperaturas, e que as curvas de relação entre corrente e tensão mudam conforme a
variação da temperatura, ou seja, quanto maior a temperatura, menor a tensão.
Figura 3.2 – Relação de Tensão X Temperatura em um Diodo
10
3.2.2 Transistores
Os transistores são dispositivos que possuem duas uniões de semicondutores PN
(a mesma dos diodos), capazes de controlar a passagem de uma corrente. Podem ser de
dois tipos, de acordo com as uniões de semicondutores: PNP ou NPN, e apresentam
terminais denominados de base, emissor e coletor.
A base é a parte que controla a passagem de corrente; quando a base esta
energizada, há passagem de corrente do emissor para o coletor, quando não há sinal na
base, não existe essa condução. A base esquematicamente, como mostrado na figura 3.3
é o centro do transistor. O coletor é uma das extremidades do transistor: é nele que
“entra” a corrente a ser controlada. A relação existente entre o coletor e a base é um
parâmetro ou propriedade do transistor conhecido como beta e é diferente para cada
transistor. O emissor é outra extremidade, por onde sai a corrente que foi controlada.
Algumas características que deve-se observar nos transistores são: a tensão máxima
entre base e coletor, a potência máxima dissipável e a freqüência máxima de operação.
Figura 3.3 – Transistor PNP e NPN, nota-se que a base controla a junção
Existem muitos usos para os transistores na eletrônica, como amplificadores,
osciladores, etc, mas especialmente na microinformática os transistores são usados
como portas lógicas na família de circuitos integrados TTL (Transistor-TransistorLogic), na figura 3.4 está o desenho esquemático de um transistor como porta inversora
11
e o funcionamento dele em seguida, porta inversora é a aplicação do operador lógico
NOT da álgebra booleana em um circuito elétrico.
Figura 3.4 – (a) desenho de um transistor como porta lógica
(b) desenho esquemático da porta
Uma tensão denominada Vcc é aplicada ao extremo do coletor com um resistor
(através de uma fonte de alimentação), o emissor é ligado ao terra (que é o terminal
negativo da fonte de alimentação), enquanto o base é que vai receber a tensão de entrada
(Vh ou Vl) se a base receber um nível lógico 0 (tensão entre 0 à 0,8 Volts), o transistor
não conduz corrente entre o coletor e o emissor, assim a tensão de saída no final do
coletor será um nível lógico 1 (tensão entre 2 à 5 volts); ao contrário se a base receber
um valor de nível lógico 1, então o transistor conduz a corrente entre os seus terminais
(coletor e emissor) e a tensão de saída, Vo , será igual a um nível lógico 0.
Na microinformática os transistores podem ser usados como portas lógicas junto
com os diodos, como por exemplo, uma porta NAND pode ser implementada através de
um circuito NOT operado por um transistor após de um circuito AND operado por um
diodo como mostrado na figura 3.5, esses circuitos são chamados de portas lógicas a
diodo e a transistor (DTL).
12
(a)
(b)
Figura 3.5 – (a) Porta NAND de 3 entradas a diodo; (b) um diodo sendo usado para melhorar as
características de saída de um transistor
3.2.3 Termistores
O termo termistor é de origem inglesa, thermal resistors. Um termistor é um
resistor sensível à temperatura, composto por elementos semicondutores que se
comportam como uma resistência com um alto coeficiente de resistência à temperatura
e, geralmente, negativo. Uma definição simples é que a resistência apresentada entre os
terminais do termistor, está diretamente relacionada com a temperatura de sua estrutura.
Na composição dos termistores são utilizados elementos químicos como o
germânio, o silício, ou misturas de cerâmicas de óxidos condutores, como o manganês,
o níquel, o cobalto, o cobre, o ferro, o urânio, o estrôncio, o titânio, etc., no caso das
resistências com coeficiente de temperatura negativo (Negative Temperature Coefficient
– NTC), e mistura de cerâmica com titanato de bário, no caso do coeficiente de
temperatura positivo (Positive Temperature Coefficient - PTC). A composição do
termistor determinará se o coeficiente de temperatura do dispositivo será positivo ou
negativo.
13
O termistor do tipo PTC, de relativa linearidade, também é chamado de silístor
e, para indicar o termistor que mostra um grande aumento no valor nominal da
resistência a partir de uma temperatura preestabelecida, costuma-se denomina-lo de
termistor comutado (switched-type).
A resistência de um termistor à temperatura, pode diminuir até 6% a cada 1ºC de
aumento da temperatura. Sua margem de resistência vai de 0,5O a 75 O e existem uma
ampla gama de formas, como gota, tubo, disco, anilha ou circuito integrado, e
tamanhos, variando entre 0.1 mm à até vários centímetros. Os menores tem um diâmetro
de 0.1 mm a 1.25mm.
O uso de termistores está muito difundido, em especial na faixa de temperatura
entre – 100ºC à 300ºC.
Existem, basicamente, duas formas de variar a temperatura do dispositivo:
-
internamente: por meio de uma simples variação da corrente que
atravessa o dispositivo produz uma alteração no valor da temperatura
interna;
-
externamente: através de uma variação da temperatura do meio que
o envolve, mergulhando, por exemplo, o dispositivo em uma solução
quente ou fria.
No caso do NTC, qualquer aumento de temperatura no meio que o envolve
provoca uma redução da resistência do termistor.
Devido a alta sensibilidade à temperatura, o termistor é muito usado para
medições e controle, com muita precisão. Exemplos destas aplicações estão as sondas
de
temperatura
em
aplicações
industriais,
em
aparelhagem
médica,
em
eletrodomésticos, em instrumentação para investigação científica, no setor automotivo,
em telecomunicações, em aplicações militares, etc.
14
A aquisição de temperatura por termistores pode ser mais ou menos complexa,
porque pode envolver condicionadores de sinais e placas de aquisição de dados para a
digitalização da informação e o seu processamento no computador, dependendo da
aplicação.
3.2.4 Termopares
Considerar-se-á dois metais denominados genericamente “A” e “B” submetidos
à mesma diferença de temperatura entre suas extremidades. Em cada um deles surgirá
uma força eletromotriz, conforme mostrado na figura 3.6:
Figura 3.6 – Dois metais com a mesma temperatura aplicada em suas extremidades
Verificou-se que quando os metais são unidos em uma das extremidades,
conforme a figura 3.7, mede-se uma força eletromotriz entre as extremidades separadas
cujo valor corresponde à diferença entre os valores da força eletromotriz que surge em
cada um dos metais.
Figura 3.7 – Desenho Esquemático de um termopar
15
Este fenômeno, segundo [ROD – 1998], é conhecido como Efeito Seebeck e a
configuração acima corresponde ao sensor de temperatura conhecido como termopar ou
par termoelétrico. Os elementos “A” e “B” que constituem o termopar são denominados
termoelementos e, em função da polaridade da força eletromotriz, “A” é o
termoelemento positivo e “B” é o termoelemento negativo do termopar “AB”. Na
configuração de um termopar a extremidade em que se faz a união dos termoelementos
é denominada junção de medição, enquanto a outra extremidade é denominada junção
de referência. Se a temperatura da junção de referência for fixada em 0ºC, então o valor
da força eletromotriz dependerá somente da temperatura da junção de medição. O
conhecimento desta relação permite utilizar o termopar como um sensor de temperatura.
Os termopares são normalmente utilizados como sensores de temperatura em
aplicações industriais pois dependem apenas do coeficiente térmico dos materiais
utilizados.
16
4 – Conversores
Os conversores como o nome indica são dispositivos eletrônicos que fazem a
conversão entre uma grandeza analógica, normalmente tensão, em uma grandeza digital,
um número binário, e vice-versa.
Em
nosso
projeto
será
necessário
o
uso
de
um
conversor
A/D
(Analógico/Digital) para converter o valor enviado pelo sensor (grandeza elétrica) em
um número binário que é um formato aceito pelas portas de E/S (Entrada/Saída).
Abaixo, descrever-se-á alguns métodos de conversão A/D que são normalmente
utilizados pelos conversores modernos.
4.1 Método da Voltagem em Rampa
Esse método é o mais simples e, também, o menos usado, e é normalmente
utilizado em instrumentos de medidas, como em voltímetros digitais.
Segundo [KHA- 1984], o método de conversão da voltagem em rampa funciona
pelo seguinte esquema, para melhor compreensão compare com a figura 4.1:
1. é aplicado um sinal de entrada analógica, para ser digitalizado, na entrada do
comparador;
2. um nível lógico alto “1” é aplicado no terminal de início, liga o processo de
conversão executando as três funções seguintes:
17
3. apaga o contador, removendo, desta maneira, qualquer informação nele contida,
da operação anterior.
4. Coloca o circuito biestável R-S no estado Q, ativando, assim a porta AND A1.
5. Inicia o gerador de voltagem em rampa, através da porta AND A2.
6. A voltagem de referência do gerador de rampa é alimentada na segunda entrada
do comparador e esta voltagem aumenta linearmente.
7. Neste meio tempo, os pulsos do marcador de tempo fixo são retidos no contador
através de uma porta AND A1 e começam a incrementá-lo.
8. Quando a voltagem em rampa atinge e excede ligeiramente a voltagem da
entrada analógica, a saída do comparador muda de “0” para “1”.
9. Isto restaura o circuito biestável para o lado ~Q, desativando, desta maneira, a
porta AND A1 e evitando que os pulsos do marcador de tempo incrementem,
posteriormente, o contador.
10. A saída em “1” do comparador também desativa a porta AND A2, que, por sua
vez, DESLIGA o gerador de voltagem em rampa, retornando, assim, a saída do
comparador para um “0”, em preparação para a próxima operação de conversão.
11. O contador contém o valor equivalente em digital do sinal de entrada analógica.
Figura 4.1 – Configuração lógica para a técnica da Voltagem em rampa
18
Mas, para uma melhor compreensão do circuito acima descrito, abaixo mostrar-se-á
um algoritmo de conversão:
1. O conversor recebe o valor analógico, um pulso zera o contador, e segue-se o
seguinte laço:
2. Soma-se um 1 bit;
3. Converte o valor em conversor D/A;
4. Compara o valor de entrada com o valor do conversor D/A;
Se o valor do conversor é maior ou igual termina-se a conversão;
Senão continua-se até ser satisfeito esse critério.
Este método tem a desvantagem de o contador ter que alcançar a contagem
máxima em um período de tempo extremamente curto, em decorrência de uma entrada
analógica máxima.
4.2 – Método da Aproximação Sucessiva
Esse método é o mais amplamente usado na conversão A/D, é utilizado na
maioria dos conversores A/D atuais.
Segundo [MAL – 1985], o método da aproximação sucessiva obedece a seguinte
sequência, para compreensão compare com a figura 4.2:
1. SD (Sequenciador Digital) envia um “1” na linha MSB (Bit Mais Significativo).
Isto, também, ativa a porta A8. A entrada para o DAC (Digital/Analogic
Converter – Conversor Digital/Analógico) é 10000000 em binário.
2. A saída do DAC é introduzida no ajustador do sinal de prova (ASP). O ASP
emite um sinal de prova que é a metade da escala.
19
3. Se o sinal de entrada analógica for menor que o sinal de prova, então o
comparador emite um “0”; isto é alimentado na segunda entrada de A8. A saída
de A8 é “0”, portanto o bit 8 (o MSB) de RS (Registrador Sequencial) continua
um “0”.
4. Se o sinal de entrada analógica for maior que este sinal de prova, o comparador
emite um “1” que ativa A8 completamente. Neste caso, um “1” vai ser carregado
na posição de bit 8 do RS.
5. A saída “1” de A8 é, também, alimentada no ASP. Isto diz ao ASP para somar
uma metade do valor.
6. Agora, o SD emite um “1” na próxima linha de saída inferior. A entrada para o
DAC é 01000000 e a saída é a metade do valor da saída anterior.
7. ASP vai ajustar a saída maior ou menor, dependendo se a saída da operação
anterior estava em “1” ou em “0”.
8. Este processo é repetido com SD emitindo um “1” digital em cada linha de saída
subsequente em cada etapa sucessiva. Portanto, em cada etapa sucessiva, o
processo resulta em uma aproximação que fica mais perto do sinal de entrada
analógica.
9. Após 8 fases do processo, o RS conterá a aproximação em binário do sinal de
entrada analógica.
20
Figura 4.2 – Esquema lógico para o método da aproximação sucessiva
Também, para melhor compreensão do método visto acima, na seqüência
descreve-se um algoritmo:
1. conversor recebe o valor analógico, e segue-se o seguinte laço:
2. Um sequenciador digital joga um nível lógico “1” no MSB, um conversor D/A
converte esse valor e compara com o sinal analógico;
Se for maior ele armazena “0” em um registrador seqüencial;
Senão armazena-se “1”.
3. Passa-se para o próximo MSB até se chegar ao LSB (bit menos significativo), o
valor digital aproximado estará no registrador seqüencial
21
5- Interfaceamento com o Computador
É necessário que haja a comunicação entre o dispositivo conversor e o
computador para que os dados possam ser recebidos e processados, tanto para o
programa tomar decisões pelos seus parâmetros, como para ter uma forma visível da
temperatura, para isso usar-se-á as portas de comunicação do computador.
Existem vários tipos da portas de comunicação entre equipamentos e o
computador, desde as clássicas portas paralela e serial, desde os novos padrões de
infravermelho, USB (Universal Serial Bus) e IEEE1394 (Instituto de Engenheiros
Elétricos e Eletrônicos).
No projeto abordar-se-á as portas paralela e
serial, devido a terem um bom
funcionamento e serem de mais fácil implementação.
5.1- Porta Serial
A porta serial é composta por uma linha de envio de dados (TX), outra para o
recebimento (RX) e mais algumas para regularizar como os dados estão sendo enviados
por estas duas linhas.
22
Devido a sua simplicidade, a porta serial tem sido utilizada para que o
computador comunique-se com quase todos os dispositivos – desde modems e
impressoras até sistemas específicos como os de alarme.
A utilização mais freqüente para a porta serial é para mouse ou modem. O
motivo é que a porta serial não é um meio muito eficiente para a transferência de dados.
Ela consegue somente enviar dados em série (um atrás do outro), o que gera uma baixa
taxa de transferência.
A porta serial é normalmente conhecida como porta RS-232, e é uma
especificação da Associação das Indústrias Eletrônicas, a qual definiu como um padrão
para este tipo de interface de comunicação.
5.2 – Porta Paralela
A comunicação paralela implica transferência simultânea de todos os bits que
compõem o byte. Esse método de transmissão e recepção é utilizado nas ligações
internas dos computadores e ligações entre computador e periféricos bastante próximos
[DAS – 1991].
Na comunicação em paralelo, os dados são transferidos em grupos de bits
simultaneamente a cada ciclo, em geral byte a byte, através de diversas linhas
condutoras de sinais e, neste caso, a taxa de transferência de dados é alta.
No computador, as portas paralelas são identificadas pelas siglas: LPT e
geralmente, a porta padrão é a LPT1.
A comunicação da porta física é feita através de endereços que variam de uma
porta para outra. Por exemplo, na porta LPT1 o endereço 378h e serve para enviar um
byte de dados pela porta, já o endereço 379h recebe um valor da porta. Às vezes, a porta
23
LPT2 pode estar disponível, usando as mesmas funções da LPT1, mas com diferentes
endereços.
Figura 5.1 – Pinagem da porta paralela
O DB25 é o conector usado pela porta paralela, e normalmente fica na parte da
trás do gabinete do computador, e é através deste, que conecta-se o cabo paralelo ao
computador para poder enviar e receber dados. Como o próprio nome indica, ele tem 25
pinos, cada um com uma função e um nome que os identifica. Nas figuras 5.1 e 5.2
descrevem o significado de cada pino e o esboço de funcionamento.
Figura 5.2 – Funcionamento dos pinos de uma porta paralela
24
Existem três tipos diferentes da porta paralela conhecidas pelas suas siglas: SPP
(Standard Parallel Port – Porta Paralela Padrão), EPP (Extended Parallel Port – Porta
Paralela Estendida) e ECP(Enhanced Capabilities Port – Porta com Capacidades
Aumentadas), sendo a primeira de comunicação unidirecional, do computador para o
periférico externo, e as outras duas formas são bidirecionais.
Segundo [REI - 2000], a porta paralela é subutilizada por projetistas e
estudantes, apesar de ser a maneira mais fácil de comunicação entre o computador e os
meios externos.
Este projeto visa a comunicação do periférico com o computador, necessitando
da bidirecionalidade da porta.
25
6 – Software
Outra parte muito importante do projeto é o software, que será responsável pelo
tratamento das informações a respeito da temperatura recebidas através da porta de
comunicação. Para isso, utilizar-se-á a linguagem de programação “C” [SCH-1996],
devido a sua finalidade de aplicações geral e de ser uma linguagem de nível médio, ou
seja, ela permite operações diretas em binário (manipulação de bits) e de endereços de
memória – os elementos básicos com os quais o computador funciona.
Há algum tempo, já existem versões orientadas a objetos como o Microsoft
Visual C++ e Borland C++ Builder que são ferramentas de construção e de
montagem de programas, na qual reutiliza-se “peças” ou objetos, que reúnem
informações e instruções, combinando as etapas simples ou complexas, para formar um
único procedimento, ou seja, não é uma técnica de codificação, mas de agrupamento de
código (subcomponentes). Desta forma, pode-se resumir a Programação Orientada à
Objetos em duas palavras: encapsulamento e herança, onde encapsulamento é separar o
código do programa em blocos, facilitando a manutenção e a reutilização deste no
mesmo programa, ou mesmo em outros programas, por isso o termo herança.
Essas ferramentas trabalham com os sistemas operacionais Windows 95,
Windows 98 e Windows NT. No projeto utilizar-se-á estas plataformas para executar
o programa de leitura das informações, pelas facilidades de operação e visualização dos
dados.
26
O funcionamento do software é descrito no fluxograma apresentado na figura
6.1.
Figura 6.1 – Fluxograma do software implementado
Assim como, descrito no algoritmo, que foi implementado, apresentado na seqüência.
27
//-------------------------------------------------------------------------------------------------------//
//Algoritmo do Programa para um Sistema de Sensoriamento Térmico
//
//desenvolvido para o Programa de Iniciação Científica.
//
//-------------------------------------------------------------------------------------------------------//
INICIO
{
int unidade=1, selecao, intervalo, temperatura;
intervalo = 1;
enquanto 1 < 2 faça{
escreva(“1 – Iniciar”);
//menu de seleção inicial
escreva(“2 – Escolher Unidade”);
escreva(“3 - Mudar intervalo de medida”);
escreva(“4 – Sair”);
faça{
//loop para o usuario não selecionar
leia(selecao);
//opções inválidas
}enquanto(selecao<1 OU selecao>4);
escolha(selecao){
//seleção da opção do menu principal
caso 4:
salve arquivo de log;
//opção para saída do programa salvanabandone;
//do o conteúdo em arquivo de log
caso 3:
escreva(“Digite novo intervalo de medida em segundos”);
leia(intervalo);
caso 2:
escreva(“1 – Celsius”);
escreva(“2 – Farenheit”);
escreva(“3 – Kelvin”);
faça{
leia(unidade);
}enquanto(unidade<1 OU unidade>3)
caso 1:
//opção de início do sensoriamento
while(1){
//loop até o pressionamento do ESC
if(TeclaPressionada()==’ESC’) break;
temperatura = leia(PortaParalela);
if(unidade==2) temperatura = 9/5*temperatura+32; //conversão
if(unidade==3) temperatura = temperatura+273; //em escalas de
escreva(temperatura);
//temperatura
espere(intervalo);
//espera antes da próxima leitura
}
}fim escolha
}fim enquanto
}FIM
28
7 – Implementação
Como apresentado anteriormente este projeto pode ser dividido em quatro partes
distintas mas interligadas, que são: sensor, conversor A/D, interface e o software, nas
partes eletrônicas, sensor e conversor A/D, existem componentes indispensáveis, sem os
quais não seria possível a execução deste projeto, estes componentes são apresentados
na seqüência.
7.1 - Principais Componentes
Em projetos eletrônicos existem componentes essenciais para o desenvolvimento
do trabalho, nas 4 partes que são divididas este projeto, como visto na figura 2.1,
capítulo 2, existem certos componentes eletrônicos que tem importância fundamental,
esses componentes são descritos a seguir.
7.1.1 - Diodo 1N4148
Uma das subdivisões deste projeto é o sensor. Como visto anteriormente utilizarse-á como elemento sensor um componente eletrônico semicondutor. Após alguns teste
chegou-se a definição deste diodo como melhor elemento sensor.
29
O diodo 1N4148 é um diodo para aplicações gerais com alta velocidade de
resposta fabricado por todas as empresas que trabalham com semicondutores e suas
características principais são apresentadas na tabela 7.1.
Símbolo
VRRM
Parâmetros
VR
Tensão contínua c/
polarização invertida
Corrente Contínua
Corrente Alternada
Potência total dissipada
Temperatura p/ estoque
Temperatura junção
IF
IFRM
Ptot
Tstg
Tj
Tensão alternada c/
polarização invertida
Mínimo
-
Máximo
75
Unidade
V
-
75
V
-65
-
200
450
500
+200
+200
mA
mA
mW
ºC
ºC
Tabela 7.1 – Características Elétricas do Diodo 1N4148
Este diodo foi utilizado porque apresentada uma variação de tensão mais linear
como apresentado no figura 7.1 obtida de [PHI – 1996].
Figura 7.1 – Corrente X Temperatura
Com o desenvolvimento do circuito sensor utilizando-se o diodo descrito acima,
chegou-se a definição que trabalharíamos com uma faixa de tensão de 0 à 100 mV, esta
faixa de tensão é muito baixa para a utilização de um conversor A/D, a próxima
subdivisão do projeto, o conversor A/D trabalha com faixas de tensões de 0 à 5 V, assim
sendo necessitava-se de um elemento que transformasse a tensão máxima de saída do
30
sensor, 100 mV, na tensão máxima do conversor A/D, de 5V, para esse fim foi utilizado
um amplificador operacional.
7.1.2 - Amplificador Operacional LM358
Como visto anteriormente, a tensão máxima de saída do circuito sensor e a
tensão mínima da entrada do conversor A/D são incompatíveis entre si, para que possase trabalhar com os dois circuitos em conjunto é necessária a amplificação do sinal de
saída do sensor para que ela seja reconhecida pelo conversor A/D.
Figura 7.2 – Diagrama Esquemático do CI LM358
O
LM358
é
um
amplificador
operacional
desenvolvido
pela
National
Semiconductors® usado para amplificação transistorizada, ganho de tensão e outros
usos de amplificadores operacionais. Desenvolvido para ser usado com apenas uma
alimentação de tensão de +5V para utilização em sistemas digitais, ao contrário da
maioria dos amplificadores operacionais desenvolvidos com alimentação de +12V e –
12V. Em nosso circuito é utilizado para um ganho de tensão em 50 vezes, pois a saída
máxima do circuito sensor é de 100mV enquanto a entrada máxima do conversor A/D é
de 5V, suas características principais são apresentadas na tabela 7.2 e na figura 7.2 é
apresentado o seu esquemático
31
Descrição
Tensão de Trabalho (V)
Temperatura de Trabalho (Celsius)
Potência Dissipada (mW)
Corrente de Entrada (mA)
Corrente de Saída (mA)
Mínimo
0-+5
0º
435
0,5
0,3
Máximo
-12-+32
70º
850
50
40
Tabela 7.2 – Características principais do LM358
Amplificação da Diferença
Este método de amplificação é aqui descrito pois foi utilizado para a
amplificação do sinal sendo que a tensão real era medida pela diferença de duas outras
tensões.
O circuito da amplificação da diferença é feito utilizando-se dois outros circuitos
amplificadores, conhecidos como amplificador inversor e amplificador não-inversor, os
seus respectivos circuitos são mostrados nas figuras 7.3 e 7.4.
Figura 7.3 – Montagem inversora
32
Figura 7.4 – Montagem para amplificação não inversora
Utilizando-se as duas montagens simultaneamente, podemos implementar um
circuito que amplifica a diferença entre duas tensões distintas, apresentado na figura 7.5.
Figura 7.5 – Esquemático da Amplificação da Diferença
A partir deste esquemático e com o teorema da sobreposição de fontes é possível
reconhecer duas fontes distintas de energia, apresentadas na equação 1 abaixo:
Equação 1
33
Fazendo as simplificações possíveis na equação 1 chega-se a equação 2,
que é a equação necessária para se calcular o ganho de tensão no amplificador:
Equação 2
7.1.3 - Conversor A/D ADC0804
Após a amplificação do sinal podemos utilizar o conversor A/D para
repassarmos os dados para o computador que os manipulará, e para isto, utilizar-se-á o
circuito integrado ADC0804.
Figura 7.6 – Vista superior do ADC0804
O ADC0804 é um conversor Analógico/Digital com saída de 8 bits que utiliza o
método da aproximação sucessiva para executar a conversão, com clock interno e saída
tri-state, suas características principais são apresentadas na tabela 7.3, a pinagem é
apresentada na figura 7.6.
Símbolo
Vcc
TA
PD
Parâmetro
Tensão de alimentação
Temperatura
Potência Dissipada
Margem
4 até 6,5
-40 até +85
1650
Unidade
Volts
Celsius
MiliWatts
Tabela 7.3 – Características Principais do ADC0804
34
Utilizando-se do conversor ADC0804 projetou-se um circuito que fizesse a
conversão da tensão recebida do circuito sensor para a forma digital, esse circuito é
mostrado na figura 7.7.
Figura 7.7 – Circuito para conversão contínua com o ADC0804
7.2 Hardware
Como visto estes três componentes tem uma função especial na execução do
projeto, na tabela 7.4 são apresentados todos os componentes utilizados para a
implementação do projeto.
35
Componente
Quantidade
Resistor 40O
1
Resistor 120O
1
Resistor 200O
1
Resistor 1KO
1
Resistor 2,2KO
2
Resistor 10KO
4
Resistor 56KO
1
Resistor 100KO
1
Resistor 110KO
2
Resistor 470KO
1
Resistor 560KO
1
Trimpot 10KO
2
Trimpot 200KO
1
Capacitor 100nF
2
Capacitor 56pF
1
Capacitor 1nF
1
Diodo 1N4148
1
LM358
1
ADC0804
1
Conector DB25
1
Tabela 7.4 – Listagem dos Componentes
O hardware é constituído de uma parte sensora, que mantém a corrente do
circuito sempre estável, assim a tensão irá ser alterada quando a temperatura variar,
após temos um estágio amplificador para compatibilizar a saída do circuito sensor com
a entrada do circuito conversor, e o circuito conversor finaliza a operação analógica
convertendo a tensão em um valor binário ao qual o computador compreende e pode
manipular.
O esquemático do circuito da placa, hardware, é apresentado na figura 7.8.
36
Folha
para
impressão
37
do
Esquemático
Procedimento para Ajuste/Calibragem do Hardware
Como com o tempo pode ocorrer dos circuitos sofrerem desgastes e perderem a
sua calibragem inicial apresentamos abaixo o método necessário para a calibração do
sensor e do conversor A/D:
1. Coloca-se o dispositivo sensor, diodo, em uma cuba de gelo que
atinja 0ºC.
2. Com um multímetro mede-se as diferenças entre a saída do
potenciômetro P2 e o terra do circuito, altera-se a resistência do
potenciômetro P1 até que a o multímetro aponte 0mV.
3. Após aquece-se o sensor até a temperatura de 100ºC, altera-se a
resistência do potenciômetro P2 até que a diferença atinja 100mV.
4. Após mede-se a diferença de tensão entre a saída do potenciômetro
P3 em relação ao terra do circuito, altera-se a resistência deste
potenciômetro até que o valor atinja 2,5 V.
38
7.3 - Software
Como comentado anteriormente o projeto constitui-se de hardware, a parte física
dele, que gera os dados, e do software que manipula os dados gerados pelo hardware,
com esse intuito foi desenvolvido um software específico para a manipulação dos dados
transmitidos pelo hardware, esse software é descrito na seqüência.
A implementação do programa não é sofisticada, contendo elementos básicos
como conversão da
temperatura para as três escalas: Celsius, Fahrenheit e Kelvin; a
freqüência de leitura da temperatura, o gráfico com o histórico da temperatura, a
manipulação de arquivos (com o registro das temperaturas) e outras, para que o usuário
do software dos sistema de sensoriamento térmico o opere facilmente. A figura 7.9,
mostra um exemplo de como é a interface gráfica com o usuário.
Figura 7.9 – Interface Gráfica com o Usuário
39
O funcionamento e a operação é simples: Ao clicar no botão Iniciar, o programa
inicia um laço e começa a leitura da porta de comunicação. O valor indicado na caixa
Tempo de Leitura é a freqüência com que o programa irá ler a porta de comunicação.
Após ter lido o valor, ele será convertido através de uma fórmula, que relaciona o valor
binário com o correspondente em temperatura, e este valor será a temperatura,
armazenado em um arquivo, que conterá o horário, momento (da leitura), que será
obtido do computador e a data. Conforme a seleção da Escala, apresentar-se-á a
temperatura na tela por meio de gráfico e pela caixa Temperatura Atual. Caso a
temperatura lida exceda o valor máximo permitido, será emitido um aviso sonoro assim
como um alerta visual: “A temperatura excedeu o limite máximo”, conforme mostra a
figura 7.10. Clicando-se no botão Parar o programa interromperá o processamento
(leitura) até que o usuário reinicie o processo.
Figura 7.10 – Aviso indicando que a temperatura excedeu
o limite máximo.
Na seqüência apresentar-se-á o código-fonte do programa feito com o objetivo
de receber dados gerados pelo hardware descrito acima, os quatro primeiros códigos são
referentes aos arquivos de biblioteca criados por nós no segundo é descrito o arquivo do
software em si.
40
Arquivo temperatura.h, contém as definições do programa de leitura:
//--------------------------------------------------------------------------#ifndef temperaturaH
#define temperaturaH
//--------------------------------------------------------------------------#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include "CSPIN.h"
//definicao das bibliotecas padrao do compilador
#include "PERFGRAP.h"
//que serao necessarias
#include <Buttons.hpp>
#include <ComCtrls.hpp>
#include <ExtCtrls.hpp>
#include <Menus.hpp>
//--------------------------------------------------------------------------class TForm1 : public TForm
{
__published:
// IDE-managed Components
TPerformanceGraph *PerformanceGraph1;
//classes das bibliotecas acima
TLabel *Label9;
//cada classe tem uma relacao direta
TProgressBar *ProgressBar1;
//com um objeto por exemplo um
botao
TGroupBox *GroupBox1;
TLabel *Label1;
TRadioGroup *RadioGroup1;
TBitBtn *BitBtn1;
TGroupBox *GroupBox2;
TLabel *Label2;
TGroupBox *GroupBox3;
TLabel *Label3;
TGroupBox *GroupBox4;
TLabel *Label4;
TGroupBox *GroupBox5;
TLabel *Label6;
TLabel *Label7;
TCSpinEdit *CSpinEdit2;
TCSpinEdit *CSpinEdit3;
TBitBtn *BitBtn2;
TCSpinEdit *CSpinEdit1;
TBitBtn *BitBtn3;
TMainMenu *MainMenu1;
TMenuItem *Arquivo1;
TMenuItem *Ajuda1;
TTimer *Timer1;
TTimer *Timer2;
TMenuItem *Iniciar1;
TMenuItem *Parar1;
TMenuItem *N1;
TMenuItem *Sair1;
TLabel *Label8;
TLabel *Label10;
TMenuItem *Sobre1;
TMenuItem *VerArqdeLog1;
void __fastcall BitBtn1Click(TObject *Sender);
//funcoes orientadas a evento
void __fastcall Timer1Timer(TObject *Sender);
void __fastcall Timer2Timer(TObject *Sender);
void __fastcall BitBtn2Click(TObject *Sender);
void __fastcall CSpinEdit1Change(TObject *Sender);
void __fastcall BitBtn3Click(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall Timer3Timer(TObject *Sender);
void __fastcall Sobre1Click(TObject *Sender);
41
void __fastcall Iniciar1Click(TObject *Sender);
void __fastcall Parar1Click(TObject *Sender);
void __fastcall VerArqdeLog1Click(TObject *Sender);
void __fastcall Sair1Click(TObject *Sender);
private: // User declarations
public:
// User declarations
__fastcall TForm1(TComponent* Owner);
};
//--------------------------------------------------------------------------extern PACKAGE TForm1 *Form1;
//--------------------------------------------------------------------------#endif
A seguir são apresentadas as quatro bibliotecas com as funções necessárias ao
funcionamento do programa.
Arquivo Unit2.h, contém as definições da tela de alerta.
//--------------------------------------------------------------------------#ifndef Unit2H
#define Unit2H
//--------------------------------------------------------------------------#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <MPlayer.hpp>
//--------------------------------------------------------------------------class TForm2 : public TForm
{
__published:
// IDE-managed Components
TButton *Button1;
TLabel *Label1;
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
public:
// User declarations
__fastcall TForm2(TComponent* Owner);
};
//--------------------------------------------------------------------------extern PACKAGE TForm2 *Form2;
//--------------------------------------------------------------------------#endif
Arquivo Unit3.h, contém as definições da tela de ajuda.
//--------------------------------------------------------------------------#ifndef Unit3H
#define Unit3H
//--------------------------------------------------------------------------#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <jpeg.hpp>
//--------------------------------------------------------------------------class TForm3 : public TForm
{
__published:
// IDE-managed Components
TMemo *Memo1;
42
TButton *Button1;
TTimer *Timer1;
TImage *Image1;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Timer1Timer(TObject *Sender);
void __fastcall FormActivate(TObject *Sender);
private: // User declarations
public:
// User declarations
__fastcall TForm3(TComponent* Owner);
};
//--------------------------------------------------------------------------extern PACKAGE TForm3 *Form3;
//--------------------------------------------------------------------------#endif
Arquivo Unit4.h, contém as definições da tela de log.
//--------------------------------------------------------------------------#ifndef Unit4H
#define Unit4H
//--------------------------------------------------------------------------#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//--------------------------------------------------------------------------class TForm4 : public TForm
{
__published:
// IDE-managed Components
TMemo *Memo1;
TButton *Button1;
void __fastcall Button1Click(TObject *Sender);
private: // User declarations
public:
// User declarations
__fastcall TForm4(TComponent* Owner);
};
//--------------------------------------------------------------------------extern PACKAGE TForm4 *Form4;
//---------------------------------------------------------------------------
#endif
Arquivo temperatura.cpp, arquivo que contém o programa propriamente dito.
//-------------------------------------------------------------------------------------------//
// Programa de Sensoriamento Térmico desenvolvido em conjunto com Hard //
//ware para o PIC-2000
//
//Alunos: Cleverson Sabatowski, Josmar Klemba, Mauricio Perretto
//
//Última Alteração: 11/11/2000 Versão: 0.9a
//
//-----------------------------------------------------------------------------------------//
//--------------------------------------------------------------------------#include <vcl.h>
#include <stdlib.h>
#pragma hdrstop
#include "temperatura.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit4.h"
//--------------------------------------------------------------------------#pragma package(smart_init)
#pragma link "CSPIN"
#pragma link "PERFGRAP"
#pragma resource "*.dfm"
43
short int inp(unsigned short port); //funcao para leitura de um endereco de memoria
/* valor = inp(porta);
|
|-> endereco de memoria, em hexadecimal ou caracter
|
ex.: 0x378 ou 'LPT1'
|-> variavel inteira */
void outp(unsigned short port, unsigned char value); //funcao que envia
//dados para um endereco
/* oup(porta, valor);
|
|-> valor a ser enviado
|-> endereco de memoria em hexadecimal, ex.: 0x378
*/
TForm1 *Form1;
//----------------------Variaveis Globais------------------------------TStrings *arquivo;
short int resposta=0, temperatura=23;
bool valor;
//---------------------------------------------------------------------//----------------------Funcoes Criadas--------------------------------short int inp(unsigned short port){
asm mov dx,port
asm in al,dx
asm xor ah,ah
return _EAX;
}
void outp(unsigned short port, unsigned char value){
asm mov dx,port
asm mov al, value
asm out dx, al
}
//---------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
//inicializacao da variavel q armazenar o log
arquivo = new TStringList();
//carregamento do arquivo de log antigo
if(FileExists("C:\\temp\\temp.log"))
arquivo->LoadFromFile("C:\\temp\\temp.log");
//definição de um tempo com o qual o aplicativo irá iniciar
Timer1->Interval = CSpinEdit1->Value*1000;
}
//---------------------------------------------------------------------void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
//variavel temporaria utilizada para a criacao do arquivo de log
AnsiString dados;
//defini que a porta paralela ira receber dados externos
outp(0x37A,32);
//le a porta paralela
resposta = inp(0x378);
temperatura = (100*resposta)/255; //converte para graus Celsius pela
// formula: 100 - 255
--> X = (100 * resposta)/255;
//
X - resposta
44
//criando os registros temporários que ao final serão repassados ao
//arquivo de log
dados = DateToStr(Date())+" "+TimeToStr(Time())+" "+temperatura;
arquivo->Add(dados);
Label1->Caption = IntToStr(temperatura)+"ºC";
ProgressBar1->Position = temperatura; //alteracao dos dados na barra
PerformanceGraph1->DataPoint(234,temperatura);//e no grafico
PerformanceGraph1->Update();
//acionamento do alerta se a temperatura excedeu os limites
if((temperatura<CSpinEdit3->Value) ||(temperatura>CSpinEdit2->Value)){
Form2->Show();
}
if(((temperatura>CSpinEdit3->Value)
&&
(temperatura<CSpinEdit2->Value))
>Visible==true))
{
//
Form2->MediaPlayer1->Stop();
Form2->Hide();
}
//seleção de transformação de unidades
switch(RadioGroup1->ItemIndex)
{
case 1:
temperatura = 9/5*temperatura+32;//conversao para Farenheit
Label1->Caption = IntToStr(temperatura)+"ºF";
break;
case 2:
temperatura = temperatura + 273;//conversao para Kelvin
Label1->Caption = IntToStr(temperatura)+"ºK";
break;
}
arquivo->SaveToFile("C:\\temp\\temp.log");
}
//---------------------------------------------------------------------void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
//timer para as horas
Label2->Caption = DateToStr(Date());
Label4->Caption = TimeToStr(Time());
}
//---------------------------------------------------------------------void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
//Botao que inicia o monitoramento, ativando o timer1
Timer1->Enabled = true;
BitBtn1->Enabled = false;
BitBtn2->Enabled = true;
Iniciar1->Enabled = false;
Parar1->Enabled = true;
}
//---------------------------------------------------------------------void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
//Botao que cancela o monitoramento, desativando o timer1
Timer1->Enabled = false;
BitBtn1->Enabled = true;
BitBtn2->Enabled = false;
Iniciar1->Enabled = true;
Parar1->Enabled = false;
}
45
&&
(Form2-
//---------------------------------------------------------------------void __fastcall TForm1::CSpinEdit1Change(TObject *Sender)
{
//Quando o valor da caixa intervalo de leitura for alterado,essa linha
//irá alterar o tempo de leitura do timer1
Timer1->Interval = CSpinEdit1->Value*1000;
}
//---------------------------------------------------------------------void __fastcall TForm1::BitBtn3Click(TObject *Sender)
{
//Botao para fechamento do programa
Form1->Close();
}
//---------------------------------------------------------------------void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
arquivo->SaveToFile("C:\\temp\\temp.log");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer3Timer(TObject *Sender)
{
valor = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Sobre1Click(TObject *Sender)
{
Form3->Show();
}
//--------------------------------------------------------------------------void __fastcall TForm1::Iniciar1Click(TObject *Sender)
{
Timer1->Enabled = true;
BitBtn1->Enabled = false;
BitBtn2->Enabled = true;
Iniciar1->Enabled = false;
Parar1->Enabled = true;
}
//--------------------------------------------------------------------------void __fastcall TForm1::Parar1Click(TObject *Sender)
{
Timer1->Enabled = false;
BitBtn1->Enabled = true;
BitBtn2->Enabled = false;
Iniciar1->Enabled = true;
Parar1->Enabled = false;
}
//--------------------------------------------------------------------------void __fastcall TForm1::VerArqdeLog1Click(TObject *Sender)
{
Form4->Show();
}
//--------------------------------------------------------------------------void __fastcall TForm1::Sair1Click(TObject *Sender){
Form1->Close();
}
46
8. Resultados
Inicialmente definiu-se que o circuito sensor a ser implementado deveria ter uma
faixa de atuação de 0ºC à 100ºC, a partir desta definição iniciou-se testes com os
dispositivos semicondutores descritos, para descobrir qual teria uma variação de tensão
mais linear em relação a temperatura, os resultados destes teste podem ser vistos nas
figuras 8.1 e 8.2, nas quais estão descritos as curvas de resposta do
Transistores
Tensão (mV)
100
80
60
40
20
88
80
70
60
50
40
30
20
10
0
0
Temperatura (ºC)
Figura 8.1 – Relação Temperatura X Tensão no transistor 2N2222
diodo 1N4148 e do transistor 2N2222, pode-se notar que eles tem uma variação
bastante linear na faixa entre 0ºC e 80ºC, mas a partir deste último eles tem uma curva
abrupta sendo a curva do diodo mais suave, a partir desta conclusão definimos o diodo
1N4148, seria utilizado como elemento sensor neste projeto.
47
Diodos
Tensão (mV)
100
80
60
40
20
88
80
70
60
50
40
30
20
10
0
0
Temperatura (ºC)
Figura 8.2 – Relação Temperatura X Tensão no diodo 1N4148
Na implementação do hardware ocorreram diversos contratempos, o principal
foi quanto a impedância do amplificador operacional, como ela não era grande o
suficiente, quando conectava-se o amplificador, o circuito sensor não funcionava
corretamente, após a resolução desse problema pode-se concluir o projeto devidamente.
A implementação da comunicação entre o hardware e o software também causou-nos
contratempos, pois não tínhamos informações precisas de como ativar a leitura de dados
através da porta paralela, com o auxílio de [KRI - 1998] efetuou-se a transmissão sem
problemas.
Foram executados testes com o circuito montado em uma protoboard, uma
tablatura com conexões para montagem e testes de circuitos em fase de
desenvolvimento ou pesquisa, o circuito foi testado com temperaturas que variavam da
temperatura ambiente, passando pela temperatura corpórea de um ser humano, até o
aquecimento através de isqueiros e ferros de solda, procedimento perigoso que resultou
na quebra de um diodo, após mantivemos o projeto funcionando por um longo período
de tempo para testar a durabilidade deste. Com os testes pode-se assegurar que a placa
48
cumpre o seu propósito de verificar e controlar a temperatura, pois fizemos testes com
várias
temperaturas
e
medindo
as
mesmas
com
dispositivos
termosensores,
termômetros, pode-se constatar que a placa apresenta pouquíssima diferença em relação
a este último, dentro de uma faixa de erro prevista já que a curva de resposta tensão X
temperatura não era totalmente linear.
49
9 – Conclusão
Como observado acima, existem diversos dispositivos que poderiam ser usados
como sensores foi necessária uma avaliação mais técnica de cada um para que cheguese em um consenso de qual foi o melhor para utilização no projeto. Para o
interfaceamento é melhor utilizar a porta paralela pois tem uma boa taxa de transmissão
e não é muito utilizada pelos periféricos externos do computador.
Com a utilização da porta paralela se faz necessário um conversor que transmita
os dados de 8 bits por vez (formato da porta paralela) e, desta forma, tornou-se
necessário uma pesquisa mais detalhada a respeito do conversor.
O software foi desenvolvido simultaneamente à parte eletrônica, e por fim, foi
elaborada toda a documentação do projeto, com todas as fases e resultados obtidos.
Através desde projeto tivemos a oportunidade de nos adentrarmos na eletrônica
analógica, necessária para o desenvolvimento do circuito sensor, e através disso
compreender como funcionam dispositivos que fazem a transmissão de dados
analógicos para digital assim como de amplificadores operacionais, áreas nas quais não
tínhamos nenhuma visão clara ao iniciarmos o desenvolvimento deste projeto. Assim
como tivemos que aprender como comunicarmos com o hardware interno do
computador, pois até então apenas tínhamos feito programas que recebiam dados do
usuário, assim sendo o hardware se encarregava dos problemas que tivemos que
solucionar.
50
Alguns projetos podem vir a utilizar-se deste como princípio como o aumento da
faixa de atuação do sensor, conexão de vários sensores, alteração do modo de
transmissão dos dados, conversão do programa para outro sistema operacional,
microprocessamento da placa o que permitiria a utilização do sensor sem a utilização de
um computador, outra aplicação que poderia ser implementada facilmente a partir deste
projeto é o aumento da faixa de atuação, isto é facilmente implementável através do
processo de calibração quando definesse a temperatura mínima e máxima ao qual o
sensor irá responder, ao invés de calibrar 0 mV a 0ºC definisse a temperatura mínima
em 0 mV o mesmo ocorrendo com a temperatura máxima, este método tem o
inconveniente de aumentar a faixa de erro, outro projeto implementável a partir deste é
o desligamento automático de aparelhos eletrônicos, adicionando-se apenas uma linha
de código no programa ele poderia acionar um relé que desligaria automaticamente uma
máquina, este acionamento poderia ser feito a partir da porta paralela; o custo total dos
componentes constituintes da placa é de aproximadamente R$ 12,00, não é possível
determinar o custo da placa em si pois depende de fatores como a quantidade de placas
fabricadas e da empresa contratada para esse serviço.
Através deste projeto pode-se ter um envolvimento do desenvolvimento de um
projeto de pesquisa, as diversas seqüências de pesquisas que se deve tomar, as fases de
testes, o cumprimento de metas e objetivos segundo um cronograma pré-definido que
deve ser respeitado, a interdisciplinaridade que um curso de engenharia deve ter, pois
dentro deste projeto envolveu-se conceitos de física, química, programação de
computadores, hardware de computadores e eletrônica analógica, todas matérias vistas
em cursos de engenharia de forma isolada. Também desenvolveu-se o conceito de
trabalho em equipe, delegação de funções aos membros da equipe e estudo conjunto,
pois apesar de cada membro executar partes separadas elas deveriam ser interligadas
51
entre si, assim sendo todos os membros da equipe deveriam `ter o conhecimento
necessário sobre as outras áreas que estavam sendo implementadas. Este projeto foi de
grande valia também porque ensinou a aprender com os próprios erros e nunca desistir,
não importando o quão difícil e árdua a tarefa possa parecer.
Já existem diversos projetos de sensoriamento térmico já desenvolvidos, assim
como circuitos integrados que fazem a medição da temperatura, o que demonstra a
preocupação com sistemas desta natureza.
52
Referências Bibliográficas
[DAS – 2000] – Da Silveira, J. L.; Comunicação de Dados e Sistemas de
Teleprocessamento; São Paulo; Makron Books – McGraw-Hill
Ltda; 1991.
[ENC – 1987] – Larousse, Librarie; Enciclopédia Larousse Cultural; Editora Universo
Ltda, 1987, São Paulo, Brasil
[KHA – 1984] – Khambata, Adi J.; Microprocessadores, Microcomputadores: Volume
1; Editora Campus; 1984; Rio de Janeiro; Brasil.
[KOK – 1999] – Kokkori, Th.; Registrador de Temperatura; Revista Elektor; Edição
Maio/1999; Editora Elektor; Seção PC Tópicos; págs. XIV à XV.
[KRI – 2000] – Heidenstrom, Kris; [email protected]; Nova Zelândia
[LEM – 2000] – Lemmens, L.; Temperature Recorder DS 1615; Revista Elektor;
Edição Fevereiro/2000; Editora Elektor; págs. 33 à 37.
[MAL – 1985] – Malvino, A.P.; Microcomputadores e Microprocessadores; Editora
McGraw-Hill; 1985; Rio de Janeiro; Brasil.
[MAN – 1970] – Mann, George B.; ABC dos Transistores; Antenna Empresa
Jornalística S/A; 3ª Edição; 1970; Rio de Janeiro; Brasil.
[ROD – 1998] – Rodrigues, A. B.; http://ciel2.eletr.ufpr.br/edu/ie99/trab2/augusto/;
Termopar Tipo T; 1998.
53
[REI – 2000] – Reimbold, Manuel M. P. et alli; Módulo Didático para Acesso ao
Desempenho Unidirecional da SPP dos PC´s Utilizando C++;
Revista de Ensino de Engenharia; Volume 19; Número 1; págs.
27-35; 2000.
[SCH – 1996] – Schildt, Herbert; C Completo e Total; 3ª Edição; Editora Makron
Books; 1996; Rio de Janeiro; Brasil.
54
Anexos
I. - Software - Manual do Usuário
Descrição
O software é o elemento responsável pelo processamento, tratamento das
informações vindas do monitoramento da temperatura, bem como a apresentação visual.
Ele possui apresentação gráfica no padrão 32 bits, pois foi desenvolvido em
linguagem visual, para Windows 95 ou superior. No caso, foi utilizado o Borland C++
Builder.
Ele contém elementos básicos, como conversão da temperatura para as três
escalas: Celsius, Fahrenheit e Kelvin; caixas de seleção da freqüência de leitura da
temperatura; o gráfico com o histórico da temperatura; um termômetro; a manipulação
de arquivos (com o registro das temperaturas lidas).
Requisitos de Hardware e Software
•
IBM/PC Compatível;
•
32 Mbytes de memória RAM;
55
•
Windows 9X/Me
•
Porta Paralela Bidirecional, padrão PS/2;
•
Monitor SVGA;
•
Placa de Som.
Instalação
O software pode ser instalado, e ser executado a partir de qualquer diretório,
deixando a critério do usuário.
A instalação é em ambiente gráfico. Para iniciá-la, deve-se abrir o arquivo
“instalar.exe”, feito isto basta selecionar o diretório para a instalação.
Funcionamento Básico
O layout principal da tela do software, como mostrado na figura I.1, possui a
56
Figura I.1 – Interface do software
caixa temperatura atual, que mostra a temperatura lida pelo sensor; possuí uma caixa de
seleção da escala para a temperatura, que, pode ser Celsius, Fahrenheit ou Kelvin, e
então aplica o valor recebido do sensor a fórmulas de conversão de escala; existem
caixas temporais, onde é mostrada a data e a hora do sistema; também existem caixas de
seleção para definição de limites de temperaturas, ou seja, o usuário define os pontos
críticos, máximo e mínimo, que ele considera que o equipamento ou ambiente
monitorado, não pode alcançar.
O usuário é quem define o intervalo (freqüência) de leitura dos dados
(temperatura) via porta paralela.
Após configuração acima, feita pelo usuário, basta clicar no botão Iniciar, para
que o programa comece o monitoramento. Clicando no botão Parar, o monitoramento é
suspenso. Existe ainda um terceiro botão, Sair, que encerra a execução do programa.
A apresentação gráfica da temperatura é feita por um termômetro, e por um
gráfico Temperatura X Tempo.
O programa possui um recurso de armazenamento em arquivo do histórico da
temperatura, que conterá a temperatura lida, o horário e a data. Este arquivo, chamado
de arquivo de log, poderá ser aberto para consulta, no próprio Software do Sistema de
Sensoriamento Térmico, ou em qualquer editor de texto. O arquivo, é sempre salvo com
o nome “temp.log”, no diretório selecionado pelo usuário para a instalação.
No menu Arquivo, pode-se abrir o arquivo com o histórico da temperatura, e no
menu Sobre, pode-se obter informações diversas.
O funcionamento e a operação é simples: ao clicar no botão Iniciar, o programa
inicia uma seqüência repetitiva de leitura da porta de comunicação, o valor indicado na
57
caixa Tempo de Leitura é a freqüência com que o programa lerá a porta de
comunicação. Após ter lido o valor, ele será convertido através de uma fórmula, que
relaciona o valor binário com o correspondente em temperatura, e este valor será a
temperatura, armazenado em um arquivo, que conterá o horário, momento (da leitura),
que será obtido do computador e a data. Conforme a seleção da Escala, apresentar-se-á a
temperatura na tela por meio de gráfico e pela caixa Temperatura Atual. Caso a
temperatura lida exceda o valor mínimo ou máximo permitido, será emitido um aviso
sonoro bem como visual: “A temperatura excedeu o limite máximo”, conforme mostra a
figura I.2. Clicando-se no botão Parar, o programa suspende o processamento (leitura)
até que o usuário reinicie.
Figura I.2 – Aviso indicando que a temperatura excedeu
o limite máximo.
58
Glossário
•
Camada de Carga Espacial – Espaço da junção PN de um diodo, responsável pela
determinação se o diodo irá conduzir corrente ou se portar-se-á como um isolante.
•
Circuito biestável – Circuito que possui dois estados de equilíbrio e que é capaz de
passar de um ao outro, sob a ação de excitações.
•
Efeito Joule – Efeito observado em objetos que se mostra pelo aquecimento do
objeto pelo atrito.
•
Eletromotriz – Algo que produz eletricidade a partir da ação de uma força
mecânica.
•
Elétron – Partícula fundamental do átomo portadora de carga elétrica negativa.
Encontra-se em volta do núcleo e é a única partícula fundamental que pode se mover
para fora do átomo.
•
IEEE 1394 – Novo barramento externo de dados projetado pela Apple® e aceito
recentemente pelo IEEE (Instituto dos Engenheiros Elétricos e Eletrônicos), tem boa
taxa de transferência de dados, mas não é utilizado no mercado.
•
Lacuna – Dá-se o nome de lacuna a falta de elétron em um átomo.
•
Núcleo – Porção central do átomo onde estão o próton e o nêutron e onde os
elétrons circulam em volta.
•
Período de clock – Período de uma instrução de um computador.
•
Resistor – Dispositivo eletrônico caracterizado pela sua resistência elétrica.
•
Resistência Elétrica – Propriedade física de um objeto que varia segundo sua
constituição.
•
USB (Universal Serial Bus) – Tipo de barramento que vem ganhando espaço no
mercado porque é mais fácil a manutenção de periféricos externos para o usuário.
•
Voltímetro Digital – Aparelho eletrônico responsável pela medição de tensão em
um circuito.
59
Download

Sistema de Sensoriamento Térmico