USANDO TABELAS DE TEMPERATURA COM SENSOR NTC (REF392)

Usar sensor NTC com microcontroladores de 1K de Flash é possível? Veja este artigo!

Os sensores de temperatura do tipo NTC (Negative Temperature Coeficient) são baratos e disponíveis facilmente no mercado de peças eletrônicas. Mas tem um preço: a sua complexidade de uso.

Pela sua natureza, os NTCs são componentes que variam a sua resistência elétrica com a temperatura de forma não linear. Portanto, exige que a rotina de leitura realize cálculos matemáticos para ‘estimar’ a temperatura conforme a resistência. A fórmula mais utilizada é a de SteinHart&Hart, conforme vemos abaixo:

T = 1 / A + B(ln (R)) + C(ln(R))^3

Sendo:

T = a temperatura do NTC em graus Kelvin;

A, B e C = parâmetros da fórmula SteinHart&Hart obtidos de 3 pares de amostras de resistência/temperatura do NTC usado;

R = a resistência do NTC em Ohms;

Realizar estes cálculos exige o uso de microcontroladores com mais de 2Kbytes de Flash sob pena de faltar espaço de memória para a aplicação na hora de compilar.

Então, o que pode ser feito para usar NTC com microcontroladores de pouca memória flash? É fazer os cálculos antecipadamente e colocar os resultados em uma tabela. O microcontrolador terá apenas que acessar esta tabela sem necessitar realizar nenhum cálculo matemático. O grande problema é que o programador vai ter de criar esta tabela. Isto nem sempre é fácil. Muitos usam planilhas de Excel para obter os valores. Outros preferem criar pequenos aplicativos para isto. Talvez encontre até quem forneça tais tabelas em C on-line. Encontrei um exemplo no site Sebulli, do Sr. Gerd Bartelt, no seu artigo ‘Table based NTC Code Generator‘. Este programa on-line gera uma tabela com temperaturas (array em C) e uma função em C que retorna a temperatura conforme o valor lido no conversor analógico digital. Dependendo do número de pontos de interpolação e a resolução, pode ser gerado um erro considerável na medida final, o que precisa ser levado em conta.

Com isto em mente, resolvi também fazer um aplicativo facilitador para gerar tabelas e rotinas em C, prontas para uso, baseado no que foi postado pelo Gerd Bartelt no GitHub, ao qual damos créditos e agradecimentos pelo seu trabalho. No meu caso, optei por fazer a tabela, não com valores de temperatura, mas com valores do ADC e uma função que retorna somente em décimos de graus centígrados. As interpolações também são fixas, de 5 em 5 graus. Chamei simplesmente de ‘ NTC_Fácil‘. Este aplicativo roda no próprio browser (navegador) sendo escrito em HTML e Javascript. Ele ficou com a seguinte aparência ao abrir no browser:

Para usar basta abrir com o navegador (usei FireFox) e definir as opções como: tipo de circuito do resistor Rbias (pull up ou pull down) e digitar o seu valor. Em seguida você deverá digitar o valor da resistência do NTC a temperatura de 25° C, o valor do Beta do NTC que vai usar, e finalmente a faixa de temperatura pretendida na medição. Dependendo da faixa de medição, a rotina irá sugerir o melhor valor do resistor Rbias (resistor que fica em série com o NTC sendo pull up ou pull down). O cálculo desta sugestão é feito usando a fórmula:

Rbias ideal= (RNTC tmin * RNTC tmax) ^ 0,5

Onde:

RNTC tmin= valor da resistência do NTC na temperatura mínima escolhida;

RNTC tmax= valor da resistência do NTC na temperatura máxima escolhida;

(ou seja: a raiz quadrada da multiplicação da resistência na temperatura mínima pela resistência na temperatura máxima do NTC na faixa escolhida).

Após definir os valores e clicar no botão ‘Gerar Código Agora’ veremos o código em C. Este deverá ser copiado e colado no seu programa C , que rodará no microcontrolador. Caso necessite, altere a forma como as variáveis são denominadas, pois muda conforme o compilador (ex. int8 = char (8 bits) , int16 = int (16 bits)).

Abaixo temos um exemplo de um termômetro usando esta técnica.

Obs. Esta montagem é experimental, sendo de caráter didático, montada apenas em placa experimental (do tipo “Protoboard”), sujeita a “bugs” ainda não detectados. Está sendo fornecido os arquivos para que cada hobista possa alterar o programa segundo suas necessidades. O aplicativo NTC_Fácil é uma versão Beta, sujeita a ter bugs. A precisão da leitura estará sempre condicionada a precisão do NTC, a tolerância do resistor Rbias (use menor que 1%), da estabilidade da tensão de referência do ADC, e a presença de ruídos. Para aplicações caseiras dará uma boa aproximação da temperatura real. Portanto, seu uso correrá por sua conta e risco!

Os arquivos para este termômetro de exemplo pode ser baixados aqui:

Termometro_NTC_Tabela

Aplicativo gerador de código C : NTC_Fácil

Site Sebulli: Table based NTC Code Generator

Manuais:

PIC16F676 datasheet

Application Note Vishay – sobre NTC

DXM – calculadora NTC

Curiosidades:

De onde vieram as instruções do seu DNA?

As maravilhas da criação – o projeto da vida

Outros assuntos:

Como acabar com o cyberbullyig?

Vença a solidão ajudando outros

Ensine seu filho a mostra gratidão

O que é um amigo de verdade?

Como posso acabar com a tristeza?

Até o próximo artigo!

One thought on “USANDO TABELAS DE TEMPERATURA COM SENSOR NTC (REF392)

Deixe um comentário

Back To Top