Mostrando postagens com marcador temperatura. Mostrar todas as postagens
Mostrando postagens com marcador temperatura. Mostrar todas as postagens

segunda-feira, 19 de dezembro de 2016

dsPIC Temperature and Humidity Monitor


Este post demonstra a construção de um Monitor de Umidade e Temperatura com um dsPIC30F4013.




O circuito


As principais características do circuito são:

- utiliza o dsPIC30F4013, um Controlador Digital de Sinal - DSC da Microchip. Opera @30 MIPS;
- sensor de temperatura LM35 da National Semiconductor;
- sensor de umidade capacitivo HCH-1000 da Honeywell;
- conversor capacitância/frequência com NE555 da Texas Instruments;
- conversor serial TTL/RS232 com MAX232;
- interface gráfica com display GLCD 128x64 padrão KS0108B e 3 teclas;

- leitura da temperatura pelo ADC-12-bit;
- leitura da capacitância/frequência através do Input Capture;
- envia dados para o PC pela UART;

- calibração via software pelo display;
- salva parâmetros na EEPROM interna;

- criado programa do PC no Visual Basic 6.0;
- firmware do dsPIC desenvolvido no MPLAB IDE com o MPLAB C30.



A Figura abaixo mostra o diagrama em blocos do circuito e os diversos dispositivos conectados ao dsPIC.
Diagrama em blocos do Circuito

Para o controle foi utilizado o dsPIC30F4013, um Controlador Digital de Sinal - DSC da Microchip.
O oscilador interno está configurado com PLL x16 para operar com 30 MIPS, ou 117,92 MHz, frequência necessária para o Input Capture ler o sensor de umidade.


DSC dsPIC30F4013



A Medição da Umidade


O sensor de umidade utilizado é um HCH-1000-001, da Honeywell, do tipo capacitivo.

Sensor de umidade HCH-1000


As especificações deste sensor são mostradas na tabela a seguir, disponível no data sheet do HCH-1000.


Especificação do sensor de umidade. Fonte data sheet HCH-1000 Honeywell.


 O gráfico Capacitância x Umidade mostra a resposta do sensor de umidade que possui a sensibilidade típica de 0,6 pF/%RH.

Resposta do sensor de umidade. Fonte data sheet HCH-1000 Honeywell.

A Figura abaixo mostra o sensor de umidade capacitivo HCH-1000-001 montado na matriz de contatos (protoboard).


Sensor de umidade e CI 555 montado no protoboard.


O ADC do dsPIC não consegue ler diretamente a grandeza "capacitância". Um ADC lê tensão.
A Honeywell apresenta em seu artigo  "HCH-1000 Series Humidity Sensor Calibration and Output Circuit Data" um conversor de capacitância para frequência utilizando o temporizador de precisão 555.

O CI 555é muito utilizado em eletrônica. Abaixo é apresentado a pinagem e o circuito equivalente.
Circuito equivalente do CI NE555. Fonte data sheet Texas Instruments.

O data sheet do NE555 da Texas Instrument mostra a ligação deste CI para funcionar como um oscilador astável,
Oscilador astável com NE555. Fonte data sheet Texas Instruments.
O data sheet ainda forneceas fórmulas para os cálculos de período e frequência de acordo com os componentes externos utilizados: R1, R2 e C.


Fórmulas para frequência de saída do oscilador astável com 555. Fonte data sheet Texas Instruments.

A Honeywell mostra em seu artigo  "HCH-1000 Series Humidity Sensor Calibration and Output Circuit Data" a sugestão para a montagem do sensor de umidade capacitivo HCH-100 com o temporizador 555.

Circuito de aplicação do HCH-1000 com 555. Fonte: Honeywell.

A fórmula para determinar a frequência de saída é apresentada a seguir.

Fórmulas para determinar frequência de saída do HCH-1000 com 555. Fonte: Honeywell.


Com a conversão de capacitância em frequência se torna possível fazer a medição do sinal da capacitância do sensor com o dsPIC. Para esta tarefa é utilizado o módulo Input Capture (IC1) do DSC.




A Medição da Temperatura


