Como usar sensor LDR com Arduino para detectar luz
Share
Para usar sensor LDR com Arduino, monte um divisor de tensão com o LDR e um resistor, ligue o ponto central em uma entrada analógica e leia o valor com analogRead. Assim o Arduino consegue detectar claridade, sombra e variações de luz no ambiente.
O LDR é um dos sensores mais didáticos para quem está começando, porque mostra de forma clara como uma grandeza física vira um valor elétrico. Ele é perfeito para projetos de luz automática, medidor de luminosidade, alarme por sombra, estufa maker e automação simples.
O que é um sensor LDR?
O Sensor LDR 5mm é um fotoresistor: um componente cuja resistência muda conforme a quantidade de luz recebida. Em geral, com mais luz a resistência diminui; com menos luz, a resistência aumenta.
- Função principal: detectar variação de luminosidade.
- Tipo de leitura: normalmente analógica, usando divisor de tensão.
- Projetos comuns: luz automática, alarme por sombra, medidor de luz e automação.
- Peças de apoio: resistor, protoboard, jumpers e uma placa Arduino.
Como ligar o LDR no Arduino
O LDR não é ligado sozinho na entrada analógica. O ideal é montar um divisor de tensão usando o LDR e um resistor, geralmente de 10 kΩ. Para a bancada, você pode usar o Arduino Uno R3 SMD, uma protoboard e jumpers macho-macho.
| Ligação | Conectar em | Função |
|---|---|---|
| Uma perna do LDR | 5V | Alimentação do divisor |
| Outra perna do LDR | A0 e resistor | Ponto de leitura analógica |
| Outra ponta do resistor | GND | Fecha o divisor de tensão |
| LED de teste | Pino 9 com resistor | Indica claro/escuro no projeto |
Essa montagem faz a tensão no pino A0 variar conforme a luz. O valor lido pelo Arduino normalmente fica entre 0 e 1023, dependendo da iluminação e da forma como o divisor foi montado.
Código Arduino para ler sensor LDR
O código abaixo lê o LDR no pino A0 e mostra o valor no Monitor Serial. Comece por ele antes de criar automações, porque isso ajuda a descobrir os valores reais de claro e escuro no seu ambiente.
const int pinoLDR = A0;
void setup() {
Serial.begin(9600);
}
void loop() {
int valorLuz = analogRead(pinoLDR);
Serial.print("Valor do LDR: ");
Serial.println(valorLuz);
delay(300);
}
Projeto de luz automática com LDR
Depois de observar os valores no Monitor Serial, escolha um limite. No exemplo abaixo, o LED acende quando a leitura indica pouca luz. Esse limite deve ser ajustado conforme sua montagem.
const int pinoLDR = A0;
const int pinoLED = 9;
const int limiteEscuro = 500;
void setup() {
pinMode(pinoLED, OUTPUT);
Serial.begin(9600);
}
void loop() {
int valorLuz = analogRead(pinoLDR);
if (valorLuz < limiteEscuro) {
digitalWrite(pinoLED, HIGH);
Serial.println("Escuro: LED ligado");
} else {
digitalWrite(pinoLED, LOW);
Serial.println("Claro: LED desligado");
}
delay(300);
}
Se no seu circuito o comportamento ficar invertido, não significa necessariamente erro. Dependendo da posição do LDR e do resistor no divisor de tensão, o valor pode aumentar ou diminuir com a luz. O caminho certo é medir primeiro e ajustar o limite depois.
Por que o LDR precisa de resistor?
O resistor cria, junto com o LDR, uma divisão de tensão. Sem ele, a entrada analógica não recebe uma variação elétrica estável para interpretar. Por isso o LDR é uma ótima aula prática sobre resistência, tensão e leitura analógica.
| Condição | O que acontece | Como usar no projeto |
|---|---|---|
| Ambiente claro | A resistência do LDR muda com mais luz | Manter LED desligado ou abrir uma ação por claridade |
| Ambiente escuro | A resistência muda no sentido oposto | Acender LED, ligar alerta ou registrar evento |
| Sombra passando | A leitura varia rapidamente | Criar alarme por interrupção de luz |
Como calibrar o sensor LDR
Calibrar é descobrir quais valores representam claro e escuro na sua bancada. Abra o Monitor Serial, anote a leitura com luz forte, depois cubra o LDR ou apague a luz e anote de novo. O limite deve ficar entre esses dois valores.
- Teste no local real: a luz da sala, janela ou luminária muda o resultado.
- Evite limite no extremo: escolha um valor intermediário para reduzir oscilação.
- Use média se necessário: várias leituras podem suavizar ruído.
- Proteja contra sombra acidental: pense na posição física do sensor.
Projetos com LDR e Arduino
O LDR é simples, mas abre espaço para muitos projetos úteis. Ele combina muito bem com LED, buzzer, relé, display, servo motor e placas conectadas como o ESP32.
- Luz automática: acende quando escurece.
- Alarme por sombra: detecta quando algo bloqueia a luz.
- Estufa maker: monitora variação de luminosidade para plantas.
- Medidor didático: mostra valores de luz no Monitor Serial ou display.
- IoT com ESP32: envia luminosidade para dashboard ou automação.
LDR, sensor PIR ou sensor ultrassônico?
É comum confundir sensores porque todos reagem ao ambiente, mas cada um responde a uma pergunta diferente. O LDR mede luz, o PIR HC-SR501 detecta movimento e o HC-SR04 mede distância.
| Sensor | Use quando a pergunta for | Exemplo |
|---|---|---|
| LDR | Está claro ou escuro? | Luz automática |
| PIR | Alguém passou? | Alarme de presença |
| HC-SR04 | Qual a distância do objeto? | Robô desviando de obstáculo |
Erros comuns com LDR no Arduino
- Ligar o LDR direto no A0 sem divisor: a leitura fica sem referência adequada.
- Não calibrar o limite: o valor 500 pode funcionar em uma sala e falhar em outra.
- Esperar precisão de luxímetro: LDR é ótimo para aprendizado e detecção simples, não para medição profissional de lux.
- Ignorar a posição física: sombra da própria montagem pode alterar a leitura.
- Usar relé sem cuidado: cargas maiores precisam de módulo adequado e segurança elétrica.
Peças recomendadas para começar
Para montar o primeiro teste, você precisa de LDR, resistor, Arduino, protoboard e jumpers. Se quiser aprender vários sensores de uma vez, o Kit 7 Sensores para Arduino e ESP32 ajuda a comparar luminosidade, presença, distância, temperatura e gás em projetos práticos.
Para automação conectada, combine LDR com ESP32. Para bancada iniciante, Arduino Uno, protoboard e jumpers já são suficientes para entender leitura analógica e criar a primeira luz automática.
Perguntas Frequentes (FAQ)
- Como ligar um sensor LDR no Arduino?
- Ligue o LDR em um divisor de tensão com um resistor. Uma perna vai ao 5V, o ponto central vai ao A0 e o resistor fecha para o GND.
- Qual resistor usar com LDR no Arduino?
- Um resistor de 10 kΩ é uma escolha comum para começar. O valor pode mudar conforme o LDR, a iluminação e a sensibilidade desejada.
- O LDR detecta presença?
- O LDR detecta variação de luz. Ele pode perceber sombra ou bloqueio de feixe, mas para presença/movimento o sensor PIR costuma ser mais adequado.
- Posso usar LDR com ESP32?
- Sim. O ESP32 possui entradas analógicas, mas trabalha com 3,3V. Monte o divisor de tensão respeitando os limites da placa.
Quer montar uma luz automática com Arduino?