O Projeto
Uma estação meteorológica que mede temperatura (LM35) e luminosidade (LDR), apresenta os valores no LCD e acende LEDs de alerta para condições extremas.
🌡️
Linha 1 do LCD
Temperatura em °C medida pelo LM35.
☀️
Linha 2 do LCD
Luminosidade em percentagem medida pelo LDR.
🔴
LED Vermelho
Acende quando temperatura > 28°C.
🟡
LED Amarelo
Acende quando está muito escuro (luz < 20%).
Ligação Completa
🔌 Todas as ligações
| Arduino | → | Componente |
|---|---|---|
| A0 | → | LM35 (pino central / VOUT) |
| A1 | → | LDR + Resistência 10kΩ → GND |
| Pino 12 | → | LCD RS |
| Pino 11 | → | LCD E |
| Pino 5 | → | LCD D4 |
| Pino 4 | → | LCD D5 |
| Pino 3 | → | LCD D6 |
| Pino 2 | → | LCD D7 |
| Pino 9 | → | Resistência 220Ω → LED Vermelho |
| Pino 10 | → | Resistência 220Ω → LED Amarelo |
| 5V | → | LM35 (VCC) + LDR (pino 1) + LCD (VDD, pin15) |
| GND | → | LM35 (GND) + LCD (VSS, RW, pin16) + LEDs (−) |
🔧Não te esqueças do potenciómetro de contraste do LCD (pino V0 do LCD ao cursor do pot).
Código
estacao_meteorologica.ino
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int LM35 = A0;
const int LDR = A1;
const int LED_HOT = 9; // Vermelho
const int LED_DRK = 10; // Amarelo
const float TEMP_MAX = 28.0;
const int LUZ_MIN = 200; // em 0–1023
void setup() {
pinMode(LED_HOT, OUTPUT);
pinMode(LED_DRK, OUTPUT);
lcd.begin(16, 2);
lcd.print("Estacao Meteo");
delay(2000);
lcd.clear();
}
float lerTemperatura() {
int leitura = analogRead(LM35);
float tensao = leitura * (5000.0 / 1023.0);
return tensao / 10.0;
}
int lerLuz() {
return analogRead(LDR);
}
void loop() {
float temp = lerTemperatura();
int luz = lerLuz();
int luzPct = map(luz, 0, 1023, 0, 100);
// Linha 1: Temperatura
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temp, 1);
lcd.print((char)223); // °
lcd.print("C ");
// Linha 2: Luminosidade
lcd.setCursor(0, 1);
lcd.print("Luz: ");
lcd.print(luzPct);
lcd.print("% ");
// Alertas LED
digitalWrite(LED_HOT, temp > TEMP_MAX ? HIGH : LOW);
digitalWrite(LED_DRK, luz < LUZ_MIN ? HIGH : LOW);
delay(500);
}
🎯 Desafios
🔊
Alerta Sonoro
Adiciona um buzzer que toca quando a temperatura ultrapassa o limite.
📈
Gráfico Série
Envia dados pelo Monitor Série em formato CSV para criar um gráfico no computador.