Calibrando NTC (prévia do proximo projeto)

Olá humano!

Como parte do projeto que estou fazendo (próximo post), precisei calibrar dois sensores de temperatura do tipo NTC (Negative Temperature Coefficient). Uma breve e simplória descrição de um NTC é um resistor com um coeficiente de temperatura (muitas vezes chamado de TempCo ou somente TC) tão alto que o torna um sensor.

Imagine que você tenha um resistor de valor próximo a 15 kΩ na temperatura ambiente, e conforme você aumenta esta temperatura, a resistência deste resistor diminua, e o contrario para quando você diminua a temperatura, pronto, você tem a mão um (resistor) sensor do tipo NTC. Mas como (quase) nada neste mundo gosta de matemática muito simples, a resposta do NTC não é linear, é mais próxima de uma exponencial (ou como veremos mais abaixo, consegui uma melhor aproximação com um função polinomial de 5º grau). Abaixo temos as fotos do sensor utilizado, em sua embalagem (figura 01) e em detalhe (figura 02):

Sensor NTC utilizado
Figura 01: Sensor NTC utilizado
Detalhe do sensor NTC
Figura 02: Detalhe do sensor NTC

Bom a questão é a seguinte, se você procurar informações no google sobre NTC, vai encontrar textos muito melhores, descrevendo o funcionamento e os princípios destes sensores. Porém o que quero trazer aqui, são dados reais, de dois NTC que usarei no próximo projeto que estou bolando aqui.

A questão é a seguinte, comprei dois NTC (foto 1) aqui e sei que cada um apresenta uma curva de resistência versus temperatura característica. Como estes sensores vão ser utilizados na faixa de temperatura de 10ºC a 25ºC, resolvi levantar esta curva de resistência para estes dois exemplares, na faixa de 0ºC a 40ºC. (Obs: os sensores NTC que utilizei são da marca FullGauge, modelo SB-41, caso esta informação possa ser útil)

O método que utilizei foi o seguinte, usei um termopar (tipo K) que veio junto com meu multímetro da Agilent (U1272A), ‘amarrado’ com um fio de cobre (de bitola bem pequena) no sensor NTC a ser calibrado (Figura 03), e coloquei ambos dentro de uma pequena garrafa térmica (Figura 04). Dentro desta garrafa eu coloquei gelo (feito com agua destilada), de forma que quando o gelo derrete-se parcialmente (enquanto ainda houve-se pequenos pedaços de gelo) obtemos agua a 0ºC.

Detalhe dos sensores NTC e termopar
Figura 03: Detalhe dos sensores NTC e termopar
garrafa térmica utilizada
Figura 04: Detalhe da garrafa térmica utilizada

A partir dai fui anotando as temperaturas lidas no termopar (conjunto termopar + multímetro) e do NTC (NTC + multímetro) e adicionando agua em temperatura mais elevada, primeiramente agua na temperatura ambiente (por volta de 23ºC naquele dia) e depois agua quase a 90ºC, afim de obter as diferentes temperaturas para medição das variáveis. Abaixo, nas figuras 05 e 06, podemos verificar o set-up utilizado.

Set-up
Figura 05: Set-up utilizado
Detalhe da garrafa térmica
Figura 06: Detalhe da garrafa térmica

Vale dizer que o uso da garrafa térmica melhorou muito o processo (inicialmente tentei em um pote plástico, mas as temperaturas eram muito diferentes no fundo, laterais e topo do recipiente, devido a troca de temperatura com ambiente) e que devido ao fato do NTC possuir um tamanho razoável, a sua resistência demorava (em torno de 40 a 60 segundos) a chegar num valor estável, acredito que devido a inércia térmica do corpo do sensor. O procedimento que usei foi o de adicionar pouca agua mais quente a garrafa térmica, agitar a garrafa afim de misturar a agua e obter uma temperatura uniforme em todo o liquido, e aguardar alguns segundos até a leitura da resistência (do NTC) se acomodar em um valor, dessa forma então eu anotava a temperatura do termopar e a resistência do NTC.

Antes de confirmar o uso do termopar, comparei a leitura deste com a leitura de um termômetro de mercúrio (Hg), de uso em laboratório químico, que assumi como referencia, dado que seus valores de precisão são os melhores dos equipamentos que possuo. Na figura 07, abaixo, podemos verificar a comparação do valor de 0ºC.

termopar + termometro de Hg
Figura 07: Verificação da temperatura com termopar + termômetro de Hg

Isso feito, com os dois sensores (NTC_01 e NTC_02) passei a etapa de gerar os gráficos, e obter a melhor aproximação das funções de resposta dos mesmos. Abaixo podemos verificar as curvas de ambos sensores (figuras 08 e 09):

Curva de resposta do NTC_01
Figura 08: Curva de resposta do NTC_01
Curva de resposta do NTC_02
Figura 09: Curva de resposta do NTC_02

Após utilizar a função fitting pude encontrar uma função polinomial (de 5º grau) que melhor se aproxima destas curvas, para cada sensor. Estas funções podem ser vistas nas próximas figuras (10 e 11):

NTC_01 + Função
Figura 10: Curva de resposta do NTC_01 + função de 5º grau correspondente
NTC_02 + Função
Figura 11: Curva de resposta do NTC_02 + função de 5º grau correspondente

