DESAFIO-03: Obter a expressão que relaciona Temperatura (°C) de disparo (acionamento do ventilador) a partir dos valores de Tensão (Vcc) coletados pelo Arduino.

Passo 1

O enunciado pede: “Obter a expressão que relaciona Temperatura (°C) de disparo (acionamento do ventilador) a partir dos valores de Tensão (Vcc) coletados pelo Arduino.”
Informações que o enunciado dá:
  • Valor medido pelo Arduino é uma tensão (vou chamar genericamente de V_{\text{med}} ou V_{\text{cc}} conforme o enunciado).
  • O objetivo é converter esse valor de tensão em temperatura em graus Celsius para decidir o disparo do ventilador.
Informações importantes que não foram fornecidas no enunciado (e que normalmente são necessárias):
  • Qual sensor de temperatura está sendo usado (por exemplo: LM35, TMP36, termistor NTC, termistor com ponte, sensor digital, etc.).
  • Se a leitura é direta da tensão do sensor ou se passa por um divisor de tensão.
  • Valores do ADC do Arduino: resolução (por exemplo, 10 bits → 0 a 1023) e tensão de referência V_{\text{ref}} (por exemplo 5\\ \text{V} ou 3,3\\ \text{V}).
  • Parâmetros da termistor (se for termistor): R_0, T_0, coeficiente B ou coeficientes de Steinhart–Hart.
  • Se o enunciado pede a expressão em função da tensão medida V_{\text{med}} ou em função da leitura do ADC (contagem inteira).
Observação obrigatória: sem saber qual sensor e qual circuito foi usado, não há uma única expressão numérica final. Portanto apresentarei as derivações gerais e as fórmulas finais para os casos mais comuns (LM35, TMP36 e termistor NTC em divisor) — você poderá aplicar a que corresponde ao seu circuito substituindo os parâmetros (ex.: V_{\text{ref}}, resolução do ADC, R_0, B, etc.). Também mostro como passar da leitura do ADC para a tensão.

Passo 2

Conceito básico 1 — como converter leitura do ADC em tensão:
  • Se o Arduino fornece uma leitura inteira N (por exemplo 0\le N \le 2^{n}-1, sendo n bits de resolução), a tensão no pino é
V_{\text{med}} = \dfrac{N}{2^{n}-1}\;V_{\text{ref}}.
Expliquei as variáveis:
  • N = leitura do ADC (inteiro).
  • n = número de bits do ADC (ex.: n=10 para 10 bits).
  • V_{\text{ref}} = tensão de referência do ADC (ex.: 5\\ \text{V} ou 3,3\\ \text{V}).
  • V_{\text{med}} = tensão medida no pino analógico, em volts.
Exemplo rápido (para fixar): com n=10 e V_{\text{ref}}=5\\ \text{V}, se N=512,
V_{\text{med}}=\dfrac{512}{1023}\cdot 5\\ \text{V}\approx 2,5\\ \text{V}.

Passo 3

Caso comum A — sensor LM35 (saída linear sem offset):
  • Característica do LM35: saída 10\\ \text{mV}/^\circ\text{C}, isto é
V_{\text{out}} = 0{,}01\\ \text{V}\cdot T,
onde:
  • V_{\text{out}} é a tensão de saída do sensor em volts,
  • T é a temperatura em graus Celsius.
Isolando T:
T = \dfrac{V_{\text{out}}}{0{,}01} = 100\;V_{\text{out}}.
Se a medição vem do ADC com leitura N, usar primeiro V_{\text{med}} do Passo 2 e depois:
T = 100\;V_{\text{med}} = 100\;\dfrac{N}{2^{n}-1}\;V_{\text{ref}}.
Explico por que isso funciona: LM35 entrega uma tensão que é diretamente proporcional à temperatura, com ganho 0{,}01\\ \text{V}/^\circ\text{C}. Então multiplicando a tensão por 100 obtemos a temperatura em °C.

Passo 4

