1
Medindo temperaturas com alta acurácia e alta resolução, utilizando ADS1247 e PT100 John W. B. de Araujo , Daniel F.C. Ferrando, e Edson M. Kakuno [[email protected]] Universidade Federal do Pampa Campus Bagé Campus Bagé, 96413-170, Bagé, RS Brasil Agradecimentos O presente trabalho foi realizado com apoio do Programa Institucional de Bolsa de Iniciação à Docência PIBID (Edital 2014), da CAPES - Coordenação de Aperfeiçoamento de Pessoal de Nível Superior Brasil e impresso com apoio do Programa de Extensão Observatório de Aprendizagem (PROEXT-MEC 2009). A Unipampa pelo apoio ao projeto. Introdução e Objetivos Neste trabalho propomos desenvolver um sistema de medidas de temperaturas utilizando um conversor analógico digital (ADC) de 24 bits (o que proporciona uma alta resolução nas medidas) com amplificador de instrumentação de ganho programável (PGA) e duas fontes de corrente integradas no mesmo chip (ADS1247 da TI Texas Instruments), e utilizar um PT100 (sensor de temperatura, utilizando filme de Platina) da Omega, especificado para acurácia de +/- 0,10K a 273 K e +/- 0,27K a 373 K (F2222-100-1/3B). No futuro pretendemos melhorar a acurácia, fazendo a calibração contra um PT100 com acurácia 3 vezes maior (classe B/10). Aqui apresentamos a evolução do trabalho para obter as primeiras medidas, utilizando a plataforma Arduino para poder ler os dados do ADC via comunicação SPI (Serial Peripheral Interface Bus). Metodologia Utilizamos o procedimento proposto pela TI no documento 3-Wire RTD Measurement System Reference Design, -200°C to 850°C”, disponível em seu site, com pequenas alterações, (medidas a quatro fios e outras). O documento é bem completo e mostra passo-a-passo a seqüência de cálculos dos componentes. O foco deste trabalho não é dominar a programação do Arduino, contudo chamamos a atenção para alguns pontos: a) existe duas versões de comunicação SPI, utilizamos a versão mais recente que funciona com as versões mais novas do Arduino (utilizamos a versão 1.6.12); b) observamos falhas em executar o Arduino no sistema operacional Windows XP e Windows Vista, tivemos sucesso nos sistemas Windows 8 e Ubuntu. Para a programação do ADS1247, ressaltamos que a estrutura temporal deve ser observada e caso deseje testar a comunicação através da medida de temperatura interna do chip, a mesma independente do ganho ajustado no PGA, o sistema assume ganho 1. O projeto de hardware, juntamente com o código fonte e observações e dicas podem ser encontras em: https://github.com/KakiArduino/ADS1247. Conclusões Atualmente já conseguimos realizar a comunicação via SPI e programar uma rotina que retorna a temperatura lida pelo Pt100. Nosso próximos passos serão, confeccionar uma placa de circuito impresso para minimizar o ruído, implementar a rotina SPI em um firmware para um PIC18F, comunicando com o Python. Referências KakiArduino. Disponivel em:<https://github.com/KakiArduino/ADS1247> Acessado em 20/10/2013 Texas Instruments. Disponível em: < http://www.ti.com/lit/ug/slau520a/slau520a.pdf >. Acesso em 20 /10 de 2013. Texas Instruments. Disponível em: < http://www.ti.com/lit/ds/sbas426h/sbas426h.pdf> Acesso em 20 /10 de 2013. Omega. Disponivel em:<ttp://www.omega.com/subsection/rtd-elements.html> Acessado em 20/10/2013 Figura 2: Comunicação SPI entre o Arduino e o ADS1247, de baixo para cima: serial clock, saída de dados do Arduino, saída de dados do ADS e pulso indicando dados disponível emitido pelo ADS. Resultados e Discussões Medir temperaturas à primeira vista parecer ser um procedimento bastante trivial, pois praticamente qualquer grandeza física apresenta uma dependência com a temperatura, contudo determinar o valor real da temperatura (acurácia) com precisão melhor que 1% ou melhor que 0,1 K (Kelvin, possui a mesma variação da escala de graus Célsius) não é possível com procedimentos rotineiros. Como referência, o LM35D, muito utilizado com a plataforma Arduíno, apresenta uma acurácia de +/- 0,6 K a 298 K (temp. ambiente) e +/- 0,9 K de 273 K a 373 K, estes são valores típicos e pode ser até 2 vezes maior, segundo o Data Sheet da TI (Texas Instruments). Figura 1: Montagem com o Pt100 em detalhe (2,2x2,2 mm²), ADS1247 e Arduino. Pt100 Figura 3: da esquerda para a direitas: código no Arduino ID, pagina em que o projeto está disponível e dado retornado pelo Arduino: código do ADS, resistência do Pt100 e temperatura.

Medindo temperaturas com alta acurácia e alta resolução ......alta resolução nas medidas) com amplificador de instrumentação de ganho programável (PGA) e duas fontes de corrente

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Medindo temperaturas com alta acurácia e alta resolução ......alta resolução nas medidas) com amplificador de instrumentação de ganho programável (PGA) e duas fontes de corrente

