Como Funciona um LDR?
LDR (Light Dependent Resistor) é uma resistência fotossensível. A sua resistência diminui quando a luz aumenta. Num divisor de tensão com uma resistência de 10kΩ, gera uma tensão variável que o Arduino pode medir.
⚡ Divisor de Tensão
5V → LDR → pino A0 → Resistência 10kΩ → GND
Mais luz = LDR baixa resistência = tensão em A0 aumenta
Exercício 1 — Ler Luz
🔌 Ligações
| Arduino | → | Componente |
|---|---|---|
| 5V | → | LDR (pino 1) |
| A0 | → | LDR (pino 2) + Resistência 10kΩ |
| GND | → | Outro pino da resistência 10kΩ |
ex1_ldr_ler.ino
void setup() {
Serial.begin(9600);
}
void loop() {
int luz = analogRead(A0); // 0 (escuro) a 1023 (luz)
Serial.print("Luminosidade: ");
Serial.println(luz);
delay(300);
}
Exercício 2 — LED Automático
O LED acende quando está escuro e apaga quando há luz — como um candeeiro de rua.
ex2_ldr_auto.ino
const int LDR = A0;
const int LED = 13;
const int LIMIAR = 400; // Ajusta conforme a luz ambiente
void setup() {
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
void loop() {
int luz = analogRead(LDR);
Serial.println(luz);
if (luz < LIMIAR) { // Escuro
digitalWrite(LED, HIGH); // Liga LED
} else { // Com luz
digitalWrite(LED, LOW); // Desliga LED
}
delay(200);
}
💡Experimenta tapar o LDR com a mão para simular o escuro e ver o LED acender.
Exercício 3 — Brilho Proporcional
ex3_ldr_proporcional.ino
const int LDR = A0;
const int LED = 9; // Pino PWM
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
int luz = analogRead(LDR);
// Mais escuro = mais brilho no LED
int brilho = map(luz, 0, 1023, 255, 0);
brilho = constrain(brilho, 0, 255);
analogWrite(LED, brilho);
delay(50);
}