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.
#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);
}}#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);
}}| Critério | Sensor Analógico (#16) | DHT11 (#19) |
|---|---|---|
| Biblioteca | Não precisa | Adafruit DHT (obrigatória) |
| Parâmetros | Temperatura apenas | Temperatura + Humidade |
| Velocidade de leitura | Imediata (<1ms) | Mínimo 2s entre leituras |
| Precisão típica | ±0.5°C (LM35) / ±1–2°C (NTC) | ±2°C |
| Tensão de saída | Analógica contínua | Protocolo digital série |
| Ideal para | Leituras frequentes, sem biblioteca | Projetos completos com humidade |