Sensor de Temperatura com Termistor no Arduino – NTC e PTC

Neste artigo vou mostrar a utilização do sensor de temperatura termistor no Arduino. O termistor é um componente eletrônico cuja resistência elétrica varia de acordo com a temperatura. Por este motivo, aliado ao fato de ser um componente de baixo custo, o termistor é muito utilizado como sensor de temperatura.

 

Termistores, nunca vi … Ou será que já vi por aí ?!

O termistor é utilizado como sensor em muitas aplicações, desde termômetros medicinais, eletrodomésticos até em algumas aplicações industriais. Por serem componentes baratos e simples de se utilizar, são utilizados nas formas mais variadas.

Dada a sua simplicidade e versatilidade, vamos mostrar a utilização do termistor com o Arduino para a leitura de temperatura. Em outras palavras, vamos fazer o projeto de um termômetro utilizando um termistor e uma placa Arduino.

 

NTC e PTC

Existem, basicamente, dois tipos de termistor. Um deles é de coeficiente de temperatura negativo (NTC, do inglês Negative Temperature Coefficient) enquanto o outro tipo possui coeficiente de temperatura positivo (PTC, do inglês Positive Temperature Coefficient).

O termistor NTC possui variação de resistência inversamente proporcional a temperatura, isto é, quando a temperatura aumenta o valor da sua resistência elétrica diminui.

O PTC apresenta variação de resistência diretamente proporcional a temperatura. Portanto, quando a temperatura aumenta, o valor da resistência elétrica do termistor PTC também aumenta.

O aspecto físico de alguns modelos de termistores pode ser visto na Figura 1.


Figura1: Aspecto físico dos termistores. Fonte: electrical4u.com

 

A variação da resistência elétrica de um termistor, em geral, não acompanha de forma linear a variação de temperatura. A relação entre resistência elétrica e temperatura é um parâmetro do componente. Assim sendo, esta correlação é disponibilizada pelo fabricante, normalmente na forma de uma tabela ou fórmula.

 

Simbologia e especificações dos termistores

Os símbolos elétricos utilizados para a representação de termistores são apresentados na Figura 2.


Figura 2: Símbolos do termistor.

 

Estes são os símbolos comumente utilizados e esquemas elétricos.

Quanto as principais especificações dos termistores, você deve estar atento para com:

  • A sua resistência elétrica padrão, normalmente especificada a uma temperatura de 25 °C. Por exemplo, um NTC de 10 kΩ apresenta uma resistência elétrica de 10 kΩ a uma temperatura de 25 °C.
  • A máxima capacidade de dissipação de energia, em W. Uma vez que o termistor é um resistor, a circulação de corrente elétrica pelo componente tem como consequência a dissipação de potência. Para a aplicação, deve-se ter em mente ainda que a circulação de corrente elétrica pelo termistor provoca o aumento da sua temperatura. Portanto, você deve estar atento para que esta corrente de polarização seja de um valor muito baixo.

 

O termistor como sensor de temperatura no Arduino

Para a utilização do termistor como sensor de temperatura é necessário o emprego de um meio de conversão da resistência em temperatura. Logo, a forma mais simples é projetar um divisor resistivo. Este arranjo é muito simples, semelhante ao que fizemos no artigo sobre a utilização do sensor de luz LDR com o Arduino.

 


Figura 3: Circuito para medição de temperatura usando o ADC do Arduino.

 

O resistor R1 possui valor fixo e tem a função de polarização do Termistor T1. 

Quando há variação de temperatura no termistor T1, este modifica o valor da sua resistência elétrica. Quando isso acontece, o valor da tensão no nó de junção do Termistor T1 com o Resistor R1 é modificado, uma vez que o circuito obedece a Lei de Ohm.

Este ponto de junção é conectado ao Conversor Analógico Digital (ADC) do Arduino para medição desta tensão.

Com a medição desta tensão o valor de resistência elétrica do Termistor T1 é calculado. Uma vez que este valor seja conhecido, basta aplicar um dos métodos para obter o valor da temperatura: Tabela de correspondência ou Equação matemática.

 

Método Tabela de correspondência

Neste método, basta que você programe, no Arduino, uma tabela com os valores de temperatura. Estes valores são acessados utilizando como índice o valor lido no ADC do Arduino. 

Na Figura 4, você pode ver uma tabela de correspondência entre essas 3 variáveis (resistência do NTC, valor do ADC e temperatura correspondente).

 

