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
ou 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 →
a ) e tensão de referência (por exemplo ou ). - Parâmetros da termistor (se for termistor):
, , coeficiente ou coeficientes de Steinhart–Hart. - Se o enunciado pede a expressão em função da tensão medida
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.:
, resolução do ADC,
,
, 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
(por exemplo , sendo bits de resolução), a tensão no pino é
Expliquei as variáveis:
-
= leitura do ADC (inteiro). -
= número de bits do ADC (ex.: para 10 bits). -
= tensão de referência do ADC (ex.: ou ). -
= tensão medida no pino analógico, em volts.
Exemplo rápido (para fixar): com
e
, se
,
Passo 3
Caso comum A — sensor LM35 (saída linear sem offset):
- Característica do LM35: saída
, isto é
onde:
-
é a tensão de saída do sensor em volts, -
é a temperatura em graus Celsius.
Isolando
:
Se a medição vem do ADC com leitura
, usar primeiro
do Passo 2 e depois:
Explico por que isso funciona: LM35 entrega uma tensão que é diretamente proporcional à temperatura, com ganho
. Então multiplicando a tensão por
obtemos a temperatura em °C.
Passo 4
Caso comum B — sensor TMP36 (saída linear com offset):
- Característica do TMP36: saída de
a e sensibilidade . Ou seja
Isolando
:
Se a medição vem do ADC:
Explanação: TMP36 tem um offset de
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 alimentando um divisor formado por resistor fixo
e termistor
. Há duas orientações possíveis; aqui uso a orientação mais comum: resistor fixo no topo (ligado a
) e termistor ligado ao terra, com saída
no nó entre eles. Então
Situação típica: circuito com
Isolando
(passo importante para depois usar a equação térmica):
Expliquei as variáveis:
-
= resistência do termistor a determinada temperatura, -
= resistência fixa escolhida no divisor, -
= tensão no nó (medida pelo Arduino), -
= tensão de alimentação do divisor (normalmente mesma do ADC).
Agora, necessidade de um modelo que relacione
a temperatura. Modelo Beta (simples e comum):
onde:
-
= temperatura absoluta em kelvin ( ), -
= referência de temperatura em kelvin (ex.: ), -
= resistência do termistor a (ex.: a ), -
= coeficiente Beta do termistor (dado pelo fabricante), -
= logaritmo natural.
Isolando
e convertendo para °C:
Substituindo
em função de
:
portanto a expressão final (em termos de
) é
E em Celsius:
Se a medição vem do ADC com leitura
, trocar
por
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
: - Escolha o modelo que corresponde ao seu sensor (LM35, TMP36, termistor).
- Inverta a fórmula para encontrar a tensão de limiar
que corresponde a . - Se você usa ADC, calcule a contagem inteira
como
- No firmware do Arduino compare a leitura
com e acione o ventilador quando (ou quando ).
Exemplos numéricos rápidos (para fixar):
- LM35,
, : para ,
- TMP36, para
,
Passo 7
Observações práticas e dicas para prova:
- Sempre escreva claramente qual é
e qual é do ADC antes de aplicar fórmulas. - Atenção às unidades: em todas as fórmulas use
em volts e temperaturas em kelvin quando a fórmula térmica exigir kelvin. - Para termistores, use os valores fornecidos no enunciado (normalmente
, e ). Se pedirem Steinhart–Hart, aplique a equação com os três coeficientes. - Se o enunciado pedir apenas "em função de
", entregue a expressão diretamente em termos de ; se ele der a leitura do ADC, entregue em termos de . - Se quiser melhor resolução com ADC, reduza ruído (média de várias leituras) e considere usar
estável (ex.: AREF externo).