☀️ 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.