Início›Módulos›Temperatura Analógica
⬤ Iniciante · Grupo 3 — Temperatura e Humidade

🌡️ Sensor Analógico de Temperatura

⏱️ 25 min 🧩 Sensor temp. analógico · Analógico · A0 📦 Módulo #16

Nesta página

🔬 Sobre o Sensor Analógico de Temperatura

O sensor analógico de temperatura (#16) produz uma tensão proporcional à temperatura. Tipicamente baseado num termístor NTC ou num CI LM35 em versão modular. Não precisa de biblioteca — basta converter o valor ADC (0–1023) em graus Celsius com uma fórmula matemática.

Saída
Analógica
analogRead() → 0–1023
Pino
A0
Qualquer pino analógico
Tensão
5V
VCC do Arduino
Resolução
~0.5°C
Depende do ADC de 10 bits
Fórmula
10 mV/°C
Para módulos LM35
Sem biblioteca
✓
Apenas analogRead()
ℹ️
O módulo #16 pode ser baseado em LM35 (saída linear 10mV/°C) ou num termístor NTC (saída não linear, requer equação de Steinhart–Hart). Verifica o chip no módulo — se veres 'LM35' gravado, usa a fórmula linear.

🔌 Pinagem

VCCAlimentação → 5V do Arduino
GNDMassa → GND do Arduino
AOSaída analógica → A0 do Arduino

💻 Converter ADC em Graus Celsius

ex_temp_analogica.ino
#define TEMP_PIN A0
#define VREF     5.0   // Tensão de referência do ADC (5V)

float lerTemperaturaLM35() {{
  int raw = analogRead(TEMP_PIN);
  // LM35: 10mV por °C → Vout = T(°C) × 10mV
  float mV = raw * (VREF * 1000.0) / 1023.0;
  return mV / 10.0;  // 10mV/°C
}}

float lerTemperaturaNTC() {{
  // Para termístor NTC 10kΩ com resistência série 10kΩ
  int raw = analogRead(TEMP_PIN);
  float R = 10000.0 * raw / (1023.0 - raw);  // Resistência do NTC
  float T = 1.0 / (1.0/298.15 + log(R/10000.0)/3950.0);
  return T - 273.15;  // Kelvin → Celsius
}}

void setup() {{ Serial.begin(9600); }}

void loop() {{
  float tLM35 = lerTemperaturaLM35();
  Serial.print("Temp (LM35): "); Serial.print(tLM35, 1);
  Serial.println(" C");
  delay(1000);
}}

📊 Monitorização com Alerta de Limiar

ex_temp_alerta.ino
#define TEMP_PIN   A0
#define LED_OK     12
#define LED_ALERTA 13
#define TEMP_MAX   30.0

float lerTemp() {{
  return analogRead(TEMP_PIN) * 5000.0 / 1023.0 / 10.0;
}}

void setup() {{
  pinMode(LED_OK, OUTPUT);
  pinMode(LED_ALERTA, OUTPUT);
  Serial.begin(9600);
}}

void loop() {{
  float t = lerTemp();
  Serial.print("T: "); Serial.print(t,1); Serial.println(" C");
  digitalWrite(LED_OK,     t <= TEMP_MAX);
  digitalWrite(LED_ALERTA, t >  TEMP_MAX);
  delay(500);
}}

🔬 Comparação: Analógico vs. DHT11

CritérioSensor Analógico (#16)DHT11 (#19)
BibliotecaNão precisaAdafruit DHT (obrigatória)
ParâmetrosTemperatura apenasTemperatura + Humidade
Velocidade de leituraImediata (<1ms)Mínimo 2s entre leituras
Precisão típica±0.5°C (LM35) / ±1–2°C (NTC)±2°C
Tensão de saídaAnalógica contínuaProtocolo digital série
Ideal paraLeituras frequentes, sem bibliotecaProjetos completos com humidade

🏆 Para ir mais longe

Kit B 37 · PR.FT6_15 · Arduino UNO · Raspberry Pi · Início · led.dge.medu.pt