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)
| Pino | Função | Ligação |
|---|---|---|
| 1 (esquerdo) | VCC | 5V |
| 2 (centro) | VOUT (sinal) | A0 |
| 3 (direito) | GND | GND |
⚠️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;
}