↑
⬤ Iniciante

☀️ Fotocélula (LDR) — Luz Ambiente

⏱️ 20 min   🧩 LDR — Pino A0

📌 Pinagem

Pino módulo→ Pino ArduinoNotas
AO (Analógico)A0Valores 0–1023; menor = mais luz
VCC5V
GNDGND
ℹ️

O módulo LDR do Kit C inclui já a resistência divisora de tensão. Basta ler o pino A0 com analogRead(A0). Valores próximos de 0 = muito iluminado; valores próximos de 1023 = escuro.

Exercício 1 — Leitura no Monitor Série

ex1_ldr_leitura.ino
#define LDR A0

void setup() {
  Serial.begin(9600);
}

void loop() {
  int luz = analogRead(LDR);
  Serial.print("Luminosidade: ");
  Serial.println(luz);
  delay(500);
}

Exercício 2 — Iluminação automática

ex2_ldr_auto.ino
#define LDR        A0
#define LED_BRANCO  5
#define LIMIAR    600  // Ajusta conforme o ambiente

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

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

  if (luz > LIMIAR) {             // Escuro
    digitalWrite(LED_BRANCO, HIGH);
    Serial.println("Luz ligada (escuro)");
  } else {                        // Claro
    digitalWrite(LED_BRANCO, LOW);
    Serial.println("Luz desligada (dia)");
  }
  delay(300);
}

Exercício 3 — Brilho proporcional à escuridão (PWM)

ex3_ldr_pwm.ino
#define LDR        A0
#define LED_BRANCO  5

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

void loop() {
  int luz = analogRead(LDR);        // 0–1023

  // Mapeia: mais escuro (1023) → LED mais brilhante (255)
  int brilho = map(luz, 0, 1023, 0, 255);
  analogWrite(LED_BRANCO, brilho);
  delay(100);
}