Caso comum B — sensor TMP36 (saída linear com offset):
  • Característica do TMP36: saída de 0{,}5\\ \text{V} a 0\\ ^\circ\text{C} e sensibilidade 10\\ \text{mV}/^\circ\text{C}. Ou seja
V_{\text{out}} = 0{,}5 + 0{,}01\;T.
Isolando T:
T = \dfrac{V_{\text{out}} - 0{,}5}{0{,}01} = 100\;(V_{\text{out}} - 0{,}5).
Se a medição vem do ADC:
T = 100\left(\dfrac{N}{2^{n}-1}\;V_{\text{ref}} - 0{,}5\right).
Explanação: TMP36 tem um offset de 0{,}5\\ \text{V} a zero grau; subtrai-se o offset e divide-se pela sensibilidade para obter °C.

Passo 5

Caso comum C — termistor NTC em divisor de tensão (modelo Beta, não-linear):
Situação típica: circuito com V_{\text{ref}} alimentando um divisor formado por resistor fixo R_{\text{fix}} e termistor R_T. Há duas orientações possíveis; aqui uso a orientação mais comum: resistor fixo no topo (ligado a V_{\text{ref}}) e termistor ligado ao terra, com saída V_{\text{out}} no nó entre eles. Então
V_{\text{out}} = V_{\text{ref}}\cdot \dfrac{R_T}{R_{\text{fix}} + R_T}.
Isolando R_T (passo importante para depois usar a equação térmica):
R_T = R_{\text{fix}}\cdot \dfrac{V_{\text{out}}}{V_{\text{ref}} - V_{\text{out}}}.
Expliquei as variáveis:
  • R_T = resistência do termistor a determinada temperatura,
  • R_{\text{fix}} = resistência fixa escolhida no divisor,
  • V_{\text{out}} = tensão no nó (medida pelo Arduino),
  • V_{\text{ref}} = tensão de alimentação do divisor (normalmente mesma do ADC).
Agora, necessidade de um modelo que relacione R_T a temperatura. Modelo Beta (simples e comum):
\frac{1}{T} = \frac{1}{T_0} + \frac{1}{B}\ln\!\left(\dfrac{R_T}{R_0}\right),
onde:
  • T = temperatura absoluta em kelvin ( \text{K}),
  • T_0 = referência de temperatura em kelvin (ex.: T_0 = 25^\circ\text{C} = 298{,}15\\ \text{K}),
  • R_0 = resistência do termistor a T_0 (ex.: 10\\ \text{k}\Omega a 25^\circ\text{C}),
  • B = coeficiente Beta do termistor (dado pelo fabricante),
  • \ln = logaritmo natural.
Isolando T e convertendo para °C:
T\;(\text{K}) = \dfrac{1}{\dfrac{1}{T_0} + \dfrac{1}{B}\ln\!\left(\dfrac{R_T}{R_0}\right)}.
T\;(^\circ\text{C}) = T\;(\text{K}) - 273{,}15.
Substituindo R_T em função de V_{\text{out}}:
R_T = R_{\text{fix}}\cdot \dfrac{V_{\text{out}}}{V_{\text{ref}} - V_{\text{out}}},
portanto a expressão final (em termos de V_{\text{out}}) é
T\;(\text{K}) = \dfrac{1}{\dfrac{1}{T_0} + \dfrac{1}{B}\ln\!\left(\dfrac{R_{\text{fix}}\,V_{\text{out}}}{R_0\,(V_{\text{ref}} - V_{\text{out}})}\right)}.
E em Celsius:
T\;(^\circ\text{C}) = \dfrac{1}{\dfrac{1}{T_0} + \dfrac{1}{B}\ln\!\left(\dfrac{R_{\text{fix}}\,V_{\text{out}}}{R_0\,(V_{\text{ref}} - V_{\text{out}})}\right)} - 273{,}15.
Se a medição vem do ADC com leitura N, trocar V_{\text{out}} por \dfrac{N}{2^{n}-1}\;V_{\text{ref}} dentro da expressão acima.
Comentário didático: este é um processo em duas etapas — primeiro recuperar a resistência do termistor a partir da tensão do divisor; segundo aplicar a equação térmica (Beta ou Steinhart–Hart). Steinhart–Hart dá mais precisão se tiver os três coeficientes, mas Beta é frequentemente suficiente para exercícios e para a prova.

