Arduino Nano ESP32 - Módulo LDR

O módulo sensor de luz LDR consegue sentir e medir a luz ao 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 Arduino Nano ESP32 e um módulo sensor de luz LDR juntos para detectar e medir a quantidade de luz. Veja o que vamos abordar:

Módulo Sensor de Luz LDR
image source: diyables.io

Depois, você pode alterar o código para fazer um LED ou uma lâmpada acender (usando um relé) quando ele sentir luz.

Se você tem interesse em um sensor de luz na forma bruta, sugiro explorar o tutorial Arduino Nano ESP32 - Sensor de Luz.

Hardware Necessário

1×Arduino Nano ESP32
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×Módulo Sensor de Luz LDR
1×Protoboard
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

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 há na área ao redor dele. 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: Este é um pino de saída digital. Ele envia um sinal HIGH quando está escuro e LOW quando está claro. Você pode ajustar o limite entre escuro e claro usando um potenciômetro embutido.
  • Pino AO: Este é um pino de saída analógica. O valor diminui conforme a luz fica mais forte e aumenta conforme a luz fica mais fraca.
Pinagem do Módulo Sensor de Luz LDR
image source: diyables.io

Além disso, o módulo sensor de luz LDR é equipado com dois LEDs indicadores:

  • O LED indicador PWR-LED mostra o estado da alimentação.
  • O LED indicador DO-LED reflete o estado da luz no pino DO: ele acende quando há luz e permanece 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 limite para detectar a luz.
  • Quando a intensidade da luz no ambiente ao redor está acima do limite definido (considerado como luz), a saída do sensor no pino DO fica LOW e o DO-LED acende.
  • Quando a intensidade da luz no ambiente ao redor está abaixo do limite definido (considerado como 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 ao redor. 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

Como o módulo sensor de luz tem duas saídas, você pode escolher usar uma delas ou as duas, dependendo do que precisar.

  • O diagrama de ligação entre o Arduino Nano ESP32 e o módulo sensor de luz LDR usando somente o DO.
Diagrama de ligação do módulo sensor de luz LDR com o Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

  • O diagrama de ligação entre o Arduino Nano ESP32 e o módulo sensor de luz LDR usando somente o AO.
Diagrama de ligação do módulo LDR com o Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

  • O diagrama de ligação entre o Arduino Nano ESP32 e o módulo sensor de luz LDR usando o AO e o DO.
Diagrama de ligação do módulo sensor de luz com o Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Código Arduino Nano ESP32 - Ler o valor do pino DO

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-ldr-module */ #define DO_PIN D2 // The Arduino Nano ESP32's pin D2 connected to DO pin of the ldr module void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP32's pin as an input pinMode(DO_PIN, INPUT); } void loop() { int light_state = digitalRead(DO_PIN); if (light_state == HIGH) Serial.println("It is dark"); else Serial.println("It is light"); }

Passos Rápidos

Para começar com o Arduino Nano ESP32, siga estes passos:

  • Se você é novo no Arduino Nano ESP32, consulte o tutorial sobre como configurar o ambiente do Arduino Nano ESP32 no Arduino IDE.
  • Ligue os componentes de acordo com o diagrama fornecido.
  • Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Selecione a placa Arduino Nano ESP32 e a porta COM correspondente.
  • Copie o código acima e abra no Arduino IDE
  • Clique no botão Upload do Arduino IDE para fazer o upload do código para o Arduino Nano ESP32
  • Cubra e descubra o módulo sensor de luz LDR com a mão ou com algum objeto
  • Confira o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
It is light It is light It is dark It is dark It is dark It is light It is light It is light
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Se você notar que o estado do LED permanece sempre ligado ou sempre desligado, independentemente da presença de luz, você pode ajustar o potenciômetro. Esse ajuste permite regular com precisão a sensibilidade do sensor à luz.

Além disso, o código pode ser modificado de acordo com 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 Arduino Nano ESP32 - Ler o valor do pino AO

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-ldr-module */ #define AO_PIN A4 // The Arduino Nano ESP32's pin connected to AO pin of the ldr module void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { int light_value = analogRead(AO_PIN); Serial.print("The AO value: "); Serial.println(light_value); }

Passos Rápidos

  • Copie o código acima e abra no Arduino IDE
  • Clique no botão Upload do Arduino IDE para fazer o upload do código para o Arduino Nano ESP32
  • Cubra e descubra o módulo sensor de luz LDR com a mão ou com algum objeto
  • Confira o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
The AO value: 145 The AO value: 146 The AO value: 146 The AO value: 572 The AO value: 1678 The AO value: 1945 The AO value: 2956 The AO value: 3001 The AO value: 3098 The AO value: 4005 The AO value: 4005 The AO value: 1645 The AO value: 1546 The AO value: 346 The AO value: 172
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

※ Nota:

Este tutorial usa a função analogRead() para ler valores de um ADC (Conversor Analógico-Digital) conectado a um sensor ou componente. O ADC do Arduino Nano ESP32 é adequado para projetos que não exigem alta precisão. No entanto, para projetos que precisam de medições precisas, tenha em mente o seguinte:

  • O ADC do Arduino Nano ESP32 não é perfeitamente preciso e pode exigir calibração para obter resultados corretos. Cada placa Arduino Nano ESP32 pode variar um pouco, então a calibração é necessária para cada placa individualmente.
  • A calibração pode ser difícil, especialmente para iniciantes, e nem sempre produz os resultados exatos que você quer.

Para projetos que exigem alta precisão, considere usar um ADC externo (por exemplo, o ADS1115) com o Arduino Nano ESP32 ou usar outro Arduino, como o Arduino Uno R4 WiFi, que tem um ADC mais confiável. Se você ainda quiser calibrar o ADC do Arduino Nano ESP32, consulte o ESP32 ADC Calibration Driver.

Vídeo

Referências de Funções

Tutoriais Relacionados

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!