Medindo temperaturas com alta

acurácia e alta resolução,

utilizando ADS1247 e PT100 John W. B. de Araujo, Daniel F.C. Ferrando, e Edson M.

Kakuno [[email protected]]

Universidade Federal do Pampa Campus Bagé

Campus Bagé, 96413-170, Bagé, RS – Brasil

Agradecimentos O presente trabalho foi realizado com apoio do Programa Institucional de Bolsa de

Iniciação à Docência – PIBID (Edital 2014), da CAPES - Coordenação de

Aperfeiçoamento de Pessoal de Nível Superior – Brasil e impresso com apoio do

Programa de Extensão Observatório de Aprendizagem (PROEXT-MEC 2009). A

Unipampa pelo apoio ao projeto.

Introdução e Objetivos Neste trabalho propomos desenvolver um sistema de medidas de temperaturas

utilizando um conversor analógico digital (ADC) de 24 bits (o que proporciona uma

alta resolução nas medidas) com amplificador de instrumentação de ganho

programável (PGA) e duas fontes de corrente integradas no mesmo chip (ADS1247

da TI – Texas Instruments), e utilizar um PT100 (sensor de temperatura, utilizando

filme de Platina) da Omega, especificado para acurácia de +/- 0,10K a 273 K e +/-

0,27K a 373 K (F2222-100-1/3B). No futuro pretendemos melhorar a acurácia,

fazendo a calibração contra um PT100 com acurácia 3 vezes maior (classe B/10).

Aqui apresentamos a evolução do trabalho para obter as primeiras medidas,

utilizando a plataforma Arduino para poder ler os dados do ADC via comunicação

SPI (Serial Peripheral Interface Bus).

Metodologia Utilizamos o procedimento proposto pela TI no documento “3-Wire RTD

Measurement System Reference Design, -200°C to 850°C”, disponível em seu

site, com pequenas alterações, (medidas a quatro fios e outras). O documento é

bem completo e mostra passo-a-passo a seqüência de cálculos dos componentes.

O foco deste trabalho não é dominar a programação do Arduino, contudo

chamamos a atenção para alguns pontos: a) existe duas versões de comunicação

SPI, utilizamos a versão mais recente que funciona com as versões mais novas do

Arduino (utilizamos a versão 1.6.12); b) observamos falhas em executar o Arduino

no sistema operacional Windows XP e Windows Vista, tivemos sucesso nos

sistemas Windows 8 e Ubuntu. Para a programação do ADS1247, ressaltamos que

a estrutura temporal deve ser observada e caso deseje testar a comunicação

através da medida de temperatura interna do chip, a mesma independente do

ganho ajustado no PGA, o sistema assume ganho 1. O projeto de hardware,

juntamente com o código fonte e observações e dicas podem ser encontras em:

https://github.com/KakiArduino/ADS1247.

Conclusões

Atualmente já conseguimos realizar a comunicação via SPI e programar

uma rotina que retorna a temperatura lida pelo Pt100. Nosso próximos

passos serão, confeccionar uma placa de circuito impresso para

minimizar o ruído, implementar a rotina SPI em um firmware para um

PIC18F, comunicando com o Python.

Referências

KakiArduino. Disponivel em:<https://github.com/KakiArduino/ADS1247>

Acessado em 20/10/2013

Texas Instruments. Disponível em: < http://www.ti.com/lit/ug/slau520a/slau520a.pdf >.

Acesso em 20 /10 de 2013.

Texas Instruments. Disponível em: < http://www.ti.com/lit/ds/sbas426h/sbas426h.pdf>

Acesso em 20 /10 de 2013.

Omega. Disponivel em:<ttp://www.omega.com/subsection/rtd-elements.html>

Acessado em 20/10/2013

Figura 2: Comunicação SPI

entre o Arduino e o ADS1247,

de baixo para cima: serial

clock, saída de dados do

Arduino, saída de dados do

ADS e pulso indicando dados

disponível emitido pelo ADS.

Resultados e Discussões

Medir temperaturas à primeira vista parecer ser um procedimento bastante trivial,

pois praticamente qualquer grandeza física apresenta uma dependência com a

temperatura, contudo determinar o valor real da temperatura (acurácia) com

precisão melhor que 1% ou melhor que 0,1 K (Kelvin, possui a mesma variação da

escala de graus Célsius) não é possível com procedimentos rotineiros. Como

referência, o LM35D, muito utilizado com a plataforma Arduíno, apresenta uma

acurácia de +/- 0,6 K a 298 K (temp. ambiente) e +/- 0,9 K de 273 K a 373 K, estes

são valores típicos e pode ser até 2 vezes maior, segundo o Data Sheet da TI

(Texas Instruments).

Figura 1: Montagem com o Pt100 em detalhe (2,2x2,2 mm²), ADS1247

e Arduino.

Pt100

Figura 3: da esquerda

para a direitas: código

no Arduino ID, pagina

em que o projeto está

disponível e dado

retornado pelo

Arduino: código do

ADS, resistência do

Pt100 e temperatura.