Para a medição de temperatura foi utilizado o CI LM35, um sensor de temperatura de precisão calibrado diretamente para graus Celsius ºC (Centígrado).
Possui saída analógica linear com fator de escala +10 mV/ºC.

Sensor de temperatura LM35. Fonte: data sheet National Semiconductor.

O dsPIC lê diretamente o sinal do sensor pelo conversor analógico-digital ADC interno de 12-bit.
A figura abaixo mostra o sensor montado na placa juntamente com  as teclas para navegação no display.


Sensor de temperatura LM35 montado na placa.


A Interface Serial com o Computador

Os dados medidos e calculados pelo dsPIC, temperatura, umidade e capacitância, são enviados para o computador através do módulo de comunicação UART do DSC.
O CI MAX232 foi utilizado como interface entre o dsPIC e o PC, trata-se de um conversor de níveis TTL/RS232.

Placa de interface serial com MAX232.

O circuito completo do protótipo do Monitor de Umidade e Temperatura é mostrado a seguir.

O circuito completo do dsPIC Temperature and Humidity Monitor.



A Interface Gráfica


Como interface gráfica foi utilizado um display GLCD 128x64 padrão KS0108B.
Na tela de medição são mostrados os valores atuais de temperatura [ºC] e umidade relativa do ar [%RH].
 

Na tela de Monitoramento são mostrados:
- a temperatura. O dsPIC lê a tensão do sensor LM35 pelo ADC e calcula a temperatura pelo fator de escala 10mV/ºC.
- o conteúdo do registro Timer3, utilizado pelo módulo Input Capture IC1.
- o período em us calculado pelo dsPIC através do valor de Timer3. Representa o período do sinal capturado do CI 555, conversor capacitância/frequência.
- a capacitância em pF calculada pelo dsPIC através do sinal do período da frequência capturada pelo IC1. A fórmula utilizada é a do oscilador astável 555, mostrada anteriormente.
- a umidade relativa do ar em %RH calculada pelo dsPIC através do sinal de capacitância encontrado.




A tela de Calibração serve para a calibração da medição de umidade por software.
Os seguintes parâmetros estão disponíveis:
- valores de R1 e R2 em [kohm], os 2 resistores do circuito oscilador astável com o 555, para que o dsPIC calcule a capacitância do sensor de umidade.
- valor de Cp, que corresponde aos valores da capacitância parasita em paralelo com o sensor de umidade (capacitância do protoboard) + capacitância de offset para correção do desvio da capacitância típica do sensor, indicada no datasheet do sensor HCH-1000.

 Comparando a Medição

 Como saber se a medição da umidade relativa do ar está correta?

O primeiro método foi comparar o valor medido do dsPIC com a previsão meteorológica de 2 sites: o accuweather.com e o climatempo.com.br.
Veja a seguir o histórico da temperatura ambiente, umidade relativa do ar e ponto de orvalho.


Previsão do tempo. Fonte: accuweather.com.


Previsão do tempo. Fonte: accuweather.com.



Previsão do tempo. Fonte: climatempo.com.br.



O segundo método foi executar um teste simples e rápido para determinar a umidade relativa do ar através da medição da temperatura ambiente e a temperatura no ponto de orvalho.
Este método é descrito pelo Prof. Fernando Lang da Silveira na matéria "Umidade relativa: o que é e como se determina?" disponível no site da UFRGS/ Centro de Referência para o Ensino de Física - CREF/ Instituto de Física- iF. Clique aqui para ver esta matéria na íntegra.

O primeiro passo é a medição da temperatura ambiente.

Medição da temperatura ambiente.


O segundo passo é a medição da temperatura da água no ponto de orvalho.
Utiliza-se uma caneca de alumínio com água natural.
Adiciona-se gelo gradativamente à água até que a caneca  "perca o brilho" da parte externa de metal e comece a ficar "opaca". Isto indica que se a temperatura da caneca está na temperatura do ponto de orvalho e pequenas gotículas de água começam a se formar na parede externa da caneca.
Anota-se a temperatura da água para o ponto de orvalho.

Determinando a temperatura da água no ponto de orvalho.

