LDR (Fotoresistor): O Resistor que Enxerga | Eletrônica Básica
Eletrônica Básica

LDRFotoresistor · Light Dependent Resistor

Existe um resistor que enxerga: no escuro ele segura a corrente; na luz, deixa passar. O olho mais barato da eletrônica.

luz →
#ldr #fotoresistor #sensor-de-luz #arduino #divisor-de-tensao #eletronica-basica

💡 O que é um LDR?

O LDR (Light Dependent Resistor) — também chamado de fotoresistor ou fotocélula — é um resistor cujo valor de resistência muda conforme a quantidade de luz que ele recebe. Mais luz = menos resistência. Menos luz = mais resistência.

É feito de material semicondutor fotossensível (geralmente sulfeto de cádmio — CdS). Quando fótons de luz atingem o material, liberam elétrons que facilitam a condução de corrente — por isso a resistência cai na presença de luz.

⚙️ Como Funciona

🌑 No Escuro

Alta R

Poucos fótons → poucos elétrons livres → alta resistência. O LDR "segura" a corrente. Pode chegar a megaohms (MΩ) na escuridão total.

☀️ Na Luz

Baixa R

Muitos fótons → muitos elétrons livres → baixa resistência. O LDR "deixa passar" a corrente. Cai para centenas de ohms com luz intensa.

📊 Os Valores — Do Escuro ao Sol

A variação é enorme — de centenas de ohms a megaohms. É exatamente essa variação que você lê pelo Arduino:

Condição de Luz Resistência do LDR Tensão em A0 (5V)* analogRead()
🌑 Escuridão total ~1 MΩ ~0.05 V ~10
🌒 Ambiente escuro ~100 kΩ ~0.45 V ~93
💡 Luz ambiente ~10 kΩ ~2.5 V ~512
🔦 Luz intensa ~1 kΩ ~4.55 V ~930
☀️ Luz solar direta ~200 Ω ~4.9 V ~1000

* Com resistor fixo de 10 kΩ em divisor de tensão

🔌 Como Ligar — Divisor de Tensão

O LDR sozinho não dá tensão — ele precisa de um resistor fixo parceiro para formar um divisor de tensão. O pino analógico do Arduino lê a tensão no ponto do meio:

Circuito Divisor de Tensão com LDR

VCC (5V) luz ☀ LDR Arduino pino A0 10 kΩ Fixo GND V(A0) = 5V × R_fixo R_LDR + R_fixo

Escuro → R_LDR grande → V(A0) baixa → analogRead pequeno.
Claro → R_LDR pequena → V(A0) alta → analogRead grande.

⚠️ ATENÇÃO: Limitações do LDR

O LDR é lento para reagir (dezenas de milissegundos) e não serve para precisão fina — a resposta varia com a temperatura e entre unidades diferentes. Mas é incrivelmente barato e ótimo para detectar simplesmente claro × escuro. Para precisão, use fotodiodo ou fototransistor.

  • Tempo de resposta: ~20 ms (claro→escuro) a ~100 ms (escuro→claro)
  • Cada LDR tem curva ligeiramente diferente — calibre no seu ambiente
  • Sensível à temperatura: em ambientes muito quentes a resistência muda

🌍 Onde o LDR é Usado

Do poste de rua ao robô seguidor de linha — o LDR está em projetos simples e elegantes:

🌃

Luz Automática

Liga a lâmpada ao anoitecer, desliga de manhã. O clássico do LDR.

🚶

Sensor de Presença

Detecta interrupção de feixe de luz — portão, gaveta, contador de peças.

🤖

Seguidor de Linha

Robô detecta linha preta/branca com par LDR + LED para navegar.

🧸

Brinquedos e Jogos

Interruptores por luz, alarmes simples, displays que ajustam brilho.

📐 Símbolo no Esquema Elétrico

Símbolo do LDR (Fotoresistor) — IEC/IEEE

LDR A B

O símbolo é um resistor padrão (retângulo IEC) com duas setas de luz apontando para ele. As setas indicam que é fotossensível.


