Início › Componentes › Temperatura
⬤ Intermédio

🌡️ Sensor de Temperatura LM35

Medir temperatura ambiente e apresentar em graus Celsius.

⏱️ Duração: 30 min
🧩 Componentes: LM35

Sensor LM35

O LM35 é um sensor de temperatura de precisão calibrado em graus Celsius. A sua saída é uma tensão linear: 10mV por cada °C. A 25°C a saída é 250mV.

📌 Pinagem (vista de frente, com texto para ti)

PinoFunçãoLigação
1 (esquerdo)VCC5V
2 (centro)VOUT (sinal)A0
3 (direito)GNDGND
⚠️Verifica bem a orientação do LM35. Ligado ao contrário aquece instantaneamente e danifica-se. A face plana do sensor fica voltada para ti ao ligar conforme a tabela acima.

Exercício 1 — Ler Temperatura

ex1_temperatura.ino
const int LM35 = A0;

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

void loop() {
  int leitura = analogRead(LM35);
  
  // Converter para tensão (mV)
  float tensao = leitura * (5000.0 / 1023.0); // em mV
  
  // LM35: 10mV por grau Celsius
  float temperatura = tensao / 10.0;
  
  Serial.print("Temperatura: ");
  Serial.print(temperatura, 1);
  Serial.println(" °C");
  
  delay(1000);
}

Exercício 2 — Alerta de Temperatura

LED vermelho acende quando a temperatura ultrapassa um limiar.

ex2_temp_alerta.ino
const int LM35   = A0;
const int LED_OK  = 11;   // Verde
const int LED_HOT = 12;   // Vermelho
const float LIMIAR = 28.0; // °C

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

void loop() {
  float temp = lerTemperatura();
  Serial.print(temp); Serial.println(" °C");
  
  if (temp > LIMIAR) {
    digitalWrite(LED_HOT, HIGH);
    digitalWrite(LED_OK, LOW);
  } else {
    digitalWrite(LED_OK, HIGH);
    digitalWrite(LED_HOT, LOW);
  }
  delay(500);
}

float lerTemperatura() {
  int leitura = analogRead(LM35);
  float tensao = leitura * (5000.0 / 1023.0);
  return tensao / 10.0;
}
Próximo: LCD → Ver: Estação Meteorológica