Figura 4: Tabela de conversão resistência-tensão-temperatura.
Fonte: http://sparks.gogo.co.nz/ntc_thermistor.html

 

Método Equação matemática

Conforme explicado, o desafio deste circuito é obter o valor da resistência do termistor T1, que chamarei de R_{T1} através da leitura da tensão, doravante Vo. Considere você ainda o fato de que o ADC do Arduino tem uma resistência elétrica muito alta. Logo, ele não drena corrente elétrica do circuito.

Assim, ao alimentar o circuito da Figura 3, uma corrente elétrica circula através de R_{T1} e de R1. Esta corrente elétrica, que chamarei de i_s, tem valor dado por:

i_s = \frac{5 V} {R_{T1} + R1}

Uma vez que você tenha esta definição, fica fácil de verificar que a tensão de saída do circuito, Vo, é obtida de:

Vo = i_s R1 \right i_s = \frac{Vo} {R1}

Como a leitura do Arduino fornece o valor de Vo, o que precisamos fazer é apenas rearranjar estas duas fórmulas para obtermos o valor de R_{T1}:

Vo = \frac{5 R1} {R_{T1} + R1}

Rearranjando esta equação, de modo a isolar R_{T1}:

R_{T1} + R1 = \frac{5 R1} {Vo} \right R_{T1} = \frac{5 R1 - R1} {Vo}

Simplificando:

R_{T1} = \frac{4 R1} {Vo}

Uma vez que o valor de R1 é fixo e conhecido, chegamos a fórmula para calcular o valor da resistência do Termistor.

Com o valor da resistência do termistor, vamos ao cálculo da temperatura.

O termistor é um componente não linear, portanto serão necessários alguns cálculos específicos para obter o valor da temperatura.

Desse modo, existem algumas possibilidades: Utilizar tabelas, método de Stenhairt-Hart e o método do fator Beta.

A não linearidade é percebida pela variação de resistência elétrica do componente em função da temperatura: Na faixa de temperaturas baixas, o termistor responde com grande variação de resistência em função de uma variação pequena de temperatura. Entretanto, em altas temperaturas a variação de resistência tem intensidade menor.


Figura 5: Curva da resistência VS temperatura do NTC.

 

Método de Stenhair-Hart

Este método é governado pela seguinte equação:

T = \frac{1} {A + B ln(R) + C (ln(R))^3}

 

Nesta equação, A, B e C são parâmetros numéricos, R é a resistência elétrica do termistor e T é a temperatura, em graus Kelvin.

O parâmetro B é indicado pelo datasheet do componente e os parâmetros A e C, as vezes você encontrará no datasheet e outras será necessário realizar um procedimento experimental. 

Encontrando os parâmetros A, B e C do NTC

Os parâmetros A, B e C podem ser de difícil aquisição, ainda mais se você não dispor do datasheet do NTC. Então vou te ensinar a usar um método prático pra conseguir estes valores.

Primeiro, meça o termistor em três temperaturas diferentes, as quais você saiba o valor. As temperaturas devem ser espaçadas uniformemente e separadas por pelo menos 10 graus. Eu usei as temperaturas de 60°C, 40°C e 20°C. Medi as temperaturas com uma sonda termopar, dessas que acompanham os multitestes.

 


Figura 6: Termopar e NTC juntos, para medição de temperatura e resistência

 

Você pode fazer da seguinte maneira: Coloque um pouco de água mineral em um recipiente e insira o conjunto da Figura 6 dentro.  Aqueça acima de 60°C (62 ~ 63°C). Aguarde a temperatura cair e estabilizar em  60°C. Anote o valor da resistência do NTC. Após, adicione ao poucos, água fria, até a mistura estabilizar em 40°C. Anote o valor de resistência do NTC. Por ultimo, pode utilizar água fria (da geladeira ou da torneira, dependo da época do ano ou de onde estiver) pra consegui estabilizar em 20°C. Anote o valor de resistência do NTC.

Eu coletei os seguintes valores:

T1=  60°C = 333,15°K    ->  R1= 2550 ohms

T2=  40°C = 313,15°K    ->  R2= 5650 ohms

T3=  20°C = 293,15°K    ->  R3= 13950 ohms

Para converter de graus Celsius (°C)  para Kelvin (°K)  basta adicionar 273,15 do valor.