💻 Na Prática com Arduino

O sketch mais clássico: LED que acende automaticamente no escuro — como um poste de rua em miniatura:

ldr_luz_automatica.ino — LED acende no escuro
// ┌────────────────────────────────────────────────────────────────┐
// │  LDR + LED — Luz automática (como um poste de rua!)           │
// │  Ligação: VCC → LDR → A0 → 10kΩ → GND                        │
// └────────────────────────────────────────────────────────────────┘

const int LDR_PIN = A0;    // divisor: VCC→LDR→A0→10kΩ→GND
const int LED_PIN = 13;   // LED onboard (ou externo com resistor)
const int LIMIAR  = 400;   // ajuste conforme seu ambiente

void setup() {
  pinMode(LED_PIN, OUTPUT);
  Serial.begin(9600);
  Serial.println("LDR pronto! Abra o Monitor Serial.");
}

void loop() {
  int leitura = analogRead(LDR_PIN);   // 0 (escuro) a 1023 (claro)

  Serial.print("LDR: ");
  Serial.print(leitura);

  if (leitura < LIMIAR) {
    digitalWrite(LED_PIN, HIGH);
    Serial.println(" → ESCURO — LED LIGADO 💡");
  } else {
    digitalWrite(LED_PIN, LOW);
    Serial.println(" → CLARO — LED DESLIGADO");
  }

  delay(200);
}

// Dica: abra o Monitor Serial (9600 baud) e tampe/descubra o LDR
//       para ver a leitura mudar em tempo real. Ajuste LIMIAR!
ldr_brilho_pwm.ino — Controla brilho do LED conforme a luz
// Quanto mais escuro o ambiente → mais brilhante o LED
// Usa mapeamento inverso para transformar leitura em PWM

const int LDR_PIN = A0;
const int LED_PIN = 9;    // pino PWM!

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  int leitura = analogRead(LDR_PIN);  // 0–1023

  // Mapeia: escuro (leitura baixa) → brilho alto
  int brilho = map(leitura, 0, 1023, 255, 0);
  analogWrite(LED_PIN, brilho);  // PWM 0–255

  delay(100);
}

✅ Boas Práticas com LDR

  • 1
    Use sempre o resistor fixo em divisor de tensão. O LDR sozinho não produz tensão. Sem o resistor parceiro, o pino analógico fica "no ar" e a leitura é inválida. Use 10 kΩ como ponto de partida.
  • 2
    Calibre o limiar no ambiente real do projeto. A leitura ideal depende da iluminação local. Imprima os valores no Monitor Serial e ajuste o LIMIAR conforme o que fizer sentido para seu projeto.
  • 3
    Não use o LDR para medir lux com precisão. Ele é ótimo para detectar claro × escuro, mas cada unidade tem curva ligeiramente diferente. Para medição precisa de luminosidade, use um sensor BH1750 ou TSL2561.
  • 4
    O LDR é lento — não exija reação em milissegundos. Um delay() de 100–200 ms no loop é suficiente e evita leituras desnecessárias. Para detecção de alta velocidade, use fotodiodo.
  • 5
    Adicione um capacitor (100nF) para filtrar ruído. Em ambientes com lâmpadas fluorescentes ou LED piscando (120 Hz), o LDR pode oscilar. Um capacitor em paralelo com o resistor fixo suaviza a leitura.
  • 6
    Proteja o LDR externo de água e luz direta intensa. Para projetos externos, use caixa com janela translúcida ou difusor. Luz solar direta em LDR descoberto pode saturar a leitura em 1023 indefinidamente.

🛒 LDRs e Sensores de Luz na Mamute

LDRs, fotoresistores e sensores para todos os seus projetos de automação e eletrônica

💡 Pronto para o projeto de luz automática?

LDRs, resistores, Arduino e tudo que você precisa para construir seu primeiro sensor de luminosidade.

🛒 Ver LDRs e Sensores na Mamute