Detalhe da marca feita na caneca para identificar o ponto de orvalho.


Detalhe ponto de orvalho atingido.



Detalhe na caneca, marca "x", perca do brilho na parede externa da caneca mostra que se atingiu o ponto de orvalho.


Detalhe ponto de orvalho atingido.

Foi consultada uma tabela de termoresistência para determinar a temperatura através do valor de resistência medida do sensor do tipo PT100.


Tabela de variação da resistência com a temperatura para bulbo de resistência (PT100). Fonte: ECIL.


Da tabela de termoresistência foram extraídos os valores das temperaturas em grau Celsius e convertidas para Kenvin.


Dados do teste para determinar umidade relativa de acordo com a temperatura ambiente e o ponto de orvalho.


O Prof.Lang define a seguinte equação em sua matéria, para determinar a umidade relativa do ar de acordo com a temperatura da água natual (temperatura ambiente) e a temperatura da água no ponto de orvalho (temperaturas em Kelvin):

Equação para determinar a Umidade Relativa do ar. Fonte: Prof. Lang.
Jogando os valores encontrados no teste na fórmula é encontrado o valor de 0,7569 ou 75,69 %RH.

Conclui-se com este teste prático que os valores medidos pelo dsPIC, 24,95 °C e 74,97 %RH, estão coerentes com a temperatura ambiente e a umidade relativa do ar.



O Programa Monitor do Computador

Os dados de temperatura, umidade e capacitância são enviados para o computador através da comunicação serial UART do dsPIC. Um conversor de níveis TTL/RS232 é utilizado para conectar o dsPIC à porta serial do computador (porta COM1).

A comunicação está configurada para 9600 bps 8-N-1.

Com a utilização do Hyperterminal do Windows é possível visualizar o pacote de mensagens enviado do dsPIC para o computador a cada 2 segundos.

Pacote de mensagem serial vista no Hyperterminal do Windows.

O programa dsPIC Temperature and Humidity Monitor é visualizado na Figura abaixo. Ele foi desenvolvido no Visual Basic 6.0.

O programa mostra os valores atuais de temperatura, umidade relativa do ar e capacitância.

Também são mostrados o bargraph das variáveis e um gráfico temporário para temperatura e umidade.

O programa dsPIC Temperature and Humidity Monitor.

A cada 1 minuto os valores de temperatura, umidade relativa do ar e capacitância são gravados em um arquivo TXT de data log.

Arquivo TXT de data log.

O gráfico abaixo mostra o resultado de 30 horas de medição com o protótipo do dsPIC Temperature and Humidity Monitor. Os dados do arquivo de data log foram utilizados para montar o gráfico no Excel.

Os dados coletados estão com a resolução de 1 °C, 1 %RH e 1 pF, ou seja, sem as casas decimais, mas podem ser enviados pelo dsPIC com as casas decimais, bastando implementar o código.

Gráfico da temperatura e umidade coletado com o dsPIC.


Observação: os teste foram feitos durante um dia/noite com o tempo nublado a chuvoso.


O protótipo do circuito do dsPIC Temperature and Humidity Monitor em funcionamento pode ser visualizado no vídeo abaixo.







Referencias:

MICROCHIP. dsPIC30F3014/4013 High-Performance, 16-Bit Digital Signal Controllers. Data sheet.
www.microchip.com

ECIL. Tabela de variação da resistência com a temperatura para bulbo de resistência (PT100).
www.ecil.com.br/upload/produto/pdf/1291296955.pdf


Prof. Fernando Lang da Silveira. Umidade relativa: o que é e como se determina? UFRGS/ Centro de Referência para o Ensino de Física - CREF/ Instituto de Física- iF.
http://www.if.ufrgs.br/cref/?area=questions&id=711


HCH-1000 Series Humidity Sensor Calibration and Output Circuit Data. Honeywell. Article.
http://www.digikey.com/en/pdf/h/honeywell-sensing-and-control/hch-1000-series-humidity-sensor-calibration

NE555. xx555 Precision Timers. Texas Instruments. Data sheet.     
www.ti.com/lit/ds/symlink/ne555.pdf             