Podemos verificar nestes gráficos que as funções polinomiais encontradas representam muito bem os dados experimentais. Desta forma nossa vida fica facilitada, pois podemos ler a resistência do sensor e, no pior algoritmo, podemos encontrar a temperatura com 20 multiplicações e 5 somas, podendo no melhor caso ser encontrada com 8 multiplicações e 5 somas.

Para comparação dos sensores, gerei ainda um ultimo gráfico (figura 12) que representa ambas curvas sobrepostas:

Curvas sobrepostas
Figura 12: Curvas de resposta dos NTC_01 e NTC_02 sobrepostas

Como podemos ver, as curvas são muito próximas, de modo que, dependendo da aplicação (necessidade de precisão, etc…) poderíamos utilizar a mesma função para ambos os sensores.

A titulo de informação, em muitos casos vemos pessoas utilizando uma aproximação linear para uma faixa de temperatura, neste caso o melhor (maior) intervalo onde uma reta poderia descrever razoavelmente a função é de 2ºC a 10ºC.

A função polinomial que melhor descreve os sensores (na média) é a seguinte:T(r)=A+B_{1}x^{5}+B_{2}x^{4}+B_{3}x^{3}+B_{4}x^{2}+B_{5}x

Até a próxima!

Double-Precision DAC (Dual DAC) – Parte I

Olá humano!

Por volta de um mês (ou dois) atrás eu estava verificando o datasheet de um conversor DAC (Digital Analogic Converter) da Microchip, o MCP4921, e no final do documento nos é apresentado uma serie de aplicações mais comuns envolvendo o dito cujo. Uma destas aplicações sugeridas é o uso de dois conversores deste, mais um amplificador operacional, para que consigamos uma resolução maior do que a dos conversores usados.

Cabe aqui um alerta antes de prosseguir com o texto. Neste post, ou experimento, só quero verificar o funcionamento do circuito proposto na pratica, não quero discutir qualquer outra característica ou custo-benefício. Dito isto, prossigamos.

Como tenho dois conversores destes por aqui (conversor DAC de 12 bits), resolvi fazer um circuito para verificar o funcionamento. O circuito é baseado no proposto pelo fabricante, em seu datasheet (link), na pagina 32, item 6.7. No datasheet o circuito é apresentado pelo titulo Designing a Double-Precision DAC.

Com base no datasheet desenhei o circuito abaixo:

Diagrama do circuito.
Figura 01: Circuito utilizado no experimento.

Onde utilizei um PIC 18F4550 (antes de começarem os blablabla, usei este PIC pois tenho alguns dele aqui disponíveis, pronto, só por isso, eu sei que é mais do que o necessário neste caso…) para poder controlar os DAC, e comunicar com o computador através da porta serial, para que eu possa variar os valores dos conversores através do computador. Por conta da interface com a serial do computador, foi necessário o uso do CI (Circuito Integrado) MAX232. Como referencia de tensão para os DAC utilizei um MC1541, uma referencia de tensão de 4.096V também da Microchip. O circuito conta ainda com um conector para gravação ICSP (In Circuit Serial Programming) do PIC.

O amplificador operacional que utilizei foi o TLE2142, não o LM358 como mostra o esquema elétrico acima. A principal razão é que as características do TLE2142 são muitos melhores. Então porque o LM358 no esquema acima? Simples, o Eagle não tem na sua biblioteca o TLE2142, porém ele é pino-a-pino compatível com o LM358, então para facilitar usei o LM mesmo.

Sobre a parte do amplificador operacional, deixei três contatos para que pudesse medir a tensão em três pontos distintos do circuito, SV7 onde podemos medir a tensão na entrada do Amp Op (saída dos DACs depois dos resistores), SV6, saída do primeiro Amp Op que deve ser igual a saída dos DACs uma vez que este Amp Op esta ligado como um seguidor de tensão, e por fim SV5 que esta conectado a saída do segundo Amp Op (mesmo encapsulamento) que deve apresentar um valor entre 0 e -10V uma vez que o segundo Amp Op esta ligado como um amplificador inversor com ganho em torno de 4.50.

Com o circuito desenhado, a placa ficou com esta cara:

Layout da Placa de Circuito Impresso.
Figura 02: Layout da Placa de Circuito Impresso.

Depois desta etapa, a placa prensada, corroída, limpa, furada, lixada e estanhada ficou com esta cara:

Placa finalizada, lado da solda.
Figura 03: Placa finalizada, lado da solda.
Placa lado dos componentes.
Figura 04: Placa lado dos componentes.

 

 

 

 

 

 

 

 

 

 

Depois de conseguir uma boa placa, sem curto circuitos ou falhas nas trilhas,  pude então prosseguir com a solda dos componentes. Uma vez soldados bastou utilizar o [propaganda ON] Gravador de PIC USB [propaganda OFF] e através do conector ICSP, fazer o download do código na memoria do microcontrolador. A placa montada pode ser vista na próxima figura:

Firmware:

O firmware do PIC foi escrito e compilado no MikroPascal PRO PIC da Mikroeletronika (www.mikroe.com), que é um compilador que eu já uso a algum tempo e possuo a licença (comprei a alguns anos atrás). Não sei se o código compila em uma versão gratuita deste compilador, de qualquer forma, junto com os outros arquivos deste projeto disponibilizarei o arquivo .hex para a memoria do PIC, já compilado.

O firmware é bastante simples, basicamente lê valores enviados pela porta serial do computador e envia estes valores para os DACs, de forma a obtermos a saída desejada.

Devido ao fato do post estar ficando grande, vou separa-lo em 2 partes. Abraço!

Parte II