Início›Módulos›Sensor LDR
⬤ Iniciante · Grupo 6 — Infravermelhos e Ótica

☀️ Sensor LDR (Fotorresistência)

⏱️ 25 min 🧩 Módulo LDR · Analógico · A0 📦 Módulo #22

Nesta página

🔬 Sobre o Módulo LDR

Uma LDR (Light Dependent Resistor — fotorresistência) varia a sua resistência com a luminosidade: alta resistência no escuro (~1 MΩ), baixa resistência na luz intensa (~1 kΩ). O módulo inclui já a resistência de pull-down e o divisor de tensão — basta ler o pino analógico.

Tipo
Analógico
analogRead() → 0–1023
Resistência (escuro)
~1 MΩ
Valor típico
Resistência (luz)
~1 kΩ
Luz solar direta
Tensão saída
0–5V
Proporcional à luz
Pino Arduino
A0
Qualquer pino analógico

🔌 Pinagem — Módulo LDR

VCCAlimentação → 5V do Arduino
GNDMassa → GND do Arduino
AOSaída analógica → A0 do Arduino (valor proporcional à luz)
DOSaída digital (com potenciómetro de ajuste) → pino digital (opcional)
ℹ️
O módulo tem dois pinos de saída: AO (analógico — mais útil, lê valor contínuo) e DO (digital — HIGH/LOW com limiar ajustável pelo potenciómetro azul). Para este exercício usa o AO.

🔗 Ligar ao Arduino

1

VCC → 5V

Fio do pino VCC do módulo ao pino 5V do Arduino.

2

GND → GND

Fio do pino GND do módulo ao GND do Arduino.

3

AO → A0

Fio do pino AO do módulo ao pino analógico A0 do Arduino.

💻 Ler o Valor de Luminosidade

ex_ldr_basico.ino
#define LDR_PIN A0

void setup() {
  Serial.begin(9600);
  Serial.println("LDR · Leitura de Luminosidade");
}

void loop() {
  int   raw = analogRead(LDR_PIN);       // 0–1023
  float v   = raw * 5.0 / 1023.0;        // Tensão em Volts
  int   pct = map(raw, 0, 1023, 0, 100); // 0–100%

  Serial.print("Raw: ");   Serial.print(raw);
  Serial.print("  V: ");    Serial.print(v, 2);
  Serial.print("  Luz: "); Serial.print(pct);
  Serial.println("%");

  delay(500);
}
💡
Usa o Serial Plotter (Ctrl+Shift+L) para visualizar a variação da LDR em tempo real como gráfico. Tapa e descobre o sensor para ver a curva de resposta.

🔦 Sistema de Iluminação Automática

ex_ldr_auto_led.ino
#define LDR_PIN  A0
#define LED_PIN  9   // Pino PWM para controlo de brilho
#define LIMIAR   400 // Ajusta conforme o teu ambiente

void setup() {
  pinMode(LED_PIN, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int luz = analogRead(LDR_PIN);

  // Brilho inversamente proporcional à luz ambiente
  int brilho = map(luz, 0, 1023, 255, 0);
  brilho = constrain(brilho, 0, 255);
  analogWrite(LED_PIN, brilho);

  Serial.print("LDR: "); Serial.print(luz);
  Serial.print("  Brilho LED: "); Serial.println(brilho);

  delay(100);
}

🏆 Para ir mais longe

Kit B 37 · PR.FT6_15 · Arduino UNO · Raspberry Pi · Início · led.dge.medu.pt