bruna tiemi kobo - uel · 2011. 11. 29. · 2.4 microcontrolador hcs08 ... uma introdução sobre o...
TRANSCRIPT
BRUNA TIEMI KOBO
CÉLULA PELTIER COMO ATUADOR EM UM CONTROLE DIGITAL DE TEMPERATURA: UM ESTUDO DE CASO
LONDRINA 2011
BRUNA TIEMI KOBO
CÉLULA PELTIER COMO ATUADOR EM UM CONTROLE DIGITAL DE TEMPERATURA: UM ESTUDO DE CASO
Trabalho de Conclusão de Curso apresentado ao Departamento de Engenharia Elétrica da Universidade Estadual de Londrina. Orientadora: Prof. Maria Bernadete de Morais França
LONDRINA 2011
BRUNA TIEMI KOBO
CÉLULA PELTIER COMO ATUADOR EM UM CONTROLE DIGITAL DE TEMPERATURA: UM ESTUDO DE CASO
Trabalho de Conclusão de Curso apresentado ao Departamento de Engenharia Elétrica da Universidade Estadual de Londrina.
COMISSÃO EXAMINADORA
____________________________________
Prof. Msc. Maria Bernadete de Morais França (Orientadora)
Universidade Estadual de Londrina
____________________________________ Prof. Dr. José Alexandre de França Universidade Estadual de Londrina
____________________________________ Prof. Fábio Augusto Gentillin
Centro Universitário de Maringá
Londrina, outubro de 2011.
AGRADECIMENTOS
Agradeço a minha família, especialmente aos meus pais, por todo o apoio e pela
confiança em todos os momentos.
Aos alunos e ex-alunos que fizeram parte do Laboratório de Automação e
Instrumentação Inteligente da UEL, pelo apoio e experiências compartilhadas durante os
anos de trabalho de iniciação científica.
Agradeço ao mestrando em Engenharia Elétrica da UEL, Fabio Augusto Gentilin
por permitir a integração do desenvolvimento do sistema apresentado com o sistema
desenvolvido em seu mestrado.
Aos professores, e a todos que direta ou indiretamente, contribuíram para a
realização deste trabalho.
Deixem que o futuro diga a verdade e avalie cada um de acordo com o seu trabalho e realizações. O presente pertence a eles, mas o futuro pelo qual eu sempre trabalhei pertence a mim.
(Nikola Tesla)
KOBO, Bruna T.. Implementação de um Controle Ddigital de Temperatura Utilizando Célula Peltier. 2011. 58 f. Trabalho de Conclusão de Curso (Graduação em Engenharia Elétrica) – Universidade Estadual de Londrina, Londrina, 2011.
RESUMO
A influência da temperatura é importante nas mais diversas áreas, inclusive na área de intrumentação eletrônica. Na qual pode afetar o comportamento dos componentes eletrônicos, principalmente semicondutores, e até mesmo levá-los ao desgaste. Assim, o sistema proposto pretende controlar digitalmente a temperatura de um dispositivo eletrônico de pequeno porte. Para isso, utiliza uma célula Peltier, a fim de manter a temperatura em torno de uma valor pré-determinado, em que as características do dispositivo sejam conhecidas. Mantendo a confiabilidade dos dados obtidos através da utilização desse dispositivo, sua precisão e seu grau de repetibilidade; além de reduzir os riscos da ocorrencia de danos aos componentes, devido a temperatura. Esse sistema foi aplicado sobre um fotodiodo, PT511, de um sistema de medição de umidade, baseado em espectrometria NIR. Com o sistema aplicado, foram realizados testes para verificar o funcionamento do sistema. Nos quais foi possível obter resultados satisfatórios, mantendo o fotosensor em torno de uma faixa de temperatura ideal para a obtenção de leituras no sistema de medição. Palavras-chave: LM92, temperatura microcontrolada, comunicação I2C
KOBO, Bruna T.. Implementação de um Controle Ddigital de Temperatura Utilizando Célula Peltier. 2011. 58 f. Trabalho de Conclusão de Curso (Graduação em Engenharia Elétrica) – Universidade Estadual de Londrina, Londrina, 2011.
ABSTRACT
The influence of temperature is important in several areas, including the area of electronic instrumentation. In which can affect the behavior of electronic components, especially semiconductors, and even take them to wear. Thus, the proposed system intends to digitally control the temperature of a small electronic device. It uses a Peltier cell in order to keep the temperature around a predetermined value, where the device characteristics are known. Maintaining the reliability of data obtained using this device, its precision and its level of repeatability, as well as reducing the risk of occurrence of component damage due to temperature. This system was applied to a photodiode, PT511, of a moisture measurement system, based on NIR spectrometry. With the system applied, tests were performed to verify the operation of the system. Where it was possible to obtain satisfactory results, keeping the photosensor around an ideal temperature range to obtain readings in the measurement system. Key words: LM92, microcontrolled temperature, I2C communication.
LISTA DE FIGURAS
Figura 1 – Estrutura de uma célula Peltier. .......................................................................... 14
Figura 2 – Controles Proporcional, PI e PD. ........................................................................ 16
Figura 3 – Sinais básicos do protocolo I2C. ......................................................................... 17
Figura 4 – Mapa de memória do HCS08. ............................................................................. 18
Figura 5 – Resposta espectral típica de um PT511. ............................................................. 19
Figura 6 – Comportamento da corrente de escuro no PT511. .............................................. 20
Figura 7 – Estrutura típica do LM92. .................................................................................... 21
Figura 8 – Protocolo para leitura de dois bytes do LM92. .................................................... 23
Figura 9 – Sistema de medição de umidade com controle de temperatura. ......................... 24
Figura 10 – Diagrama de funcionamento do controle de temperatura. ................................. 25
Figura 11 – Resposta da célula Peltier à variação do Ciclo de trabalho. .............................. 28
Figura 12 – (a) Circuito simplificado da ponte H, (b) M1 e M4 conduzindo. .......................... 29
Figura 13 – Circuito da ponte H. .......................................................................................... 30
Figura 14 – Acionamento da ponte H. .................................................................................. 30
Figura 15 – Diagrama de blocos da Placa de Desenvolvimento LA2I_HCS08. .................... 31
Figura 16 – Placa LA2I_HCS08. .......................................................................................... 32
Figura 17 – Byte de controle com solicitação de leitura. ...................................................... 34
Figura 18 – Recebimento do primeiro byte. ......................................................................... 35
Figura 19 – Diagrama de blocos do controle de temperatura proporcional. ......................... 38
Figura 20 – Fluxograma da função main para o teste do controle de temperatura. .............. 40
Figura 21 – Placa com fotodiodo e LM92; célula peltier e cooler - Visão de baixo. .............. 41
Figura 22 – Placa com fotodiodo e LM92; célula peltier e cooler - Visão de lateral. ............. 41
Figura 23 - Foto da placa da ponte H. .................................................................................. 42
Figura 24 – Foto da visão superior do sistema de medição de umidade. ............................. 42
Figura 25 – Comportamento da temperatura sobre o controle do sistema. .......................... 43
Figura 26 – Temperatura controlada após 15 minutos. ........................................................ 44
LISTA DE TABELAS
Tabela 1 – Correspondência dos dados de temperatura do LM92. ...................................... 21
Tabela 2 – Registrador de temperatura do LM92. ................................................................ 22
Tabela 3 – Seleção de registrador P2-P0. ........................................................................... 22
Tabela 4 – Resposta da célula Peltier com cooler, para alimentação DC. ........................... 27
Tabela 5 – Portas do microcontrolador utilizadas no sistema. .............................................. 33
LISTA DE ABREVIATURAS E SIGLAS
ADC - Analog-to-Digital Converter
ASCII - American Standard Code for Information Interchange 2
CI - Circuito Integrado
D – Derivative Control
EEPROM - Electrically-Erasable Programmable Read-Only Memory
I - Integral Control
ICS - Internal Clock Source
I2C - Inter-Integrated Circuit
NIR - Near-infrared
P - Proportional Control
PI - Proportional-Integral Control
PD – Proportional-Derivative Control
PID – Proportional-Integral-Derivative Control
RAM - Read-Only Memory
RTC - Real-Time Counter
SCI - Serial Communications Interface
SSOP - Shrink Small-Outline Package
TCP - Transmission Control Protocol
TPM - Timer Pulse-Width Modulator
TSSOP - Thin-Shrink Small Outline Package
UART - Universal Asynchronous Receiver/Transmitter
USB - Universal Serial Bus
SUMÁRIO
1 INTRODUÇÃO .............................................................................................................. 12
2 REVISÃO BIBLIOGRÁFICA ......................................................................................... 13
2.1 EFEITO PELTIER E CÉLULA PELTIER ............................................................................. 13
2.2 CONTROLES PROPORCIONAL, PD, PI E PID .................................................................. 14
2.3 COMUNICAÇÃO SERIAL I2C .......................................................................................... 17
2.4 MICROCONTROLADOR HCS08 ..................................................................................... 18
2.5 FOTODIODO PT511 ..................................................................................................... 19
2.6 SENSOR DE TEMPERATURA LM92 ................................................................................ 20
3 SISTEMA PROPOSTO ................................................................................................. 24
3.1 CÉLULA PELTIER ......................................................................................................... 26
3.2 PONTE H .................................................................................................................... 28
3.3 PLACA DE DESENVOLVIMENTO LA2I_HCS08 ................................................................ 30
3.4 CONFIGURAÇÕES INICIAIS DO MICROCONTROLADOR ..................................................... 32
3.5 LEITURA DA TEMPERATURA. ......................................................................................... 33
3.5.1 Envio de byte de controle. ...................................................................................... 34
3.5.2 Leitura do dado do registrador de temperatura ....................................................... 35
3.6 CONTROLE DA TEMPERATURA ...................................................................................... 36
3.7 MONITORAMENTO E TESTES. ....................................................................................... 40
4 RESULTADOS E DISCUSSÃO .................................................................................... 41
4.1 DADOS OBTIDOS ......................................................................................................... 43
5 CONCLUSÃO ............................................................................................................... 46
REFERÊNCIAS ............................................................................................................... 47
ANEXO A – PROGRAMA DE TESTE DO CONTROLE DE TEMPERATURA. ............... 49
12
1 INTRODUÇÃO
Em praticamente todos os processos relacionados com a produção industrial,
com a saúde humana, animal ou vegetal. Enfim com as mais diversas áreas, a influência da
temperatura é muito importante. De modo que o controle de temperatura pode ser utilizado
para diversos fins; aplicado a produtos, processos, estruturas, ferramentas ou equipamentos
diversos.
Dentro do contexto da instrumentação eletrônica, comprova-se que “a eficiência
e o funcionamento da maioria dos dispositivos eletroeletrônicos são significativamente
afetados pelas condições de temperatura a que são submetidos” (PARENTEAU e
CARLONE,1990). Além disso, esses dispositivos podem apresentar características
diferentes, dependendo da faixa de temperatura em que trabalham; por exemplo, a perda da
linearidade.
O exemplo mais comum da influência da temperatura se dá em dispositivos
fabricados a partir de materiais semicondutores extrínsecos que, quando submetidos a
temperaturas mais altas, das quais foram projetados para trabalhar, apresentam um
aumento significativo na sua corrente de fuga que, por conseguinte, pode provocar danos ao
componente (BOYLESTAD e NASHELSKY L, 2004). Assim, o sistema proposto neste
trabalho pretende controlar digitalmente a temperatura de um dispositivo eletrônico de
pequeno porte, utilizando uma célula Peltier. A fim de manter os componentes principais do
dispositivo em torno de uma temperatura pré-determinada, em que as características do
dispositivo sejam conhecidas. Mantendo, assim, a confiabilidade dos dados obtidos através
da utilização desse dispositivo, sua precisão e seu grau de repetibilidade; além de reduzir os
riscos da ocorrência de danos aos componentes, devido à temperatura.
Este trabalho está organizado em cinco capítulos. No capítulo 1, é apresentada
uma introdução sobre o problema e justificativas do projeto. Já no capítulo 2, são
apresentadas algumas revisões bibliográficas úteis para o entendimento do trabalho. No
capítulo 3, são descritos os materiais utilizados e o desenvolvimento do sistema. Por fim, no
capítulo 4, discutem-se os resultados obtidos e no capítulo 5 apresentam-se as conclusões
sobre o sistema.
13
2 REVISÃO BIBLIOGRÁFICA
Uma vez que o sistema utiliza uma célula Peltier como atuador em um controle
de temperatura, nesse capítulo serão apresentados tópicos relativos a células Peltier e tipos
de controles. Além disso, como a temperatura é controlada digitalmente, serão
apresentadas as características do microcontrolador utilizado (HCS08), e uma breve
explicação sobre I2C e sobre o sensor de temperatura utilizado (LM92). Por fim, então,
serão apresentadas algumas características do componente eletrônico a que o sistema foi
aplicado, o PT511.
2.1 Efeito Peltier e Célula Peltier
O efeito Peltier é a produção de um gradiente de temperatura em duas junções
de dois condutores (ou semicondutores) de materiais diferentes, quando submetidos a uma
tensão elétrica em um circuito fechado (consequentemente, percorrido por uma corrente
elétrica) (WIKIPÉDIA, 2011). Baseando-se neste efeito, a célula Peltier é um dispositivo
termoelétrico que possui duas faces principais, onde uma das faces resfria e a outra aquece
de acordo com o sentido da corrente que passa entre seus terminais. O fluxo de calor é
absorvido ou gerado de maneira reversível e depende do sentido da corrente (PINDADO,
2008).
Sempre que uma corrente passa pela célula Peltier, uma face se aquece
enquanto a outra resfria, de forma que essas faces são referidas comumente como “face
quente” e “face fria”. Determinando o sentido da corrente e sua intensidade, pode-se utilizar
uma face para aquecer ou resfriar, e em qual intensidade isso ocorrerá, sendo uma opção
para controles de temperatura. A Figura 1 mostra como é composta uma célula Peltier e
seu comportamento térmico.
Os problemas principais dos controles de temperatura baseados em células
Peltier são: o desenvolvimento de circuitos de acionamento que possibilitem a passagem de
correntes altas; o controle e reversão do sentido dessas correntes; e o isolamento térmico
entre as faces da célula.
14
Figura 1 – Estrutura de uma célula Peltier.
Fonte: MECATRÔNICA HOJE, Módulo...(2009).
O isolamento entre as faces é importante, pois, quando a “face quente” começa
a aquecer demais, o isolamento térmico entre as faces é prejudicado. Dessa forma, a “face
fria” passa a ser aquecida pela “face quente”, levando há um aumento significativo da
temperatura da célula. O que prejudica, principalmente, a utilização da célula em sistemas
de resfriamento.
2.2 Controles Proporcional, PD, PI e PID
O controle proporcional fornece uma relação linear fixa entre o valor da variável
controlada e o valor que o atuador de controle pode fornecer. Assim, a ação de controle
proporcional depende das características apresentadas na equação (1) (CAMPOS, 2006):
0SDVkpMV +⋅= (1)
Sendo:
MV = Ação do controle proporcional; kp = Constante de proporcionalidade;
DV = Desvio;
0S = Valor da saída do controlador enquanto o desvio ( DV ) for igual a zero.
15
A constante de proporcionalidade ( kp) e o valor de 0S dependem das
características relacionadas à função de transferência do sistema de troca de calor. Já o
desvio ( DV ) depende da diferença entre o valor do setpoint ( SP ) e o valor da temperatura
mensurada ( PV ), de acordo com a equação (2) (CAMPOS, 2006):
PVSPDV −= (2)
Sendo:
DV = Desvio;
SP = Valor de setpoint;
PV = Valor da temperatura mensurada.
Quando se tem um sistema onde se utiliza um controlador proporcional, nas
alterações da carga, o reajuste do offset deve ser feito de forma automática. Integrando-se o
valor do erro no tempo, obtém-se esse reajuste. Na prática, o controle integral é utilizado em
conjunto com o controle proporcional formando o controle proporcional-integral, o PI.
Já o ajuste derivativo aplica ao sistema uma correção, a qual é proporcional à
velocidade com que o desvio aumenta. A ação derivativa associada com a ação
proporcional (PD) resulta em uma correção antecipada a um desvio que ainda não
aconteceu, podemos chamar também de supercorreção (MECATRÔNICA HOJE, 2009).
Por fim o controle proporcional-integral-derivativo (PID) é uma combinação dos
controles apresentados anteriormente, permitindo o ajuste de offset, a correção de desvios e
a resposta proporcional. Porém, geralmente, sua implementação exige uma grande análise,
podendo ser bastante complexa.
A Figura 2 apresenta gráficos com a variável controlada, e as ações de um
controle proporcional, de um controle PI e de um controle PD, respectivamente.
Nessa figura é possível observar os comportamentos das ações de controle
proporcional, PI e PD. Onde na ação PI é possível observar o ajuste automático do offset, e
na ação PD é possível observar uma ação de resposta mais rápida.
Figura Fonte:
Cada tipo de controlador é aplicável a processos que têm certas combinações de
características básicas. Ao se escolher um tipo de controlador, deve
atenda as necessidades de uma forma mais simples,
complexo ou caro, onde um controle mais simples poderia ser utilizado
Neste trabalho, o controle proporcional foi inicialmente selecionado para teste,
por ser o mais simples. Sendo que este c
auxilio de um microcontrolador.
O controle digital de um processo envolve um processo de amostragem. “O sinal
de saída (ou de erro) é amostrado periodicamente com um período T. O sinal amostrado
(analógico) passa então por um conversor analógico/digital (A/D) onde é quantizado e
transformado em um sinal numérico (palavra de bits). Este sinal digital é lido por um
microprocessador (ou microcontrolador) que vai então realizar operações numéricas com
este sinal e gerar uma outra palavra de bits correspondente à ação de controle que deverá
ser aplicada sobre a planta no próximo instante de amostragem. Este sinal numérico é então
convertido novamente em um sinal analógico por um conversor digital
disponibilizará, no próximo clock de amostragem, um sinal constante de tensão. Desta
forma, entre dois instantes de amostragem, o sinal efetivamente aplicado pela planta é um
sinal contínuo de amplitude fixa.”(Silva, 2000)
Figura 2 – Controles Proporcional, PI e PD. Fonte: Autor.
Cada tipo de controlador é aplicável a processos que têm certas combinações de
características básicas. Ao se escolher um tipo de controlador, deve
s de uma forma mais simples, evitando utilizar um controle mais
onde um controle mais simples poderia ser utilizado
, o controle proporcional foi inicialmente selecionado para teste,
Sendo que este controle foi implementado
auxilio de um microcontrolador.
O controle digital de um processo envolve um processo de amostragem. “O sinal
de saída (ou de erro) é amostrado periodicamente com um período T. O sinal amostrado
a então por um conversor analógico/digital (A/D) onde é quantizado e
transformado em um sinal numérico (palavra de bits). Este sinal digital é lido por um
microprocessador (ou microcontrolador) que vai então realizar operações numéricas com
rar uma outra palavra de bits correspondente à ação de controle que deverá
ser aplicada sobre a planta no próximo instante de amostragem. Este sinal numérico é então
convertido novamente em um sinal analógico por um conversor digital
sponibilizará, no próximo clock de amostragem, um sinal constante de tensão. Desta
forma, entre dois instantes de amostragem, o sinal efetivamente aplicado pela planta é um
de amplitude fixa.”(Silva, 2000)
16
Cada tipo de controlador é aplicável a processos que têm certas combinações de
características básicas. Ao se escolher um tipo de controlador, deve-se escolher um que
evitando utilizar um controle mais
onde um controle mais simples poderia ser utilizado.
, o controle proporcional foi inicialmente selecionado para teste,
implementado digitalmente, com o
O controle digital de um processo envolve um processo de amostragem. “O sinal
de saída (ou de erro) é amostrado periodicamente com um período T. O sinal amostrado
a então por um conversor analógico/digital (A/D) onde é quantizado e
transformado em um sinal numérico (palavra de bits). Este sinal digital é lido por um
microprocessador (ou microcontrolador) que vai então realizar operações numéricas com
rar uma outra palavra de bits correspondente à ação de controle que deverá
ser aplicada sobre a planta no próximo instante de amostragem. Este sinal numérico é então
convertido novamente em um sinal analógico por um conversor digital-analógico (D/A) que
sponibilizará, no próximo clock de amostragem, um sinal constante de tensão. Desta
forma, entre dois instantes de amostragem, o sinal efetivamente aplicado pela planta é um
17
2.3 Comunicação Serial I2C
A comunicação serial I2C é uma comunicação serial bidirecional simples e foi
desenvolvida pela Royal Philips Electronics (Koninklijke Philips Electronics NV), para a
comunicação entre um dispositivo mestre e seus periféricos (normalmente chamados de
escravos). Essa comunicação é feita através do barramento I2C, composto por duas vias:
SDA (serial data) e SCL (serial clock).
As informações transmitidas pelo barramento serial são digitais. Seguindo um
protocolo de comunicação bem definido, transmite os dados com vários bits de modo
seqüencial pelo sinal do SDA, sincronizado com o sinal de clock (SCL).
A Figura 3, apresenta um exemplo com os sinais básicos de uma comunicação
com o protocolo I2C. Nessa figura, podem-se observar as combinações características dos
sinais de SCL e SDA, que determinam o inicio de uma mensagem (START) e o final da
mensagem (STOP). Além disso, cada bit é determinado em um cyclo de clock do SCL, de
acordo com o estado do sinal SDA, e cada byte é seguido de um bit de acknolegede,
confirmando o recebimento do byte.
Figura 3 – Sinais básicos do protocolo I2C.
Fonte: SILVA (2011).
É importante esclarecer os conceitos da comunicação I2C, uma vez que o
trabalho apresentado a seguir, foi desenvolvido utilizando um sensor de temperatura com
comunicação por protocolo I2C.
2.4 Microcontrolador HCS08
Existem diversos modelos de microcontroladores HCS08, com varias
combinações de portas e pinos. Sendo que, neste trabalho, foi
desenvolvimento com o modelo MC9S08SH8 do microcontrolador HCS08, com 20 pinos.
Os microcontroladores HCS08
Neumann (programa armazenado em memória junto com os dados), com um conjunto de
instruções CISC (instruções complexas e especializadas
Além disso, a família HCS trabalha com endereços de 16 bits, o que permite endereçar
diretamente até 64 kB (ver
No mapa de memória, apresentado na
memória, os 16 kB de memória Flash (divididos em duas áreas de 8kB, o que permite alterar
Microcontrolador HCS08
Existem diversos modelos de microcontroladores HCS08, com varias
combinações de portas e pinos. Sendo que, neste trabalho, foi utilizada uma placa de
desenvolvimento com o modelo MC9S08SH8 do microcontrolador HCS08, com 20 pinos.
s microcontroladores HCS08 da Freescale® baseiam-se
grama armazenado em memória junto com os dados), com um conjunto de
instruções CISC (instruções complexas e especializadas) e possuem
Além disso, a família HCS trabalha com endereços de 16 bits, o que permite endereçar
ver Figura 4).
Figura 4 – Mapa de memória do HCS08.
Fonte: QUADROS (2009).
No mapa de memória, apresentado na Figura 4, pode-se
memória, os 16 kB de memória Flash (divididos em duas áreas de 8kB, o que permite alterar
18
Existem diversos modelos de microcontroladores HCS08, com varias
utilizada uma placa de
desenvolvimento com o modelo MC9S08SH8 do microcontrolador HCS08, com 20 pinos.
se na arquitetura Von
grama armazenado em memória junto com os dados), com um conjunto de
poucos registradores.
Além disso, a família HCS trabalha com endereços de 16 bits, o que permite endereçar
se observar no topo da
memória, os 16 kB de memória Flash (divididos em duas áreas de 8kB, o que permite alterar
uma área enquanto o código executa na outra) e os pouco menos de 2kB de memória RAM
na parte inferior. Os registradores para controle dos periféri
microcontrolador estão divididos em três partes. A primeira fica na parte baixa da memória,
que pode ser acessada de forma muito eficiente por endereçamento direto (endereço de 8
bits junto com a instrução). Como o espaço é insuficiente p
segunda parte fica em uma região mais alta (os
registradores usados pelo controlador de LCD (Quadros, 2009).
2.5 Fotodiodo PT511
O fotodiodo PT511 é um receptor de InGaAs
Gálio e Arsênio), geralmente utilizado
300 mm e uma resposta melhor dentro da faixa de 1000
na Figura 5.
Figura Fonte:
O fotodiodo apresenta uma corrente de escuro, que é uma pequena quantidade
de corrente que flui através de
sendo excitado por luz, também conhecida como
gera uma resposta independente da luminosidade
ler; sendo ideal que essa corrente
uma área enquanto o código executa na outra) e os pouco menos de 2kB de memória RAM
na parte inferior. Os registradores para controle dos periféri
microcontrolador estão divididos em três partes. A primeira fica na parte baixa da memória,
que pode ser acessada de forma muito eficiente por endereçamento direto (endereço de 8
bits junto com a instrução). Como o espaço é insuficiente para todos os registradores, uma
segunda parte fica em uma região mais alta (os high page registers). Por último, temos os
registradores usados pelo controlador de LCD (Quadros, 2009).
otodiodo PT511
O fotodiodo PT511 é um receptor de InGaAs (semicondutor composto de Índio,
geralmente utilizado para a medição óptica. Tendo
uma resposta melhor dentro da faixa de 1000 nm a 1600 nm,
Figura 5 – Resposta espectral típica de um PT511. Fonte: ROITHNER LASERTECHNIK (2011).
O fotodiodo apresenta uma corrente de escuro, que é uma pequena quantidade
que flui através de um dispositivo semicondutor fotossensível quando não
, também conhecida como corrente de fuga. Assim, essa corrente
independente da luminosidade, que é adicionada ao sinal que se deseja
essa corrente seja conhecida ou que possa ser desprezada.
19
uma área enquanto o código executa na outra) e os pouco menos de 2kB de memória RAM
na parte inferior. Os registradores para controle dos periféricos integrados no
microcontrolador estão divididos em três partes. A primeira fica na parte baixa da memória,
que pode ser acessada de forma muito eficiente por endereçamento direto (endereço de 8
ara todos os registradores, uma
). Por último, temos os
utor composto de Índio,
Tendo uma área sensível de
nm, conforme se verifica
Resposta espectral típica de um PT511.
O fotodiodo apresenta uma corrente de escuro, que é uma pequena quantidade
tossensível quando não está
. Assim, essa corrente
nada ao sinal que se deseja
possa ser desprezada.
20
Figura 6 – Comportamento da corrente de escuro no PT511.
Fonte: ROITHNER LASERTECHNIK (2011).
Na
Figura 6, tem-se o comportamento da corrente de escuro desse fotodiodo,
destacando a diferença de comportamento para faixas de temperatura diversas
2.6 Sensor de Temperatura LM92
O LM92 é um sensor de temperatura digital e um comparador de faixa térmica.
Tem interface de barramento serial I2C e precisão de ±0.33°C (National, 2000). Possui um
pino de interrupção que é acionado sempre que a temperatura sai de uma faixa
programável; e um pino de alarme de temperatura crítica, acionado sempre que é atingido o
limite critico programado. Para endereçamento, possui dois pinos (A0 e A1).
A Figura 7 apresenta a estrutura típica do LM92, e a função de seus oito pinos.
O LM92 opera c
uma entrada (este não gera nenhum clock) o SDA é uma via de transmissão de dados
bidirecional.
Por especificação
cinco mais significativos “10010” e os do
ligações dos pinos A1 e A0 em nível alto (+V) ou baixo (GND))
Este sensor envia dados de temperatura pelo barramento serial I2C, de 12 bits
mais o bit de sinal, com uma escala de mais de 128
dados de 13 bits, com complemento de dois e bit menos significativo correspondente a
0,0625°C.
Na
Tabela 1, pode
fornecidos por um LM92, e
Tabela 1 – Correspondência dos dados de temperatura do LM92.
Temperatura
130
125
80
64
25
10
2
0,0625
0
-0,0625
Figura 7 – Estrutura típica do LM92. Fonte: Autor.
O LM92 opera como escravo no barramento serial I2C, dessa forma o SCL é
uma entrada (este não gera nenhum clock) o SDA é uma via de transmissão de dados
Por especificação, o LM92 possui 7 bits de endereçamento de escravo, sendo os
cinco mais significativos “10010” e os dois menos significativos A1
ligações dos pinos A1 e A0 em nível alto (+V) ou baixo (GND)).
Este sensor envia dados de temperatura pelo barramento serial I2C, de 12 bits
mais o bit de sinal, com uma escala de mais de 128°C. A temperatura
dados de 13 bits, com complemento de dois e bit menos significativo correspondente a
, pode-se observar uma lista com alguns valores de temperatura
e seus correspondentes em binário e hexadecimal
Correspondência dos dados de temperatura do LM92.
Temperatura (°C) Saída Digital
Binário Hexadecimal
0 1000 0010 0000 08 20
0 0111 1101 0000 07 D0
0 0101 1010 0000 05 90
0 0100 0000 0000 04 00
0 0001 1001 0000 01 90
0 0000 1010 0000 00 A0
0 0000 0010 0000 00 20
0,0625 0 0000 0000 0001 00 01
0 0000 0000 0000 00 00
0,0625 1 1111 1111 1111 1F FF
21
, dessa forma o SCL é
uma entrada (este não gera nenhum clock) o SDA é uma via de transmissão de dados
o LM92 possui 7 bits de endereçamento de escravo, sendo os
is menos significativos A1-A0 (definidos pelas
Este sensor envia dados de temperatura pelo barramento serial I2C, de 12 bits
A temperatura é representada por
dados de 13 bits, com complemento de dois e bit menos significativo correspondente a
valores de temperatura,
decimal.
Correspondência dos dados de temperatura do LM92.
Hexadecimal
08 20
07 D0
05 90
04 00
01 90
00 A0
00 20
00 01
00 00
1F FF
22
-25 1 1110 0111 0000 1E 70
-55 1 1100 1001 0000 1C 90
O registrador de temperatura é composto por 16 bits. Sendo que os 13 bits mais
significativos correspondem ao dado de temperatura e os 3 bits menos significativos aos bits
de status das comparações programadas, conforme é mostrado na Tabela 2.
Tabela 2 – Registrador de temperatura do LM92.
D15 D14 D13 D12 D11 D10 D9 D8 D7 D5 D5 D4 D3 D2 D1 D0
SINAL MSB Bit 10
Bit 9
Bit 8
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
CRIT HIGH LOW
Dado de temperatura Status
O dado de temperatura pode ser lido a qualquer momento. No entanto, leituras
realizadas mais rápido que o tempo de conversão (máximo de 10 segundos), impedem a
atualização do dado.
É possível escrever e ler os registradores de programação do LM92, enviando
um comando de escrita no ponteiro, indicando qual registrador (de leitura ou escrita)
desejar. A definição, de qual registrador será utilizado, é através da escrita nos três bits
menos significativos do registrador do ponteiro, definidos conforme a Tabela 3.
Tabela 3 – Seleção de registrador P2-P0. P2 P1 P0 Registrador
0 0 0 Temperatura (apenas leitura) * Padrão ao ligar.
0 0 1 Configuração (Leitura/escrita)
0 1 0 THYST(Leitura/escrita)
0 1 1 T_CRIT (Leitura/escrita)
1 0 0 TLOW (Leitura/escrita)
1 0 1 THIGH (Leitura/escrita)
1 1 1 Identificação do fabricante
O LM92 tem como padrão, ao ligar, o ponteiro apontando para o registrador de
temperatura. Logo, qualquer leitura realizada sem preceder um comando de escrita de no
ponteiro, executa a função de ler dados de temperatura.
Figura 8 Fonte: FREESCALE SEMICONDUCTOR (
O protocolo I2C
apresentado na Figura 8, da seguinte forma:
• Primeiramente,
endereço do LM92, “1
byte. No caso,
bit menos significativo do byte de controle como nível alto.
• Espera-se o recebimento de um
• Lê-se o byte mais significativo do registrador de temperatura.
• Como o registrador de temperatura é composto de dois bytes, o mestre envia um
“acknowledge”, indicando que deseja continuar a leitura do próximo byte.
• Lê-se o byte menos significativo.
• O mestre envia, então, um “
8 – Protocolo para leitura de dois bytes do LM92.FREESCALE SEMICONDUCTOR (2008).
protocolo I2C para o sensor LM92 pode ser implementado
, da seguinte forma:
, envia-se o bit START e o byte controle, que é composto pelo
endereço do LM92, “10010 A1A0”, mais o bit que indica a solicitação do próximo
para indicar que o próximo byte será uma leitura
bit menos significativo do byte de controle como nível alto.
se o recebimento de um “acknowledge” do escravo.
se o byte mais significativo do registrador de temperatura.
Como o registrador de temperatura é composto de dois bytes, o mestre envia um
”, indicando que deseja continuar a leitura do próximo byte.
se o byte menos significativo.
re envia, então, um “no acknowledge”, indicando que finalizou a leitura.
23
Protocolo para leitura de dois bytes do LM92.
para o sensor LM92 pode ser implementado conforme
START e o byte controle, que é composto pelo
0010 A1A0”, mais o bit que indica a solicitação do próximo
para indicar que o próximo byte será uma leitura, deve-se enviar o
.
se o byte mais significativo do registrador de temperatura.
Como o registrador de temperatura é composto de dois bytes, o mestre envia um
”, indicando que deseja continuar a leitura do próximo byte.
”, indicando que finalizou a leitura.
24
3 SISTEMA PROPOSTO
No sistema proposto, o controle foi aplicado para manter a temperatura de um
receptor de InGaAs (fotodiodo PT511), em aproximadamente 25°C. Sendo esse receptor
responsável pela detecção dos sinais de um medidor de umidade baseado na reflexão
difusa do infravermelho próximo (NIR), emitido por LED’s com faixas de comprimento de
emissão específicas (Figura 9).
Figura 9 – Sistema de medição de umidade com controle de temperatura.
Fonte: Autor.
Nesse sistema uma das faces da célula Peltier está conectada a um dissipador e
a outra, ao elemento que terá sua temperatura controlada.
Uma vez que uma célula Peltier possui sempre um limite de corrente em que o
calor da “face quente” supera o resfriamento da “face fria”, fazendo com que o sistema
passe a aquecer cada vez mais; foi necessário adicionar um sistema de resfriamento. Esse
sistema foi composto, inicialmente, por dissipador e um cooler (tipo de resfriador com
ventoinha, utilizado em computadores), que permanece todo o tempo acionado para dissipar
o calor da face, de forma a aumentar o limite de corrente em que se mantém a diferença
térmica entre as faces, e a faixa de variação para o sistema de controle.
Sensor de Temperatura
Amostra Placa de Petri
LEDs NIR (emissores)
Espelho Plano
Foto diodo (receptor)
Espelho Côncavo
Célula Peltier
Cooler Dissipador
Cilindro de Alumínio
Placa de Alumínio
25
A face oposta ao dissipador está termicamente em contato com o elemento, cuja
temperatura precisa ser controlada, e com o sensor de temperatura LM92, sendo, esta face,
responsável pelo resfriamento e aquecimento do elemento.
Para aumentar o contato térmico entre a célula Peltier e o fotodiodo, a placa de
circuito impresso do fotodiodo foi desenhada em uma placa de cobre dupla face. De forma
que, o fotodiodo foi fixado em uma face e na face oposta foi fixada uma placa de alumínio,
em contato com o cobre. Essa placa de alumínio, por sua vez, foi colocada em contato com
toda a superfície de uma das faces do Peltier, que será chamada neste trabalho de “face de
contato”. A inclusão dessa placa de alumínio foi considerada para evitar o contato elétrico e
maximizar o contato térmico entre a célula Peltier e o fotodiodo.
Na mesma placa em que o fotodiodo foi colocado, e próximo a este, foi fixado o
sensor de temperatura LM92, responsável por monitorar a temperatura do fotodiodo a cada
segundo. Estes dados de temperatura são enviados pelo barramento I2C do
microcontrolador, responsável pelo processamento destas informações. Ele implementa o
controle proporcional, regulando a corrente e acionamento da célula Peltier, através de um
sinal PWM. Como a corrente necessária para o acionamento do Peltier é muito alta para ser
fornecida pelo microcontrolador, é utilizada uma ponte H, que recebe os sinais do
microcontrolador e aciona o Peltier.
Figura 10 – Diagrama de funcionamento do controle de temperatura.
Fonte: Autor.
A ponte H é alimentada com uma fonte separada de 12V e recebe do
microcontrolador a alimentação do controle (GND e 5V); o sinal PWM (que determinará
intensidade da corrente); e os sinais de controle do sentido da corrente, que determinam o
sentido com que a corrente passará pela célula Peltier, conforme mostra o diagrama da
µControlador
HCS08 Ponte H
Célula
Peltier Foto diodo
Esquenta
PWM
Resfria
Sensor de
Temperatura Temperatura
26
Figura 10. O sentido da corrente na célula Peltier determinará se o sistema será aquecido
ou resfriado.
Assim, o microcontrolador avalia se o sistema necessita de aquecimento ou
resfriamento, determinando os comando que acionam o sentido correto para aquecer ou
resfriar a “face de contato”. O resultado do controle do microcontrolador é traduzido em um
pulso PWM de amplitude de 5V, que é injetado na ponte H juntamente com os sinais de
controle de sentido da corrente. A ponte H, então, recebe esses dados, aciona o sentido
correto da corrente (para resfriar ou aquecer) e acrescenta a parte de potência, fornecendo
um pulso de 12V de amplitude, com corrente de aproximadamente 3A de pico.
Portanto, a célula Peltier recebe pulsos PWM de corrente, e a variação do tempo
de acionamento desses pulsos determina a variação da intensidade da corrente efetiva
(RMS) que passa pela célula Peltier, aquecendo, ou resfriando, com menos ou mais
intensidade.
3.1 Célula Peltier
Como qualquer outra célula Peltier, a célula utilizada possui característica
própria de resposta a corrente, temperatura, e tensão. E essas características determinam
sua capacidade e limitações de uso.
Inicialmente, foram realizados testes com a celular Peltier, verificando sua
resposta a diferentes tensões de alimentação contínua e chaveada.
Alimentando a célula Peltier sem o cooler, verificou-se que a capacidade de
manter a diferença de temperatura entre as faces foi quase nula, até mesmo para correntes
baixas. Sendo inviável utilizar tal célula para o resfriamento, sem um sistema de dissipação
de calor eficiente em uma das faces. Assim, utilizou-se um dissipador com um cooler
semelhante ao utilizado em computadores, de 12V de alimentação.
Com o cooler ligado foi realizado um teste alimentando a célula com uma fonte
de tensão contínua, aumentando-se gradativamente a tensão até se verificar o ponto limite
onde era possível resfriar uma das faces do Peltier. Para verificar isso, foi utilizado um
termômetro digital encostado à face de contato (dados da primeira coluna da Tabela 4), e
monitorou-se a tensão e a corrente sobre a célula Peltier com o auxilio de multímetros
digitais. Obtendo-se os resultados apresentados na Tabela 4.
27
Tabela 4 – Resposta da célula Peltier com cooler, para alimentação DC. Temperatura Ambiente: 28,5 °C
Temp. Peltier Temp. LM92 Tensão [V] (fonte DC) Corrente [A]
23,9 27,1 0,52 0,16
21,6 26,5 1,01 0,3
19,2 25,8 1,51 0,45
16,6 24,8 2 0,6
14,3 23,9 2,51 0,75
12,2 23,2 3,03 0,92
10,7 23,1 3,5 1,07
8,9 22,8 4,03 1,25
7,4 22,3 4,51 1,4
6,3 22 5 1,57
5,2 21,6 5,5 1,72
4,2 21,6 6,01 1,89
3,2 21,4 6,51 2,06
2,9 21,3 6,75 2,13
2,7 21,3 7 2,21
2,4 21,2 7,25 2,29
2,2 21,3 7,51 2,38
1,8 21,3 8,1 2,56
Além disso, verificou-se, também, a temperatura lida pelo sensor de temperatura
(dados da segunda coluna da Tabela 4), mostrando o efeito da variação da temperatura da
face da célula Peltier sobre o fotodiodo.
Como é possível verificar segunda coluna da Tabela 4, a tensão contínua
máxima em que a temperatura no LM92 respondeu ao resfriamento é de aproximadamente
7,51V, com uma corrente de 2,38A. Acima desse valor a célula começa a aquecer em
ambos os lados rapidamente.
Esse teste mostrou que o controle de temperatura com a célula Peltier era
possível, uma vez que o sistema com o dissipador e cooler, foi capaz de resfriar uma das
faces até 2°C, para 28,5°C de temperatura ambiente. Sendo que em um dos testes foi
possível atingir -2°C, com temperatura do ambiente de 24°C.
Em seguida, foram realizados testes com alimentação chaveada. Para isso o
Peltier foi conectado a ponte H, alimentada em 12V; e foi desenvolvido um programa no
microcontrolador que permite controlar o Ciclo de Trabalho (tempo do sinal ativo em relação
ao período), do sinal de PWM injetado, através de comandos pela serial do computador.
Dessa forma, foi injetado no Peltier um sinal de tensão PWM de tensão máxima
de 10,24V (12V menos quedas de tensão na ponte H) e o Ciclo de trabalho controlado pelo
computador.
28
Durante esses testes encontrou-se que o Ciclo de trabalho limite para a
utilização da célula Peltier, mantendo uma face fria, foi de, aproximadamente, 52,5%. Além
disso, pode-se perceber que as temperaturas atingidas para um determinado Ciclo de
trabalho não eram as mesmas quando se aquecia ou resfriava a face de contato. Isso
porque a transferência térmica do sistema não era rápida o suficiente e os testes foram
realizados variando o nível de tensão, em média, a cada 10 segundos. Além do mais, vários
fatores influenciam na capacidade de transferência térmica, como a eficiência dos
isolamentos com o meio externo e entre as faces da célula.
Apesar dessa diferença na resposta à variação de tensão, o sistema ainda foi
capaz de gerar variações de temperatura em curtos períodos, o que se torna necessário,
pois períodos muito longos entre as leituras aumentariam o tempo de resposta do sistema e
permitiriam que este permanecesse longos períodos fora da faixa de temperatura tolerada
antes da ação do controle.
Assim, mediram-se valores com a célula resfriando e aquecendo; a uma
temperatura ambiente de 28,8°C, obtendo o gráfico apresentado na Figura 11.
Figura 11 – Resposta da célula Peltier à variação do Ciclo de trabalho.
Fonte: Autor.
3.2 Ponte H
No sistema proposto, foi utilizada uma ponte H desenvolvida no Laboratório de
Automação e Instrumentação Inteligente da UEL. Ela atua em pares de chaves que
combinados que determinam o sentido da corrente na carga (no caso a célula Peltier) e
controla o aumento ou diminuição da corrente, da seguinte forma:
15
17
19
21
23
25
27
29
31
0 20 40 60
Tem
pe
ratu
ra °
C
Ciclo de Trabalho%
Peltier no Resfriamento
Peltier no Aquecimento
LM92 no Resfriamento
LM92 no Aquecimento
• A ponte é alimentada com uma ali
• Recebe os sinais de sentido H_LEFT e H_RIGHT, indicando em que sentido a
corrente deve circular.
• Recebe o sinal PWM de amplitude de 5V, com pulsos de larguras variadas.
• Recebe uma alimentação de baixa potência que é forne
controle (microcontrolador), geralmente com GND e 5V.
• Aciona a corrente de potência circulando no sentido selecionado e fornecendo
como saída um sinal PWM, com a amplitude da alimentação de potência e os
pulsos com as mesmas larguras r
A primeira versão dessa ponte H foi desenvolvida para o controle da rotação de
um motor. Na Figura 3, tem
Figura 12 – (a) Circuito simplificado da pon Fonte: Autor.
Considerando um motor como carga, o
similar para ambos os sentidos de rotação, obedecendo, obviamente, os pares de
condução. Quando o transistor
ao terra, negligenciando a tensão de dreno
polarizando o transistor M1
do circuito é conectada ao outro ponto do motor,
por este e conseqüentemente iniciando a sua rotação num sentido (POZATTO, 2008). O
mesmo se aplica em relação ao par M2 e M3.
Na entrada dos terminais de porta 1, 2, 3 e 4 estão presentes acopladores
ópticos para permitir o isolamento entre o controle e a parte de potência. Esta ponte foi
alterada e o circuito atual conta com a seguinte configuração (
A ponte é alimentada com uma alimentação de potência de 9V a 18V.
Recebe os sinais de sentido H_LEFT e H_RIGHT, indicando em que sentido a
corrente deve circular.
Recebe o sinal PWM de amplitude de 5V, com pulsos de larguras variadas.
Recebe uma alimentação de baixa potência que é forne
controle (microcontrolador), geralmente com GND e 5V.
Aciona a corrente de potência circulando no sentido selecionado e fornecendo
como saída um sinal PWM, com a amplitude da alimentação de potência e os
pulsos com as mesmas larguras recebidas do controle.
A primeira versão dessa ponte H foi desenvolvida para o controle da rotação de
um motor. Na Figura 3, tem-se o modelo simplificado do circuito dessa ponte H.
(a) Circuito simplificado da ponte H, (b) M1 e M4 conduzindo
Considerando um motor como carga, o funcionamento deste circuito é simples e
similar para ambos os sentidos de rotação, obedecendo, obviamente, os pares de
condução. Quando o transistor M4 entra em condução, conecta-se um dos pontos do motor
ao terra, negligenciando a tensão de dreno-fonte inerente a esse transistor. Com isso,
1 de forma que este entre em condução, a tensão de alimentação
do circuito é conectada ao outro ponto do motor, permitindo assim, a passagem de corrente
por este e conseqüentemente iniciando a sua rotação num sentido (POZATTO, 2008). O
mesmo se aplica em relação ao par M2 e M3.
Na entrada dos terminais de porta 1, 2, 3 e 4 estão presentes acopladores
ermitir o isolamento entre o controle e a parte de potência. Esta ponte foi
alterada e o circuito atual conta com a seguinte configuração ( Figura
29
mentação de potência de 9V a 18V.
Recebe os sinais de sentido H_LEFT e H_RIGHT, indicando em que sentido a
Recebe o sinal PWM de amplitude de 5V, com pulsos de larguras variadas.
Recebe uma alimentação de baixa potência que é fornecida pelo sistema de
Aciona a corrente de potência circulando no sentido selecionado e fornecendo
como saída um sinal PWM, com a amplitude da alimentação de potência e os
A primeira versão dessa ponte H foi desenvolvida para o controle da rotação de
se o modelo simplificado do circuito dessa ponte H.
te H, (b) M1 e M4 conduzindo.
funcionamento deste circuito é simples e
similar para ambos os sentidos de rotação, obedecendo, obviamente, os pares de
se um dos pontos do motor
fonte inerente a esse transistor. Com isso,
de forma que este entre em condução, a tensão de alimentação
permitindo assim, a passagem de corrente
por este e conseqüentemente iniciando a sua rotação num sentido (POZATTO, 2008). O
Na entrada dos terminais de porta 1, 2, 3 e 4 estão presentes acopladores
ermitir o isolamento entre o controle e a parte de potência. Esta ponte foi
13 e Figura 14).
3.3 Placa de Desenvolvimento LA2I_HCS08
Uma placa de desenvolvimento foi projetada no Laboratório
Instrumentação Inteligente da UEL com o objetivo de proporcionar uma plataforma para
aprendizagem para o microcontrolador MC9S08SH8, da Freescale
O microcontrolador MC9S08SH8, é um dispositivo da família HCS08SH, da
Freescale, com encapsulamento TSSOP de 20 pinos. Possui 8192
FLASH, 512 bytes de memória RAM (
diversas portas configuráveis com as funções de: conversores A/D (AD0
temporizadores e moduladores de pulso (TPM1
serial I2C (DAS e SCL), barramento serial SCI (Rx e Tx), além das funções de portas I/O (de
entrada e saída digital).
Na placa de desenvolvimento LA2I_HCS08 este microcontrolador está integrado
com conversores para saí
FT232RL da FTDI, com encapsulamento
Figura 13 – Circuito da ponte H. Fonte: Autor.
Figura 14 – Acionamento da ponte H. Fonte: Autor.
esenvolvimento LA2I_HCS08
placa de desenvolvimento foi projetada no Laboratório
Instrumentação Inteligente da UEL com o objetivo de proporcionar uma plataforma para
aprendizagem para o microcontrolador MC9S08SH8, da Freescale®.
O microcontrolador MC9S08SH8, é um dispositivo da família HCS08SH, da
lamento TSSOP de 20 pinos. Possui 8192
de memória RAM (FREESCALE SEMICONDUCTOR, 2008
veis com as funções de: conversores A/D (AD0
temporizadores e moduladores de pulso (TPM1 e TPM2 com canais 0 e 1), barramento
serial I2C (DAS e SCL), barramento serial SCI (Rx e Tx), além das funções de portas I/O (de
Na placa de desenvolvimento LA2I_HCS08 este microcontrolador está integrado
com conversores para saídas serial RS232 e USB, contendo um circuito integrado (CI)
, com encapsulamento TSSOP de 28 pinos. Trata
30
placa de desenvolvimento foi projetada no Laboratório de Automação e
Instrumentação Inteligente da UEL com o objetivo de proporcionar uma plataforma para
O microcontrolador MC9S08SH8, é um dispositivo da família HCS08SH, da
lamento TSSOP de 20 pinos. Possui 8192 bytes de memória
FREESCALE SEMICONDUCTOR, 2008), além de
veis com as funções de: conversores A/D (AD0-9), contador,
e TPM2 com canais 0 e 1), barramento
serial I2C (DAS e SCL), barramento serial SCI (Rx e Tx), além das funções de portas I/O (de
Na placa de desenvolvimento LA2I_HCS08 este microcontrolador está integrado
contendo um circuito integrado (CI)
SSOP de 28 pinos. Trata-se de uma interface
UART, compatível com o padrão USB 2.0, que permite conversão USB para RS232, RS422
e RS485, entre diversas outras a
conectado a um computador, a qual pode ser acessada por meio de um programa de
suporte ao padrão serial EIA
comunicação deste com o microcontro
Possui ainda uma memória EEPROM com comunicação I2C, circuito de reset e
gravação e oscilador com cristal de 4MHz. Além disso
regulador de tensão com saída 5V, de modo que a placa p
externa de 12V, com a opção de alimentar a placa pelo cabo USB.
apresentado o diagrama de blocos dessa placa de desenvolvimento.
Figura 15 – Diagrama de blocos da Placa de Desenvolvimento LA2I_HCS08 Fonte: Autor.
A Figura 16 apresenta uma foto da placa de desenvolvimento LA2I_HCS08.
UART, compatível com o padrão USB 2.0, que permite conversão USB para RS232, RS422
e RS485, entre diversas outras aplicações. Este CI cria uma porta serial virtual ao ser
conectado a um computador, a qual pode ser acessada por meio de um programa de
suporte ao padrão serial EIA-232, como o Hyperterminal do Windows
comunicação deste com o microcontrolador através do módulo SCI (MOREIRA, 2010).
Possui ainda uma memória EEPROM com comunicação I2C, circuito de reset e
gravação e oscilador com cristal de 4MHz. Além disso, possui um circuito integrado
regulador de tensão com saída 5V, de modo que a placa pode ser alimentada por uma fonte
externa de 12V, com a opção de alimentar a placa pelo cabo USB.
apresentado o diagrama de blocos dessa placa de desenvolvimento.
Diagrama de blocos da Placa de Desenvolvimento LA2I_HCS08
apresenta uma foto da placa de desenvolvimento LA2I_HCS08.
31
UART, compatível com o padrão USB 2.0, que permite conversão USB para RS232, RS422
plicações. Este CI cria uma porta serial virtual ao ser
conectado a um computador, a qual pode ser acessada por meio de um programa de
Windows®, e assim permite a
lador através do módulo SCI (MOREIRA, 2010).
Possui ainda uma memória EEPROM com comunicação I2C, circuito de reset e
possui um circuito integrado
ode ser alimentada por uma fonte
externa de 12V, com a opção de alimentar a placa pelo cabo USB. Na Figura 15 é
Diagrama de blocos da Placa de Desenvolvimento LA2I_HCS08.
apresenta uma foto da placa de desenvolvimento LA2I_HCS08.
32
Figura 16 – Placa LA2I_HCS08.
Fonte: Autor.
As principais funções desse microcontrolador, que devem ser destacadas para o
presente trabalho são (FREESCALE SEMICONDUCTOR, 2008):
• Internal Clock Source (ICS): permite configurar os sinais de clock para os
diversos módulos do microcontrolador, utilizando referência de clock interna ou
externa, tal como um cristal oscilador;
• Inter-Integrated Circuit (I2C): permite comunicação serial síncrona com diversos
dispositivos, em até 100 kbps;
• Real-Time Counter (RTC): contador tempo real, que permite configurar diversas
bases de tempo;
• Interface de Comunicação Serial (SCI) : permite comunicação serial assíncrona
full-duplex;
• Timer Pulse-Width Modulation (TPM): permite configurar um canal para operar
como input capture, output compare ou PWM.
3.4 Configurações Iniciais do Microcontrolador
Primeiramente foi estudado o datasheet do microcontrolador MC9S08SH8, e
definidas as portas a serem utilizadas, conforme é mostrado na tabela (Tabela 5).
33
Tabela 5 – Portas do microcontrolador utilizadas no sistema.
PORTA FUNÇÂO UTILIZAÇÂO CONECTADA Á
PTA2 SDA (I2C) SDA do barramento I2C LM92
PTA3 SCL (I2C) SCL do barramento I2C LM92
PTB2 Porta Digital - Saída RESFRIA (H_ESQUERDA) PONTE H
PTB3 Porta Digital - Saída AQUECE (H_DIREITA) PONTE H
PTC0 TPM1CH0 PWM PONTE H
PTB0 RxD RxD da SCI convertida pra USB USB
PTB1 TxD TxD da SCI convertida pra USB USB
VCC (placa) VCC Alimentação (baixa potência) PONTE H e LM92
GND (placa) GND Alimentação (baixa potência) PONTE H e LM92
Então, a programação do microcontrolador foi feita em linguagem C, utilizando o
software CodeWarrior IDE versão 5.9.0. Com a fonte de clock determinada como externa
(do cristal de 4MHz) , foi definido um busclock de 16MHz para o microcontrolador.
3.5 Leitura da Temperatura.
Para a leitura da temperatura foi configurado o barramento I2C do
microcontrolador HCS08, com taxa de transmissão de 50 kHz. Como o tempo de conversão
da temperatura pelo LM92 pode levar até um segundo, foi configurado o Real Time Counter
(RTC) para gerar uma interrupção com intervalos de aproximadamente um segundo. Para
isso foi selecionado o clock interno do microcontrolador de 1kHz como a fonte do clock do
RTC e determinado o prescale. Em seguida, foi determinado o valor de reinicializarão da
contagem RTC (RTCMOD), de modo que o tempo para reiniciar a contagem fosse igual, ou
próximo, a um segundo.
O barramento I2C do HCS08 é bastante completo, possuindo comando para
gerar os diversos componentes do protocolo I2C. Sendo que as explicações desses
comandos se encontram claras no manual do microcontrolador.
A rotina de leitura de temperatura, nada mais é que a execução do protocolo de
I2C para a leitura da temperatura, explicado em 2.6, e os trechos dessa rotina são
apresentados a seguir. Já o programa completo pode ser encontrado em anexo, no final
desse documento.
3.5.1 Envio de byte de controle
Na Figura 17
solicitação de leitura pelo barramento I2C.
Figura Fonte:
//---------------------------
IICC1_TX = 1;
IICC1_MST = 1;
//---------------------------
IICD = 0b10010001;
delay(5);
while (IICS_TCF==0)
{ }
delay(5);
//---------------------------
// aguarda fim da transmissão
if (IICS_RXAK == 1)
{
IICC1_MST = 0;
delay(2);
envia_serial('e');
envia_serial('
return 0;
}
delay(4);
Como é possível ob
sinal de START, escreve o byte de controle no r
flag IICS_TCF passar para o nível alto
aguarda a flag IIC1_RXAK
“acknowlodge” (ACK) de respos
erro é reportado.
byte de controle.
é apresentado um diagrama de temporização do envio de uma
solicitação de leitura pelo barramento I2C.
Figura 17 – Byte de controle com solicitação de leitura.Fonte: Autor.
---------------------------START------------------------------
IICC1_TX = 1; // sinaliza transmissão
IICC1_MST = 1; // gera start
---------------------------TRANSM---------------------------------
IICD = 0b10010001;
while (IICS_TCF==0) // enquanto transmitindo pela i2c
---------------------------ACK_LM---------------------------------
// aguarda fim da transmissão
if (IICS_RXAK == 1) // se não recebeu o ack
IICC1_MST = 0; // gera stop;
delay(2);
envia_serial('e');
envia_serial('r');
return 0;
Como é possível observar esse trecho do programa sinaliza a transmissão, envia
sinal de START, escreve o byte de controle no registrador de dado da I2C (IICD), e espera a
passar para o nível alto (indicando que o dado já foi transmitido). Em seguida,
IIC1_RXAK mudar de 1 para 0, indicando que o microrontrolador recebeu um
(ACK) de resposta do LM92. Caso o LM92 não responda com um ACK
34
um diagrama de temporização do envio de uma
Byte de controle com solicitação de leitura.
--------------------------------
---------------------------------
indo pela i2c
---------------------------------
servar esse trecho do programa sinaliza a transmissão, envia
egistrador de dado da I2C (IICD), e espera a
(indicando que o dado já foi transmitido). Em seguida,
, indicando que o microrontrolador recebeu um
. Caso o LM92 não responda com um ACK, um
3.5.2 Leitura do dado do registrador de temperatura
Na Figura 18 é apresentado um diagrama de temporização do recebimento de
byte pelo barramento I2C.
Figura Fonte:
//---------------------------
IICC1_TX = 0; // sinaliza recepção
delay(1);
auxiliar = IICD;
delay(2);
IICC1_TXAK = 0; // sinaliza transmitir ACK
while (IICS_TCF==0) // enquanto recebendo da i2c
{
}
auxiliar = IICD;
delay(2);
//--------------------------
//--------------------------
//envia_dado_bin(auxiliar);
Temp_binario=auxiliar<<8; // salva byte (+) significativo
O registrador de dados é o mesmo para os dois sentidos da comunicação
(transmissão ou recepção), como pode ser visto no
Na recepção, a difer
leitura “dummy”, apenas para iniciar a recepção do dado
dado já possa ser lido, deve
que o dado foi recebido é feita a leitura e armazenada um uma variável. Lembrando que a
primeira leitura do dado de temperatura é o byte mais significativo.
Em seguida deve
foi sinalizada transmissão, assim que o registrador for lido já iniciará o recebimento do
próximo byte. Enquanto isso
Leitura do dado do registrador de temperatura
é apresentado um diagrama de temporização do recebimento de
Figura 18 – Recebimento do primeiro byte. Fonte: Autor.
---------------------------RECEBE---------------------------------
IICC1_TX = 0; // sinaliza recepção
auxiliar = IICD; // inicia recepção (dummy read)
IICC1_TXAK = 0; // sinaliza transmitir ACK
while (IICS_TCF==0) // enquanto recebendo da i2c
auxiliar = IICD; // lê byte + significativo da temperatur
--------------------------ACK_MESTRE------------------------------
--------------------------ARMAZENA_DADO---------------------------
//envia_dado_bin(auxiliar);
Temp_binario=auxiliar<<8; // salva byte (+) significativo
egistrador de dados é o mesmo para os dois sentidos da comunicação
smissão ou recepção), como pode ser visto nos trechos dos programa
a diferença, além de sinalizar a recepção, é que se deve fazer uma
penas para iniciar a recepção do dado. Antes de
ser lido, deve-e sinalizar que o mestre enviará um ACK. Uma vez sinalizado
que o dado foi recebido é feita a leitura e armazenada um uma variável. Lembrando que a
itura do dado de temperatura é o byte mais significativo.
Em seguida deve-se ler o próximo byte, porém, como já houve uma leitura e não
foi sinalizada transmissão, assim que o registrador for lido já iniciará o recebimento do
próximo byte. Enquanto isso, deve-se sinalizar que um NACK (“No Acknowledge
35
é apresentado um diagrama de temporização do recebimento de
---------------------------------
IICC1_TX = 0; // sinaliza recepção
// inicia recepção (dummy read)
IICC1_TXAK = 0; // sinaliza transmitir ACK
while (IICS_TCF==0) // enquanto recebendo da i2c
// lê byte + significativo da temperatura
------------------------------
---------------------------
Temp_binario=auxiliar<<8; // salva byte (+) significativo
egistrador de dados é o mesmo para os dois sentidos da comunicação
programas apresentados.
nça, além de sinalizar a recepção, é que se deve fazer uma
ntes de determinar que este
e sinalizar que o mestre enviará um ACK. Uma vez sinalizado
que o dado foi recebido é feita a leitura e armazenada um uma variável. Lembrando que a
se ler o próximo byte, porém, como já houve uma leitura e não
foi sinalizada transmissão, assim que o registrador for lido já iniciará o recebimento do
No Acknowledge”) deverá
36
ser enviado, informando que este será o último byte a ser lido. Este procedimento pode ser
observado no trecho de código a seguir.
//--------------------------RECEBE----------------------------------
IICC1_TXAK = 1; // sinaliza transmitir NACK
while (IICS_TCF==0) // enquanto recebendo da i2c
{
}
IICC1_TX = 1; // sinaliza transmissão ==> evita zerar TFC
auxiliar = IICD; // lê byte (-) significativo da temperatura
//--------------------------NACK_MESTRE-----------------------------
//--------------------------STOP-----------------------------------
IICC1_MST = 0; // gera stop;
delay(2);
//--------------------------ARMAZENA_DADO--------------------------
Temp_binario=Temp_binario + auxiliar;// salva MS Byte + LS Byte
//|Sign|T11|T10|T9|T8|T7|T6|T5|T4|T3|T2|T1|T0|CRIT|HIGH|LOW|
Temp_binario=Temp_binario>>3;
//|Sign|T11|T10|T9|T8|T7|T6|T5|T4|T3|T2|T1|T0|
return Temp_binario; //(expl: para 25oC => 0 0001 1001 0000)
}
Outro procedimento que se observa no programa é a necessidade de sinalizar
transmissão, antes mesmo de ler o registrador, para uma nova recepção não seja iniciada.
Por fim é enviado o sinal de STOP e armazenado também o byte menos
significativo. E com os 16 bits estruturados, são descartados os 3 bits menos significativos
que não serão usados e separados os 13 bits mais significativos que serão a saída dessa
rotina, correspondente à temperatura.
3.6 Controle da Temperatura
Observando o gráfico do comportamento da corrente de escuro no PT511 (na
Figura 6, apresentada no capítulo 2), é possível observar que com a queda da
temperatura existe uma queda na corrente de escuro, e, idealmente, poderia-se concluir que
quanto menor a temperatura melhor. Porém, a temperatura de 25°C, a corrente de escuro
do fotodiodo já pode ser desprezada. Também, como essa temperatura geralmente se
encontra próxima da temperatura ambiente, é exigido um consumo mais baixo para manter
37
o PT511 a 25°C. Alem do mais, o comportamento da corrente de escuro para essa
temperatura é conhecido, sendo disponibilizado pelo fabricante.
No sistema proposto o controle é realizado digitalmente, sendo que o próprio
sensor de temperatura funciona como conversor analógico/digital (A/D) e envia o sinal digital
para o microcontrolador.
A rotina de leitura da temperatura retorna o correspondente digital da
temperatura sem ser convertido para “°C”. Evitando que se propaguem possíveis erros da
conversão na rotina de controle. Dessa forma a temperatura de referência (em que
queremos manter o sistema) também é utilizada em bits, ou seja, 25°C ou “0 0001 1001
0000” como é apresentado na
Tabela 1, da revisão bibligráfica.
O controle utilizado, inicialmente, para manter a temperatura em uma faixa
próxima a 25°C é o controle proporcional, que corresponde à equação (1), da seção
Controles Proporcional, repetida abaixo:
0SDVkpMV +⋅= (1)
O circuito de controle, primeiramente, reconhece o valor da amplitude térmica
sobre o sensor óptico (PV) através do sensor de temperatura e compara este valor com o
setpoint (SP) de 25°C. Em função do resultado dessa comparação o circuito de
condicionamento de temperatura do sistema opera no sentido de atribuir +∆T ou -∆T sobre o
fotodiodo.
Dessa forma, dada a equação (2) ( PVSPDV −= ), a equação do controle pode
ser escrita como:
( )oSPVSPkpMV +−⋅= (3)
O desvio ( PVSPDV −= ) é calculado em bits e passa pelo algoritmo de
controle proporcional que determina a ação ( D ). O próprio microcontrolador, então,
funciona como um conversor digital/analógico (D/A) gerando um sinal PWM a partir do valor
ação ( D ) do controle determinada.
Considerando que SP é a temperatura de referência e PV é a temperatura
lida, se desconsiderarmos 0S , temos:
( )atemperaturrefkpD −⋅= (4)
Onde o valor da ação ( D ) é a saída digital do controle proporcional.
38
Assim, o diagrama de blocos do controle proporcional é mostrado na Figura
19. Sendo que essa realimentação ocorre a uma amostragem de 1 segundo, tempo máximo
que o sensor de temperatura leva para converter a temperatura em bits.
Figura 19 – Diagrama de blocos do controle de temperatura proporcional.
Fonte: Autor.
Para facilitar os testes iniciais desprezou-se o valor de 0S , portanto, o valor de
D ficou variando entre valores positivos e negativos. Considerando que o real valor do Ciclo
de trabalho não pode ser negativo. Encontramos a seguinte situação:
• Para Ref > Temp => D > 0, e o sistema deve ser aquecido.
• Para Ref < Temp => D < 0, e o sistema tem que ser resfriado.
Dessa forma, basta considerar que o sinal de D simboliza o sentido da corrente
no Peltier, de resfriamento ou aquecimento; e seu módulo representa o valor do DUTY.
Ressaltando que o DUTY não é o valor do Ciclo de trabalho, sendo o Ciclo de
trabalho (Duty Cycle) dado pela equação 5:
TPM1MOD
DUTY=Duty Cycle (5)
Esse valor calculado de Duty Cycle determina o ciclo ativo da modulacão por
largura de pulso (PWM) na qual as chaves ativas devem operar para estabelecer a troca
térmica sobre o sensor PT511. Esse sinal PWM é mantido durante um período de
amostragem de 1 segundo, até que a temperatura seja novamente capturada pelo sensor de
temperatura LM92.
Para poder realizar esse controle variando o Ciclo de trabalho de um PWM no
HCS08, é preciso configurar o TPM de forma que a faixa de variação dos valores do DUTY
seja o maior possível. Logo, foi configurado o TPM1 canal zero da seguinte maneira:
• Fonte do clock da TPM igual ao busclock.
39
• Preescale de 8, que proporciona uma freqüência de contagem do TPM de
2MHz (16 MHz/8).
• Valor limite da contagem para o início de um novo período, TPM1MOD =
4000 (o maior valor para uma freqüência aceitável).
• Resultando em um período de 2 ms (fTPM1 = 2MHz/4000 = 500 Hz)
• Função PWM aligned selecionada.
Com um TPM1MOD de 4000, o valor do DUTY (TPM1C0V) poderia variar de 0 a
4000. Porém, na prática, por conta do problema do isolamento térmico das faces da célula
Peltier, existe um limite onde a “face fria” não influencia mais.
No caso do Peltier utilizado nesse trabalho, foi encontrado, experimentalmente,
um valor de DUTY em torno de 2100 (Ciclo de trabalho de 52,5%) para esse limite. Portanto,
o programa conta também com um fator limitador do DUTY sendo seu módulo máximo de
DUTY_MAX=2100.
Com todos esses fatores a rotina de monitoramento da temperatura ficou da
seguinte forma:
Temperatura=le_temperatura();
e= Ref - Temperatura;
D=k*e;
if(D<0){
D=0-DUTY;
if(Resfria==0){
Resfria=1;
DUTY=0;
return;
}
}
if(D>0)
if(Resfria==1){
Resfria=0;
DUTY=0;
return;
}
}
if(D>DUTY_MAX){
D=DUTY_MAX;
}
DUTY=D;
return;
}
No programa está declarada, uma variável chamada “Resfria”, é igual a 1, indica
que deve ser acionado o sentido do resfriamento, e quando é igual a 0, indica que o sistema
deve ser aquecido.
40
Para que esses sinais cheguem à ponte H e à célula Peltier, essas variáveis são
atribuídas a cada loop de um segundo, aos registradores das portas correspondentes:
TPM1C0V = DUTY; //...ajusta duty
delay(4);
PTBD_PTBD3 = ~Resfria; //... redefine sentido
PTBD_PTBD2 = Resfria;
Por fim, os valores de temperatura e Ciclo de trabalho são convertidos para
ASCII e enviados pela serial, por rotinas desenvolvidas de envio de dados pela serial.
3.7 Monitoramento e Testes.
Para monitorar a temperatura durante os testes, acompanhando seu
comportamento através da USB e do programa Hyperterminal do Windows®, foram,
inicialmente, feitas as configurações necessárias para enviar os dados pelo barramento
serial RS232 do HCS08, que passa pelo FT232RL e é convertida para o padrão compatível
com a USB 2.0.
Para a realização dos testes, foi desenvolvida uma rotina principal, “main.c”, que
fica em um loop infinito verificando no RTC o intervalo de um segundo. Fazendo uma leitura
de temperatura, processando e enviando os sinais de controle, pela USB, a cada segundo.
Conforme mostra o fluxograma apresentado na Figura 20.
Figura 20 – Fluxograma da função main para o teste do controle de temperatura.
Fonte: Autor.
S
N
Main
Se passado 1 segundo
Monitora Temperatura
Inicializa
Atribui valores aos sinais de controle
Envia dados pela USB
4 RESULTADOS E DISCUSSÃO
Para testar o funcionamento do controle, o sistema foi montado
umidade e conectado a um computador
observando o comportamento da temperatura através do programa
Windows®.
Figura 21 – Placa com fotodiodo e LM92; célula peltier e Fonte: Autor.
Para ajudar no isolam
alumínio fixada à placa de circuito impresso com o sensor de temperatura e o fotodiodo, foi
isolada da face oposta do Peltier com uma espuma isolante térmica expansiva de
poliuretano. Conforme é pos
apresentam o conjunto: placa de circuito impresso (do fotodiodo e sensor de temperatura);
célula Peltier; dissipador; e
Figura 22 – Placa com fotodiodo e LM92; célula peltier e Fonte: Autor.
Alguns problemas de segurança foram apresentados na utilização da ponte H no
sistema, uma vez que duas si
E DISCUSSÃO
Para testar o funcionamento do controle, o sistema foi montado
e conectado a um computador; e o desempenho do controle
observando o comportamento da temperatura através do programa
Placa com fotodiodo e LM92; célula peltier e cooler -
Para ajudar no isolamento térmico entre as faces da célula Peltier, a placa de
alumínio fixada à placa de circuito impresso com o sensor de temperatura e o fotodiodo, foi
isolada da face oposta do Peltier com uma espuma isolante térmica expansiva de
poliuretano. Conforme é possível observar nas fotos da Figura 21
apresentam o conjunto: placa de circuito impresso (do fotodiodo e sensor de temperatura);
pador; e cooler.
Placa com fotodiodo e LM92; célula peltier e cooler -
Alguns problemas de segurança foram apresentados na utilização da ponte H no
sistema, uma vez que duas situações levavam ao curto circuito da fonte da ponte H: os
41
Para testar o funcionamento do controle, o sistema foi montado no medidor de
o desempenho do controle foi acompanhado,
observando o comportamento da temperatura através do programa Hyperterminal do
- Visão de baixo.
ento térmico entre as faces da célula Peltier, a placa de
alumínio fixada à placa de circuito impresso com o sensor de temperatura e o fotodiodo, foi
isolada da face oposta do Peltier com uma espuma isolante térmica expansiva de
e da Figura 22, que
apresentam o conjunto: placa de circuito impresso (do fotodiodo e sensor de temperatura);
Visão de lateral.
Alguns problemas de segurança foram apresentados na utilização da ponte H no
tuações levavam ao curto circuito da fonte da ponte H: os
42
sinais de sentido (H_ESQUERDA e H_DIREITA) colocados em nível alto ao mesmo tempo,
ou a placa alimentada pela fonte sem receber os sinais de controle do microcontrolador.
Dessa forma, na nova versão a ponte H foi melhorada, criando proteções que
evitam a ocorrência das duas situações que levavam a ponte H ao curto-circuito.
A Figura 23 apresenta uma foto da placa da PONTE H utilizada no sistema.
Figura 23 - Foto da placa da ponte H.
Fonte: Autor.
Na Figura 24, é apresentada uma foto da visão superior do sistema no qual o
controle de temperatura foi implementado durante os testes, sendo possível visualizar o
sistema de controle de temperatura na parte inferior da figura.
Figura 24 – Foto da visão superior do sistema de medição de umidade.
Fonte: Autor.
43
4.1 Dados Obtidos
Para facilitar a análise dos dados de temperatura obtidos através da USB, foi
acionada a captura de dados do programa Hyperterminal que permite salvar os dados
recebidos em um documento de texto (.txt). E esses documentos de texto foram, então,
abertos através do editor de planilhas MS Office Excel e convertidos para o formato de
planilha do Excel (.xls).
Para facilitar essa conversão, os dados de temperatura e Ciclo de trabalho foram
separados por espaços e a cada novo segundo eram transmitidos na próxima linha.
Dessa forma foi possível analisar os dados nas planilhas do Excel e gerar
gráficos que apresentam o comportamento do controle como o gráfico da Figura 25.
Figura 25 – Comportamento da temperatura sobre o controle do sistema.
Fonte: Autor.
Esse gráfico mostra a atuação do controle sobre a temperatura, que no momento
do inicio do teste era de, aproximadamente, 27,2°C. Podendo ser observado que o sistema
atua reduzindo a temperatura do fotodiodo, até que está chega a valores menores que a
22
23
24
25
26
27
28
29
0 100 200 300 400 500 600
Tem
pe
ratu
ra e
m °
C
Tempo em segundos
44
temperatura desejada (25°C). Neste momento a saída do controle começa a oscilar, e a
temperatura oscila cada vez menos até estabilizar em valores próximos a 25°C.
No caso, por ter sido utilizado um sistema de controle proporcional, o sistema
continua oscilando por um período muito longo, assim considera-se que o sistema está
“estabilizado” quando a temperatura oscilando em torno de 25°C com uma variação
pequena (menor que 1°C para mais ou para menos). De modo que a temperatura não é
constante; porém pode-se dizer que o controle está funcionando, uma vez que a faixa de
oscilação da temperatura se encontra próxima da temperatura desejada e garante resultado
suficiente para a aplicação proposta, na qual não é necessário um controle muito preciso da
temperatura, e sim que esta trabalhe próxima a temperatura desejada.
Esse comportamento da saída do controle é mostrado no gráfico da Figura 26.
Figura 26 – Temperatura controlada após 15 minutos.
Fonte: Autor.
Esse gráfico apresenta o comportamento da temperatura quando controlada,
após 15 minutos do controle estar ativado. Sendo possível afirmar que o controle está sendo
efetivo, pois a temperatura oscila em uma faixa de erro menor que 1°C para cima e para
baixo do valor desejado.
Para a maioria das aplicações esse controle bastaria, uma vez que não importa
que a temperatura continue oscilando, contanto que seja mantida em uma faixa de
temperatura. Como é o caso da aplicação do controle sobre o PT511, que só apresenta
diferença significativa de suas características para diferenças maiores de temperatura.
Porém, o ideal para um controle de temperatura é que ele atinja o valor desejado
e se mantenha quase constante neste valor, já que existe um maior gasto de energia com o
sistema sempre oscilando. Sendo interessante realizar testes com controles mais complexos
20
21
22
23
24
25
26
27
28
29
30
0 200 400 600 800 1000 1200 1400 1600 1800 2000
Te
mp
era
tura
em
°C
Tempo em segundos
Temperatura Controlada
45
posteriormente (como controles PD, PI e PID), a fim de observar os resultados desses
controles e verificar se estes garantem maior estabilidade e precisão, e se essas vantagens
são relevantes para o sistema onde o controle de temperatura é aplicado.
Outro fator que pode ser melhorado no sistema é o tempo de resposta do
mesmo, uma vez que esse sistema não responde rapidamente a variações bruscas de
temperatura, e não é capaz de anular a influencia desse tipo de variação. Isso pode ser
realizado utilizando controles mais complexos, e melhorando a transferência térmica do
sistema, através de um melhor isolamento entre as faces da célula Peltier e entre o
componente e o meio externo.
46
5 CONCLUSÃO
Aplicado sobre o fotosensor PT511 do sistema de medição de umidade baseado
em espectrometria NIR, o sistema digital de controle de temperatura apresentado, foi capaz
de manter a temperatura do fotosensor próxima a 25°C; garantindo que a corrente de escuro
pudesse ser desprezada e a saída do sistema fosse confiável. Além de evitar um desgaste
excessivo do componente, por exposição a faixas de temperatura altas.
Utilizando controle proporcional, manteve-se a temperatura oscilando em torno
da temperatura desejada com variação menor que 1°C para mais e para menos, tendo
suficiente controle da temperatura para a aplicação em questão, que não necessita de um
controle de alta precisão e estabilidade. Já que deve apenas de manter o fotosensor em
uma faixa de temperatura onde o erro da saída possa ser desprezado e evitar que esse
sofra desgaste devido à temperatura..
Para aplicações que exigem maior precisão no controle, estabilidade maior ou
resposta mais rápida; deve-se aplicar um controle mais efetivo. Ficando como sugestão para
os próximos trabalhos, que se implemente controles PI, PD e PID no sistema, a fim de
verificar a melhora do controle e sua estabilidade.
Outra sugestão para o sistema é que se melhore seu isolamento para maximizar
a transferência térmica com o dispositivo desejado, diminuindo o tempo de resposta do
sistema às variações de temperatura, e também o consumo de energia desse controle.
Por fim, conclui-se que o controlador de temperatura com célula Peltier,
proposto, mostrou resultados promissores. Sendo capaz de controlar a temperatura de um
dispositivo de pequeno porte, mantendo-a dentro de uma pequena faixa de temperatura, em
torno da temperatura determinada como referência. Podendo ser adaptado posteriormente
para aplicações que exigem um controle mais rápido estável ou preciso.
47
REFERÊNCIAS
BOYLESTAD R., NASHELSKY L.. Dispositivos Eletrônicos e Teoria de Circuitos.
5ed.,Rio de Janeiro, RJ: Prentice-Hall do Brasil, 2004.
CAMPOS, M. C. M. M. DE; TEIXEIRA, H. C. G. Controles Típicos de equipamentos e
processos industriais. São Paulo, Blütcher, 2006.
FREESCALE SEMICONDUCTOR. MC9S08SH8 MCU Series Data Sheet. jun. 2008.
Disponível em:
<http://cache.freescale.com/files/microcontrollers/doc/data_sheet/MC9S08SH8.pdf?fsrch=1&
sr=1>. Acesso em: 06 out. 2011.
MECATRÔNICA HOJE. Módulo Célula de Peltier ou pastilhas térmicas, como
funciona?. 2009. Disponível em: <http://mecatronicahoje.blogspot.com/2011/06/modulo-
celula-de-peltier-ou-pastilhas.html>. Acesso em: 23 out. 2011.
MOREIRA, M.. Estação Agrometereológica LA2I: Sistema de aquisição de dados.
Trabalho de Conclusão de Curso (Graduação em Engenharia Elétrica) Universidade
Estadual de Londrina, Londrina. 2010.
M. PARENTEAU, M.; CARLONE, C.. Influence of temperature and pressure on
theelectronic transitions in SnS and SnSe semiconductors. Phys. Rev. B 41 (1990), pp.
5227–5237.
NATIONAL. LM92 ±0.33°C Accurate, 12-Bit + Sign Temperature Sensor and Thermal
Window Comparator with Two-Wire Interface. Mar. 2000. Disponível em:
<http://www.datasheetcatalog.org/datasheet/nationalsemiconductor/LM92.pdf>. Acesso em:
06 de out. 2011.
PINDADO, R. H.. Climatización Mediante Células Peltier - Proyecto Fin De Carrera.
Universidad Pontificia Comillas. Madrid. Set. de 2008.
48
POZZATO, F. B.. Controle de Rotação de um Motor de Corrente Contínua utilizando
Microcontrolador. Trabalho de Conclusão de Curso (Graduação em Engenharia Elétrica) –
Universidade Estadual de Londrina, Londrina. 2008.
QUADROS, D.. Microcontrolador FreeScale HCS08. nov. 2009. Disponível em:
<http://dqsoft.blogspot.com/2009/11/microcontrolador-freescale-hcs08.html>. Acesso em: 06
out. 2011.
ROITHNER LASERTECHNIK. PT5xx InGaAs photodiode with 300 µm sensitive área.
Disponível em:
<http://roithner-laser.at/previous/All_Datasheets/Photodiodes/PT511_InGaAs_PD_300.pdf>.
Acesso em: 23 out. 2011.
SILVA, J. M. G.. Controladores Digitais. abr. 2010. Disponível em:
<http://www.ece.ufrgs.br/~jmgomes/pid/Apostila/apostila/node17.html>. Acesso em: 27 nov.
2011.
SILVA, L.. Protocolo I2C. jan. 2011. Disponível em:
<http://diagramasecircuitos.blogspot.com/2011/01/protocolo-i2c.html>. Acesso em: 06 out.
2011.
WIKIPÉDIA. Efeito Peltier. Disponível em:
<http://pt.wikipedia.org/wiki/Efeito_Peltier>. Acesso em: 25 abr. 2011.
49
ANEXO A – PROGRAMA DE TESTE DO CONTROLE DE TEMPERATURA.
#include <hidef.h> /* for EnableInterrupts macro */ #include "derivative.h" /* include peripheral declarations */ #include <MC9S08SH8.h> /********************************************************************************************************/ ///////////////////////////* CONTROLE DE TEMPERATURA *//////////////////////////////////////////////////// ///////////////////////Amostragem de um segundo - Controle Proporcional/////////////////////////////////// /********************************************************************************************************/ //-------------------------------------------------------------------------------------------------------- ///////////////////// LISTA DE CONFIGURAÇÔES DAS PORTAS //////////////////////////////////////////// //-------------------------------------------------------------------------------------------------------- // VCC ----------------> VCC do LM92 (sensor de temperatura) // PTA2 = SDA (I2C) ---> SDA do LM92 // PTA3 = SCL (I2C) ---> SCL do LM92 // GND ----------------> GND do LM92 //-VCC --------------> VCC(controle) da PONTE //-GND --------------> GND(controle) da PONTE // PTB2 -------------> RESFRIA (PONTE) // PTB3 -------------> AQUECE (PONTE) // PTC0 = TPM1CH0 ---> PWM - Peltier 1(PONTE) // PTB6 e PTB7 = XTAL e EXTAL (cristal) // PTB0 e PTB1 = RxD e TxD (serial) //-------------------------------------------------------------------------------------------------------- //////////////////// DEFINICOES ///////////////////////////////////////////////////////////////////// //-------------------------------------------------------------------------------------------------------- #define Ref 0b110010000 // 25oC no LM92 #define DUTY_MAX 2100 //DUTY máximo do Peltier #define kp 70 //-------------------------------------------------------------------------------------------------------- //////////////////// DECLARAÇÃO DAS VARIÁVIES: ////////////////////////////////////////////////////// //-------------------------------------------------------------------------------------------------------- unsigned int DUTY=0; unsigned char Resfria=1; unsigned long t, to,tempo_timeout; long Temperatura; int D,Dif,e; //-------------------------------------------------------------------------------------------------------- //////////////////// DECLARAÇÃO DAS FUNÇÕES //////////////////////////////////////////////////////////// //-------------------------------------------------------------------------------------------------------- void inicializa (void); // procede inicialização
50
void configura_portas (void); // configura portas como saida ou entrada void configura_clock (void); // configura clock void configura_rtc (void); // configura real-time counter void configura_tpm (void); // configuração inicial TPM void configura_i2c (void); // configura i2c void configura_sci (void); // configura serial void envia_serial (char d); // envia um byte pela serial void envia_dado_serial (unsigned long dado,unsigned short virgula); // envia dado pela serial ... //...com 3 digitos, com ou sem virgula (XX,X) void envia_dado_temperatura (unsigned long temp) ; // envia dado de temperatua convertida em oC void monitora_temperatura(void); //monitora temperatura do equipamento unsigned long le_temperatura (void); //le temperatura do LM92 void delay (unsigned long time); // define delay ////////////////////////////////////////////////////////////////////////////////////////////////////////// /*======================================================================================================== *** MAIN *** -> Função principal do programa ========================================================================================================*/ void main(void) { inicializa(); // Inicializa microcontrolador TPM1C0V = 0; // Zera duty (deixa peltier desligado) PTBD_PTBD3 = 0; // Define sentido PTBD_PTBD2 = 1; //... de resfriar delay(4); while (1){ //loop do sistema /* Monitora a temperatura */ if (RTCSC_RTIF == 1) { // a cada segundo... RTCSC_RTIF=1; monitora_temperatura (); // ...verifica a temperatura ... TPM1C0V = DUTY; //...ajusta duty delay(4); PTBD_PTBD3 = ~Resfria; //... redefine sentido PTBD_PTBD2 = Resfria;
51
envia_serial('T'); envia_serial('='); envia_serial(' '); envia_dado_temperatura(Temperatura); // imprime Temperatura em oC envia_serial(' '); envia_serial('o'); envia_serial('C'); envia_serial(' '); envia_serial(' '); envia_serial(' '); envia_serial('D'); envia_serial('='); envia_serial(' '); envia_dado_serial(DUTY/4,0); // imprime Duty em % envia_serial(' '); envia_serial('%'); envia_serial(' '); envia_serial(Resfria+0x30); envia_serial(0x0A); // LF envia_serial(0x0D); // CR }// fim loop por segundo }// fim do loop do sistema }// fim main /*===================================================================== *** MONITORA TEMPERATURA *** -> Verifica temperatura e ajusta a corrente do peltier quando necessário =====================================================================*/ void monitora_temperatura (void){ Temperatura=le_temperatura(); // Le temperatura e= Ref - Temperatura; // define erro na temperatura D=kp*e; // Determina D como proporcional ao erro // Se o D for if(D>0){ if(D>DUTY_MAX){ // Se modulo de D for maior que o duty máximo D=DUTY_MAX; //Limita módulo de D } DUTY=D; // Duty igual ao módulo de D if(Resfria==1){ // Se está resfriando Resfria=0; // Para de resfriar DUTY=0; // Zera Duty
52
} return; } D=0-D; if(D>DUTY_MAX){ // Se modulo de D for maior que o duty máximo D=DUTY_MAX; //Limita módulo de D } DUTY=D; // Duty igual ao módulo de D if(Resfria==0){ // Se não está resfriando Resfria=1; // Começa a resfriar DUTY=0; // Zera Duty } return; } /*===================================================================== *** LE TEMPERATURA *** -> Lê a temperatura no LM92 com 13bits e converte para temperatura*10 em oC -> Exemplo: 0b0000110010000(saída do LM92 para 25oC) ==> temp=250(saída da função) ====================================================================*/ unsigned long le_temperatura (void){ unsigned char auxiliar; long Temp_binario; //---------------------------START----------------------------------------------------- IICC1_TX = 1; // sinaliza transmissão IICC1_MST = 1; // gera start //---------------------------TRANSM--------------------------------------------------- IICD = 0b10010001; delay(5); while (IICS_TCF==0) // enquanto transmitindo pela i2c { } delay(5); //---------------------------ACK_LM--------------------------------------------------- // aguarda fim da transmissão if (IICS_RXAK == 1) // se não recebeu o ack { IICC1_MST = 0; // gera stop; delay(2); envia_serial('e'); envia_serial('3');
53
return 0; } delay(4); //---------------------------RECEBE--------------------------------------------------- IICC1_TX = 0; // sinaliza recepção delay(1); auxiliar = IICD; // inicia recepção (dummy read) delay(2); IICC1_TXAK = 0; // sinaliza transmitir ACK while (IICS_TCF==0) // enquanto recebendo da i2c { } auxiliar = IICD; // lê byte + significativo da temperatura delay(2); //--------------------------ACK_MESTRE------------------------------------------------ //--------------------------ARMAZENA_DADO--------------------------------------------- //envia_dado_bin(auxiliar); Temp_binario=auxiliar<<8; // salva byte (+) significativo //--------------------------RECEBE---------------------------------------------------- IICC1_TXAK = 1; // sinaliza transmitir NACK while (IICS_TCF==0) // enquanto recebendo da i2c { } IICC1_TX = 1; // sinaliza transmissão ==> evita zerar TFC auxiliar = IICD; // lê byte (-) significativo da temperatura //--------------------------NACK_MESTRE---------------------------------------------- //--------------------------STOP----------------------------------------------------- IICC1_MST = 0; // gera stop; delay(2); //--------------------------ARMAZENA_DADO--------------------------------------------- Temp_binario=Temp_binario + auxiliar;// salva MS Byte + LS Byte //|Sign|T11|T10|T9|T8|T7|T6|T5|T4|T3|T2|T1|T0|CRIT|HIGH|LOW| Temp_binario=Temp_binario>>3; //|Sign|T11|T10|T9|T8|T7|T6|T5|T4|T3|T2|T1|T0| return Temp_binario; //(expl: para 25oC => 0 0001 1001 0000) }
54
/*===================================================================== *** INICIALIZAÇÃO *** -> Procedimentos de inicialização =====================================================================*/ void inicializa(void) { configura_portas(); configura_clock(); configura_i2c(); configura_tpm(); configura_rtc(); configura_sci (); delay(20); while (ICSSC_OSCINIT == 0) { } } //*==================================================================== //*** CONFIGURA PORTAS *** -> Configura portas do microcontrolador como saída ou entrada //===================================================================*/ void configura_portas(void) { PTBDD_PTBDD2 = 1; // peltier H_LEFT -->RESFRIA PTBDD_PTBDD3 = 1; // peltier H_RIGTH -->AQUECE PTBD_PTBD2 = 0; // peltier H_LEFT OFF PTBD_PTBD3 = 0; // peltier H_RIGTH OFF } /*===================================================================== *** CONFIGURA CLOCK *** -> Configura o clock do barramento ====================================================================*/ void configura_clock(void) { SOPT1_COPT = 0; // desabilita watchdog SOPT2_T1CH1PS = 1; // Configura TPM1CH1 em PTC1 SOPT2_T1CH0PS = 1; // Configura TPM1CH0 em PTC0 //CLKS=0(FLL)|RDIV=111(/128)|IREFS=0(clkref:EXT)|IRCLKEN=0(desable)|IREFSTEN=0| ICSC1 = 0b00111000; // configura clock //BDIV=00(/1)|RANGE=1(Hfreq)|HGO=0(Lgain)|LP=0(lowPow)|REFS=1(OscExt) //|ERCLKCN=1(EnabExclk))|EREFSTN=0(disbInStop)| ICSC2 = 0b00100110; // 16MHz(busclock) /* delay(500); while (ICSSC_OSCINIT == 0) { } */ }
55
/*===================================================================== *** CONFIGURA RTC *** -> o real time conter p/ clock de 1kHz =====================================================================*/ void configura_rtc(void) { // RTCMOD = valor de comparação para resetar o contador... RTCMOD = 19;//50; // RTCCNT(valor do contador)=RTCMOD => RTIF=1 e RTCCNT=0 //|RTIF=X(cont=mod)|RTCLK=00(clk1k)|RTIE=0(Int. desab)|RTCPS=1000(presc.x1)| RTCSC = 0b00101111;//0b00001000; // configura RTC } /*===================================================================== *** CONFIGURAI2C *** -> Configura a taxa de transmissão da i2C -> Habilita I2C =====================================================================*/ void configura_i2c(void) { IICF = 0b10011101; // configura taxa de transmissão i2c 50kHz? IICC1_IICEN = 1; // habilita i2c } /*===================================================================== *** CONFIGURAÇÃO INICIAL TPMs *** -> Define configurações iniciais das portas TPM =====================================================================*/ void configura_tpm(void) { //TOF=0|TOIE=0(Int.desabilidada)|CPWMS=0|CLKSB:A=01(busclck)|PS2:0=011(bus/8)| TPM1SC = 0b00001011; // configura clock TPM1 em 2MHz(16 MHz/8) TPM1MOD = 4000; //500Hz // configura periodo de 2ms (2MHz/4000=500Hz) //CH1F=0/CH1IE=0(Int.des.)|MS1B:A=10(Alig.PWM)|ELS1B:A=10(0 on Compare)| XX | TPM1C0SC = 0b00101000; // CH1 função PWM aligned TPM1C0V = 0; // configura Duty de 0, inicialmente } /*===================================================================== *** CONFIGURA SERIAL *** -> Define modo de operação da SCI =====================================================================*/ void configura_sci (void) { //|LBRDIE=0('LBKDIF'Int.des)|RXEDGIE=0('RXEDGIF'Int.Des)|SBR[12:8]=0 SCIBDH = 0b00000000; //|(Baund rate divisor)SBR[7:0]= 00110100 => Baund rate = Busclk/(16*SBR)| SCIBDL = 0b00011010; // Baud rate de 38400 bps, com oscilador externo;
56
//LOOPS=0(Txd!=RxD)|SCIWAI=0|RSRC=0|M=0(8bit)|WAKE=1|ILT=0|PE=0(sem parid.)|PT=0| SCIC1 = 0b00000000; // define: operação start+8 bits+1stop,... //TIE=0('TDRE'Interrup.desab)|TCIE=0('TC'I.d)|RIE=0('RDRF'I.d)|ILIE=0('IDLE'I.d)| //...TE=1(Trasm. hab)|RE=1(Receptor hab)|RWU=0(wak.contr.des)|SBK=0(break.des)| SCIC2 = 0b00001100; // habilita transmissão e recepção. //TDRE=0|TC=0|RDRF=0|IDLE=0|OR=1|NF=0|FE=0|PF=0| SCIS1 = 0b00001000; // flag IDLE setada quando linha em 1 por "longo tempo" } /*===================================================================== *** ENVIA DADO SERIAL *** -> Envia 'dado' pela serial, com 3 digitos (XX,X) =====================================================================*/ void envia_dado_serial (unsigned long dado, unsigned short virgula) { // envia ASCII do digito '*' //envia_serial((dado/1000)+0x30); dado = dado %1000; envia_serial((dado/100)+0x30); // |*|-|-| dado = dado % 100; envia_serial((dado/10)+0x30); // |/|*|-| dado = dado % 10; if(virgula==0){ envia_serial(','); } envia_serial((dado)+0x30); // |/|/|*| envia_serial(' '); // termina de enviar - explo: "12,3 " } /*===================================================================== *** ENVIA DADO TEMPERATURA *** -> Converte e envia temperatura pela serial, com 3 digitos (XX,X) =====================================================================*/ void envia_dado_temperatura (unsigned long temp) { if(temp & 0x1000){ // se negativo envia_serial('-'); } temp=temp & 0xFFF; temp=625*temp; // Converte de binario para 0,0001oC temp=temp/1000; // temp = temperatura*10 (expl: 25oC => temp=250) envia_dado_serial(temp,0); }
57
/****************** ENVIA SERIAL ********************************************* / / * Eniva byte pela serial */ void envia_serial (char b) { while (SCIS1_TC == 0) { } //aguarda fim da transmissão SCID = b ; // envia dado (char:'b') pela SCI while (SCIS1_TC == 0) { } //aguarda fim da transmissão } /****************** RECEBE SERIAL ********************************************* * Recebe dado pela serial */ void recebe_serial (void)//unsigned char tlimite) { aux = SCID; if(recebido=='p'){ //para e espera receber próximo dado pela serial while (!SCIS1_RDRF) // aguarda receber proximo byte { } } recebido = SCID; aux=0; } /****************** TIMEOUT ********************************************* / / * Conta 0,5 segundos e retorna 1 */ unsigned char timeout(unsigned char tmax) // retorna 1 quando for chamada durante tmax segundos { if (RTCSC_RTIF) // se passar um segundo { RTCSC_RTIF = 1; // zera a flag RTIF to++; } if (to>tmax) { to=0; return 1; } return 0; }
58
/****************** DELAY ***************************************************** / * Cria função delay */ void delay (unsigned long time) { for (t = 0; t<time;t++) { } }
FIM