Início › Componentes › LDR
⬤ Iniciante

☀️ Sensor de Luz (LDR)

Medir intensidade luminosa e criar iluminação automática.

⏱️ Duração: 30 min
🧩 Componentes: LDR + Resistência 10kΩ + LED

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);
}
Próximo: Servo → Ver: Alarme com LDR