Agora, usando as formulas da Figura 7, faremos os cálculos.


Figura 7: Formulas para calculo  das constantes A, B e C

 

L1 = ln(2550) = 7,843      L2 = ln(5650) = 8,639     L3 = ln(13950) = 9,543

Y1 = 1/333,15 = 0,003     Y2 = 1/313,15 = 0,003193     Y3 = 1/293,15 = 0,003411

γ2 = (0,003193 – 0,003) / (8,639 – 7,843) = 0,00024097

γ3 = (0,003411 – 0,003) / (9,543 – 7,843) = 0,000241012

C = (( 0,000241012 – 0,00024097) / ( 9,543 – 8,639)) * ( 1 / ( 7,843 + 8,639 + 9,543))
= 0,0000000017590952

B = 0,003193 – 0,0000000017590952 * (7,8432 + 7,843*8,639 + 8,6392)
B = 0,000240612

A = 0,003 – 7,843*(0,000240612 + 0,0000000017590952*7,8432)
A = 0,0011133

 

Método do Fator Beta

Neste método, a equação utilizada é:

T = T_0 + \frac{B} {ln \bigg(\frac{R} {R_0} \bigg) }

Nesta equação, B é uma constante, que depende do componente, devendo ser verificada no datasheet do termistor. R0 é a resistência do termistor a temperatura ambiente T0, normalmente especificada para 25 °C. R é a resistência medida do termistor, isto é, o parâmetro que depende da temperatura atual.

Além disso, você deve atentar para o fato de que a fórmula utiliza valores de temperatura em graus Kelvin (°K). Nesse caso, 25 °C = 298,15 °K.

Adicionalmente, o fator B é obtido em função da curva de resposta do termistor, isto é, da sua relação Resistência/Temperatura.

 

 


Montando seu termômetro com NTC e Arduino

 

Agora que a teoria foi apresentada, vamos à prática! O nosso propósito é fazer um termômetro simples, porém funcional e relativamente preciso.

Vou te mostrar como fazer um termômetro usando um NTC, pois ele é mais facilmente encontrado nas lojas de componentes. Entretanto, você pode usar um PTC, bastando alterar um pouco a programação.

Para a montagem você vai precisar dos seguintes itens:

  • Arduino Uno
  • Resistor 10kΩ
  • Fios Jumper’s
  • Protoboard
  • NTC de 10k

 Montando o circuito

Monte seu circuito conforme a Figura 6. Certifique-se que ele esteja desligado durante a montagem.

 


Figura 6: Montagem do circuito no protoboard.

 

Esta montagem é simples e rápida, logo você conseguirá faze-la sem problemas. Caso tenha duvidas, escreva nos comentários, que lhe ajudaremos o mais rápido possível.  

O sensor NTC é o componente de corpo transparente.  Esse era componente que mais se aproximou do formato de um NTC, no Thinkercad. Mas como falei no inicio o texto, há muitos formatos e tamanhos para esses componentes. 

 

Usando o método de Stenhair-Hart

 

Inicialmente vamos testar o método Stenhair-Hart. Basta usar o código abaixo e ver a magica acontecer.

 

Usando o método do Fator Beta

 

Abaixo temos o código do Fator Beta. Esse método leva em conta somente o fator Beta do NTC, sendo um pouco menos preciso que o método anterior, por considerar menos variáveis na conversão resistência para temperatura.

 

 

A montagem do circuito é simples e na Figura 7 você pode ver a que eu fiz.

 


Figura 7: Montagem final no protoboard.

 

Usando o monitor serial, você poderá ver a temperatura medida pelo NTC. 

Figura 8: Print da tela do monitor serial do Arduino

 


Conclusão

 

Neste artigo, nós mostramos dois métodos de conversão da resistência do NTC para temperatura: Stenhair-Hart e Fator Beta.

Agora cabe a você testa-los e definir qual método melhor te atende.

Compartilhe seus resultados conosco! Isto certamente vai ajudar muitas pessoas que também estão iniciando a programar Arduino.

Caso você teve alguma dificuldade com este artigo ou queira comentar a sua implementação, por favor deixe um comentário com a sua dúvida. Teremos prazer em ajudá-lo(a)!

 

1 thought on “Sensor de Temperatura com Termistor no Arduino – NTC e PTC”

E aí, gostou? Opine. Assim poderemos melhorar.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *