ESP32 - Módulo LDR
O módulo sensor de luz LDR consegue perceber e medir a luz ao seu redor. Ele tem duas saídas: uma saída digital, que pode ser LOW ou HIGH, e uma saída analógica.
Neste tutorial, vamos aprender a usar um ESP32 e um módulo sensor de luz LDR juntos para detectar e medir a quantidade de luz. Veja o que vamos abordar:
- Como conectar o módulo sensor de luz LDR a um ESP32.
- Como programar o ESP32 para detectar luz lendo o sinal digital do módulo sensor de luz LDR.
- Como programar o ESP32 para medir o nível de luz lendo o sinal analógico do módulo sensor de luz LDR.

Depois, você pode alterar o código para fazer um LED ou uma lâmpada acender (usando um relé) quando ele detectar luz.
Se você tem interesse em um sensor de luz na sua forma bruta, sugiro conferir o tutorial ESP32 - Sensor de Luz.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Módulo Sensor de Luz LDR
O módulo sensor de luz LDR pode ser usado para descobrir se há luz ou quanta luz existe na área ao seu redor. Ele tem um pino de saída digital e um pino de saída analógica para diferentes opções.
Pinagem
O módulo sensor de luz LDR tem quatro pinos:
- Pino VCC: conecte este pino à fonte de alimentação (entre 3,3V e 5V).
- Pino GND: conecte este pino ao terra (0V).
- Pino DO: é um pino de saída digital. Ele fornece um sinal HIGH quando está escuro e LOW quando está claro. Você pode ajustar o limiar entre escuro e claro usando um potenciômetro embutido.
- Pino AO: é um pino de saída analógica. O valor diminui conforme a luz fica mais forte e aumenta conforme a luz fica mais fraca.

Além disso, o módulo sensor de luz LDR vem com dois LEDs indicadores:
- O indicador PWR-LED mostra o estado da alimentação.
- O indicador DO-LED reflete o estado da luz no pino DO: ele acende quando há luz e fica apagado quando está escuro.
Como Funciona
Sobre o pino DO:
- O módulo sensor de luz LDR tem um potenciômetro que permite ajustar a sensibilidade ou o limiar para detectar luz.
- Quando a intensidade da luz no ambiente está acima do limiar definido (considerado claro), a saída do sensor no pino DO fica LOW e o DO-LED acende.
- Quando a intensidade da luz no ambiente está abaixo do limiar definido (considerado escuro), a saída do sensor no pino DO fica HIGH e o DO-LED apaga.
Sobre o pino AO:
- O valor lido no pino AO é inversamente proporcional à intensidade da luz no ambiente. Em outras palavras, conforme a intensidade da luz aumenta (mais claro), o valor no pino AO diminui.
- Da mesma forma, conforme a intensidade da luz diminui (mais escuro), o valor no pino AO aumenta.
É importante notar que ajustar o potenciômetro não afeta o valor no pino AO.
Diagrama de Ligação
O módulo sensor de luz oferece duas saídas, DO e AO, que podem ser usadas separadamente ou juntas.
- Como conectar o ESP32 e o módulo LDR usando uma protoboard

This image is created using Fritzing. Click to enlarge image
Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.
- Como conectar o ESP32 e o módulo LDR usando uma placa breakout com bornes de parafuso

Código ESP32 - Ler o valor do pino DO
Passos Rápidos
- Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 no Arduino IDE.
- Faça a ligação como na imagem acima.
- Conecte a placa ESP32 ao seu PC por meio de um cabo USB Type-C
- Abra o Arduino IDE no seu PC.
- Selecione a placa ESP32 correta (por exemplo, ESP32 Dev Module) e a porta COM.
- Copie o código acima e abra no Arduino IDE
- Clique no botão Upload no Arduino IDE para carregar o código no ESP32
- Cubra e descubra o módulo sensor de luz LDR com a mão ou com algum objeto
- Veja o resultado no Serial Monitor.
Se você perceber que o estado do LED fica sempre aceso ou sempre apagado, independentemente da presença de luz, você pode ajustar o potenciômetro. Esse ajuste permite regular com precisão a sensibilidade à luz do sensor.
Além disso, o código pode ser modificado de acordo com as suas necessidades. Por exemplo, você pode programar o LED para ativar ou a lâmpada para acender quando a luz for detectada. Você também tem a flexibilidade de fazer um servo motor girar. Instruções detalhadas e tutoriais sobre essas opções de personalização podem ser encontrados no final deste guia.
Código ESP32 - Ler o valor do pino AO
Passos Rápidos
- Copie o código acima e abra no Arduino IDE
- Clique no botão Upload no Arduino IDE para carregar o código no ESP32
- Cubra e descubra o módulo sensor de luz LDR com a mão ou com algum objeto
- Veja o resultado no Serial Monitor.
※ Nota:
Este tutorial usa a função analogRead() para ler valores de um ADC (Conversor Analógico-Digital) conectado a um módulo LDR. O ADC do ESP32 é bom para projetos que NÃO precisam de alta precisão. No entanto, para projetos que precisam de medições precisas, observe:
- O ADC do ESP32 não é perfeitamente preciso e pode precisar de calibração para obter resultados corretos. Cada placa ESP32 pode ser um pouco diferente, então você precisa calibrar o ADC de cada placa individualmente.
- A calibração pode ser difícil, especialmente para iniciantes, e nem sempre pode dar os resultados exatos que você quer.
Para projetos que precisam de alta precisão, considere usar um ADC externo (por exemplo, ADS1115) com o ESP32 ou usar um Arduino, que tem um ADC mais confiável. Se você ainda quiser calibrar o ADC do ESP32, consulte o ESP32 ADC Calibration Driver