LM35 Precision Centigrade Temperature Sensors. Texas Instruments. Data sheet. 
www.ti.com/lit/ds/symlink/lm35.pdf


sábado, 31 de janeiro de 2015

dsPIC PID Temp - Um Controlador Digital de Temperatura com Algoritmo PID

Dentre os métodos de estabilização de malhas de controle de processos, o Algoritmo PID se destaca como o mais utilizado hoje nos vários setores industriais. Este artigo demonstra um Controlador Digital de Temperatura que faz uso deste algoritmo.



A Microchip disponibiliza para a sua família de Controladores Digitais de Sinais (DSCs), dsPIC30F, a biblioteca DSP.h que possui funções para processamento digital de sinais como operações com vetores, matrizes, filtros FIR e IIR, FFT e o Algoritmo PID, que é demonstrado neste projeto.

A função do circuito é controlar a temperatura de um resistor modulando a sua potência. Esta é uma aplicação simples para aprendermos a utilizar o algoritmo PID.

A Figura 1 mostra algumas características do circuito.

Figura 1 - Características do circuito

O diagrama de interligação entre o DSC e os periféricos do circuito com os respectivos sinais pode ser visto na Figura 2.


Figura 2 - Diagrama de interligação

O DSC escolhido foi o dsPIC30F4013, mostrado na Figura 3,  que possui todos os periféricos necessários para a interface já integrados, como conversor A/D de 12 bits, saída PWM e módulo UART para comunicação serial. 


Figura 3 - O controlador Digital de Sinais dsPIC30F4013


Funcionamento do Circuito

O dsPIC recebe o sinal de temperatura de 10 mV / °C de um sensor linear de temperatura LM35 através da entrada analógica AN9. Esta é a Variável de Processo (PV), como é conhecida no ramo de automação industrial. O Valor Desejado, ou Set-Point (SP), é ajustado pelo usuário através de três teclas e um display gráfico GLCD 128x64 padrão KS108B, que é utilizado como IHM (Interface Homem Máquina). Os três parâmetros do PID, Proporcional (kp), Integral (ki) e Derivativo (kd), que definem a resposta do controle também podem ser ajustados pelo usuário, conforme mostrado na Figura 4. 

 Figura 4 - Tela do display GLCD para ajustes de SP, Kp, Ki e Kd

O controlador então executa o algoritmo PID que fornece a Saída do controle, e a converte em um sinal PWM (Modulação por Largura do Pulso) que através de um drive com MOSFET controla a potência do resistor, que é a Variável Manipulada (MV). A face do sensor de temperatura é fixada junto ao corpo do resistor e fornece o feedback, ou realimentação, para o controle. A Figura 5 mostra a placa com o resistor de potência, o MOSFET, sensor de temperatura e botões de ajuste.

Figura 5 - Placa de interface conectada ao dsPIC


Na Figura 6 temos o diagrama de blocos do sistema de controle com a função de transferência de cada ação do controlador PID. O termo z-1, no domínio da frequência, aparece devido termos um controle discreto no tempo, isto é, baseado em amostragens.

Figura 6 - Diagrama em Blocos com a Função de Transferência do controlador

O cálculo executado pelo algoritmo PID é expresso como:
Saída [n] = Saída [n-1] +
                 + Erro [n] * Coeficiente_a +
                 + Erro [n-1] * Coeficiente_b +
                 + Erro [n-2] * Coeficiente_c
Sendo:
Coeficiente_a = ( Kp + Ki + Kd )
Coeficiente_b = - ( Kp + 2 * Kd )
Coeficiente_c = Kd

Onde:
Saída [n] é a saída do controle para o aquecimento.
Erro é a diferença entre o set-point e a PV (temperatura atual).
Kp, Ki e Kd são os parâmetros do PID.
[n], [n-1] e [n-2] são o N-ésimo valor da variável armazenada na memória e identifica este como um controle no tempo discreto.

Obs.: Todos os dados estão em valores fracionários, isto é, numa escala de -1 a 1, para a execução das instruções assembler de DSP do dsPIC. Todo o algoritmo PID é executado em 60 ciclos de máquina, possibilitando a execução de Controles em Tempo Real.

