PR.FT5_15·Kit RPi›Sensor de Luz (LDR)Próximo →
⬤ Iniciante · RC · time()

☀️ Sensor de Luz (LDR)

Medir a intensidade de luz ambiente. O RPi não tem ADC nativo — usamos a técnica RC (carga de condensador) para obter uma leitura relativa.

Técnica RC — como funciona

Um condensador de 1µF carrega-se através da LDR. Medindo o tempo de carga (LOW → HIGH), obtemos um valor proporcional à resistência da LDR — e portanto à luz: mais luz = menor resistência = tempo mais curto.

Circuito

LDR pino 1 → 3.3V (pino 1)
LDR pino 2 → Condensador 1µF → GND
Nó LDR/Condensador → GPIO 4

Exercício 1 — Medir tempo de carga

Python · ldr_rc.py
import RPi.GPIO as GPIO
import time

LDR = 4
GPIO.setmode(GPIO.BCM)

def ler_luz():
    # Descarregar condensador
    GPIO.setup(LDR, GPIO.OUT)
    GPIO.output(LDR, GPIO.LOW)
    time.sleep(0.1)
    # Carregar e medir tempo
    GPIO.setup(LDR, GPIO.IN)
    inicio = time.time()
    while GPIO.input(LDR) == GPIO.LOW:
        pass
    return time.time() - inicio

try:
    while True:
        valor = ler_luz()
        print(f"Tempo carga: {valor*1000:.2f}ms — {'Escuro' if valor > 0.01 else 'Claro'}")
        time.sleep(0.5)
except KeyboardInterrupt:
    GPIO.cleanup()
💡
Para leituras analógicas mais precisas e fáceis, usa o conversor MCP3008 via SPI — é o exercício seguinte.