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:
Aplicativo gerador de código C : NTC_Fácil
Site Sebulli: Table based NTC Code Generator
Manuais:
Application Note Vishay – sobre 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
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
Tem de iniciar a sessão para publicar um comentário.
Sensor NTC,
Infelizmente, não fornece medições precisas.