O programa do dsPIC

O programa foi desenvolvido em linguagem C no ambiente MPLAB IDE. 

São utilizadas 3 funções da biblioteca para os cálculos do algoritmo PID:
PIDInit ( ): inicializa o algoritmo, limpa o histórico e a saída do controlador PID;
PIDCoeffCalc ( ): gera os coeficientes a, b e c do algoritmo. É executada sempre que o valor de kp, ki ou kd é alterado;
PID ( ): executa os cálculos do algoritmo propriamente dito a cada 0,5 segundos.

No início do programa são configurados os PORTs de I/O e iniciados os periféricos em glcd_inicializa ( ), uart_init ( ),init_adc12 ( ), pwm_init ( ) e PIDInit ( ). O programa passa então a um loop executando a função PID( ), lendo as teclas e atualizando a tela do display GLCD.

O arquivo main.c contém o programa principal. DSP.h e PID.s pertencem à biblioteca da Microchip para executar os cálculos do PID. PID_GLCD.hex é o arquivo gerado pelo compilador para ser gravado no dsPIC.


O programa do PC

Para a análise do desempenho do controle e da verificação da estabilidade do sistema os dados de temperatura, set-point e saída do PWM são enviados para o computador a cada 2 segundos e apresentados em um gráfico em tempo real por um programa desenvolvido em Visual Basic, que recebe estas informações do Controlador pela porta serial RS 232, utilizando o CI MAX232 para conversão dos níveis de sinais. Um gráfico da temperatura também pode ser visualizado no display gráfico GLCD. Esta interface gráfica é vista na Figura 7.

Figura 7 - Programa dsPIC PID TEMP que roda no PC

A Figura 8 exibe o gráfico da temperatura gerado no display GLCD.

Figura 8 - Gráfico da temperatura gerado no display GLCD

Para não se perderem os dados de set-point, kp, ki e kd ajustados pelo usuário, após uma desenergização, os mesmos podem ser salvos na memória EEPROM do dsPIC através da opção “salvar dados” disponível no menu do display gráfico.

Figura 9 - Dados salvos na memória EEPROM


Teste do programa e Sintonia do Controle

A Figura 10 apresenta a resposta do controlador a uma variação da entrada. O gráfico foi gerado pelo programa com os parâmetros kp em 0,4, ki em 0,10 e kd em 0,04.
Figura 10 - Resposta do controle a uma variação de entrada

Na Figura 11 pode ser visto o diagrama elétrico do Controlador Digital de Temperatura

Figura 11 - Diagrama elétrico do circuito

e na Figura 12 ilustramos a montagem do protótipo realizado.
Figura 12 - Protótipo do circuito


Conclusão

Devido a sua simplicidade, baseando-se em apenas três constantes das ações P(Proporcional), I(Integral) e D(Derivativo), o algoritmo PID é o método de controle para estabilidade de processos mais utilizado nas indústrias e pode ser facilmente implementado nos projetos através da biblioteca disponível para os dsPICs conforme foi demonstrado neste artigo.

Assista ao vídeo do circuito em funcionamento:

Video do dsPIC PID TEMP



Referencia Bibliográfica

Nise, N. S. Engenharia de Sistemas de Controle. 5 ed. Rio de Janeiro: LTC, pp. 364 - 373, 277- 279, 356-399, 2009.
Ogata, H. Engenharia de Controle Moderno. 4 ed. São Paulo: ABDRC, pp. 49 -55, 230 -235, 557 - 573, 2007.
MICROCHIP. PID Control Library. Disponível em: www.microchip.com Acesso em 21 maio 2011.
MACORATTI, J. C. Desenvolvimento de Programas em Visual Basic. Disponível em: www.macoratti.net Acesso em 21 maio 2011.
MICROCHIP. Code Examples. CE019 - Proportional Integral Derivative (PID) controllers & closed-loop control. Disponível em: http://ww1.microchip.com/downloads/en/DeviceDoc/CE019_PID.zip

* Projeto Publicado na Revista Saber Eletrônica 454.