Passo 6

Como usar essas expressões para definir um ponto de disparo do ventilador:
  • Se você quer que o ventilador ligue quando a temperatura atingir uma temperatura alvo T_{\text{set}}:
    1. Escolha o modelo que corresponde ao seu sensor (LM35, TMP36, termistor).
    2. Inverta a fórmula para encontrar a tensão de limiar V_{\text{lim}} que corresponde a T_{\text{set}}.
    3. Se você usa ADC, calcule a contagem inteira N_{\text{lim}} como
    N_{\text{lim}} = \text{round}\!\left( \dfrac{2^{n}-1}{V_{\text{ref}}}\;V_{\text{lim}} \right).
    1. No firmware do Arduino compare a leitura N com N_{\text{lim}} e acione o ventilador quando N\ge N_{\text{lim}} (ou quando T\ge T_{\text{set}}).
Exemplos numéricos rápidos (para fixar):
  • LM35, V_{\text{ref}}=5\\ \text{V}, n=10: para T_{\text{set}}=30^\circ\text{C},
V_{\text{lim}} = 0{,}01\cdot 30 = 0{,}30\\ \text{V},
N_{\text{lim}} = \text{round}\!\left(\dfrac{1023}{5}\cdot 0{,}30\right) \approx \text{round}(61{,}38)=61.
  • TMP36, para T_{\text{set}}=30^\circ\text{C},
V_{\text{lim}} = 0{,}5 + 0{,}01\cdot 30 = 0{,}80\\ \text{V},
N_{\text{lim}} \approx \text{round}\!\left(\dfrac{1023}{5}\cdot 0{,}80\right)=\text{round}(163{,}97)=164.

Passo 7

Observações práticas e dicas para prova:
  • Sempre escreva claramente qual é V_{\text{ref}} e qual é n do ADC antes de aplicar fórmulas.
  • Atenção às unidades: em todas as fórmulas use V em volts e temperaturas em kelvin quando a fórmula térmica exigir kelvin.
  • Para termistores, use os valores fornecidos no enunciado (normalmente R_0, T_0 e B). Se pedirem Steinhart–Hart, aplique a equação com os três coeficientes.
  • Se o enunciado pedir apenas "em função de V_{\text{cc}}", entregue a expressão diretamente em termos de V_{\text{cc}}; se ele der a leitura do ADC, entregue em termos de N.
  • Se quiser melhor resolução com ADC, reduza ruído (média de várias leituras) e considere usar V_{\text{ref}} estável (ex.: AREF externo).

Resposta

\text{(LM35) } T(^{\circ}\text{C}) = 100\;V_{\text{med}}
\text{(LM35 com ADC) } T(^{\circ}\text{C}) = 100\;\dfrac{N}{2^{n}-1}\;V_{\text{ref}}
\text{(TMP36) } T(^{\circ}\text{C}) = 100\;\bigl(V_{\text{med}} - 0{,}5\bigr)
\text{(TMP36 com ADC) } T(^{\circ}\text{C}) = 100\!\left(\dfrac{N}{2^{n}-1}\;V_{\text{ref}} - 0{,}5\right)
\text{(Termistor NTC em divisor, Beta) } \;T(^{\circ}\text{C}) = \dfrac{1}{\dfrac{1}{T_0} + \dfrac{1}{B}\ln\!\left(\dfrac{R_{\text{fix}}\,V_{\text{med}}}{R_0\,(V_{\text{ref}}-V_{\text{med}})}\right)} - 273{,}15
\text{(Termistor NTC com ADC) substitua } V_{\text{med}}=\dfrac{N}{2^{n}-1}\;V_{\text{ref}} \text{ na expressão acima.}ã

Exercícios relacionados