Resistor dependente de luz - Sensor LDR com ESP32 usando Arduino IDE

Resistor Dependente De Luz Sensor Ldr Com Esp32 Usando Arduino Ide



O ESP32 é um poderoso microcontrolador equipado com recursos para IoT. O ESP32 com LDR pode medir a intensidade da luz e disparar a resposta de acordo com ela. Usando o ESP32 e um LDR, podemos criar um projeto baseado em sensor remoto de luz e projetar uma variedade de soluções inovadoras de IoT para vários setores e aplicações.

Neste guia, serão abordados os fundamentos do LDR e suas aplicações com ESP32.







1: Introdução ao Sensor LDR



2: Aplicações de LDR com ESP32



3: Interface LDR com ESP32 usando Arduino IDE





Conclusão

1: Introdução ao Sensor LDR

A eu voo D dependente R O resistor (LDR) é um tipo de resistor que muda sua resistência com base na intensidade da luz a que é exposto. Na escuridão, sua resistência é muito alta, enquanto na luz forte sua resistência é muito baixa. Essa mudança na resistência o torna melhor para projetos de detecção de luz.




Os pinos analógicos do ESP32 convertem as tensões de entrada para um número inteiro entre 0 e 4095. Esse valor inteiro é mapeado em relação à tensão de entrada analógica de 0V a 3,3V, que é por padrão a tensão de referência do ADC no ESP32. Este valor é lido usando o Arduino analogRead() função do LDR.

Para um guia mais detalhado e pinagem ADC do ESP32, leia o artigo ESP32 ADC - Ler valores analógicos com Arduino IDE .


O ESP32 possui um conversor analógico-digital (ADC) integrado que pode medir a tensão no LDR e convertê-la em um sinal digital que pode ser processado pelo microcontrolador. Usando este sinal, o ESP32 determina a resistência do LDR, que é proporcional à intensidade da luz.

Aqui estaremos usando os pinos do canal 1 do ESP32 ADC.


Fótons ou partículas de luz desempenham um papel crucial na operação de LDRs. Quando a luz incide na superfície de um LDR, os fótons são absorvidos pelo material, que então libera elétrons no material. O número de elétrons livres é diretamente proporcional à intensidade da luz, e quanto mais elétrons forem liberados, menor será a resistência do LDR.

2: Aplicações de LDR com ESP32

A seguir está a lista de alguns aplicativos baseados em IoT de LDR com ESP32:

    • Interruptor ativado por luz
    • Indicador de nível de luz
    • Modo noturno em dispositivos
    • Sistemas de segurança baseados em luz
    • Sistemas de iluminação inteligentes
    • Sistemas de segurança sensíveis à luz
    • Monitoramento de plantas
    • Iluminação energeticamente eficiente
    • persianas automatizadas

3: Interface LDR com ESP32 usando Arduino IDE

Para usar um LDR com o ESP32, precisamos conectar o LDR com um pino de canal ESP32 ADC. Depois disso, é necessário o código do Arduino que lerá os valores analógicos do pino de saída LDR. Para projetar este circuito, precisamos de LDR, um resistor e a placa ESP32.

O LDR e o resistor são conectados em série, com o LDR conectado ao canal analógico 1 pino de entrada do ESP32. Um LED será adicionado ao circuito que pode testar o funcionamento do LDR.

3.1: Esquema

O diagrama do circuito para fazer a interface do LDR com o ESP32 é bastante simples. Precisamos conectar o LDR e um resistor em uma configuração de divisor de tensão e conectar a saída do divisor de tensão ao pino ADC (Analog to Digital Converter) do ESP32. O pino D34 do canal 1 do ADC é usado como uma entrada analógica para o ESP32.

A imagem a seguir é o esquema do ESP32 com sensor LDR.

3.2: Código

Com o circuito configurado, o próximo passo é escrever o código do ESP32. O código lerá a entrada analógica do LDR e a usará para controlar um LED ou outro dispositivo com base em diferentes níveis de luz.

int LDR_Val = 0 ; /* Variável para armazenar o valor do fotoresistor */
sensor int = 3. 4 ; /* Entrada Analógica para fotorresistor */
int liderado = 25 ; /* Pino de saída do LED */
anular configuração ( ) {
Serial.begin ( 9600 ) ; /* Taxa de transmissão para comunicação em série */
    pinMode ( led, SAÍDA ) ; /* Pino LED definir como saída */
}
loop vazio ( ) {
LDR_Val = analogRead ( sensor ) ; /* analógico ler valor LDR */
Serial.print ( 'Valor de Saída LDR: ' ) ;
Serial.println ( LDR_Val ) ; /* Exibir valor de saída LDR no monitor serial */
se ( LDR_Val > 100 ) { /* Se a intensidade da luz for ALTA */
Serial.println ( ' Alta intensidade ' ) ;
digitalWrite ( led, BAIXO ) ; /* LED permanece desligado */
}
outro {
/* Outro se A intensidade da luz é BAIXA O LED permanecerá LIGADO */
Serial.println ( 'Baixa intensidade ' ) ;
digitalWrite ( led, ALTO ) ; /* LED Ligar valor LDR é menos que 100 */
}
atraso ( 1000 ) ; /* Lê o valor após cada 1 segundo */
}


No código acima usamos um LDR com ESP32 que irá controlar o LED usando a entrada analógica vinda do LDR.

As três primeiras linhas de código declaram variáveis ​​para armazenar o valor do fotoresistor , o pino analógico para o fotoresistor, e o LIDERADO pino de saída.

No configurar() função, a comunicação serial é iniciada com uma taxa de transmissão de 9600 e o pino LED D25 é definido como saída.

No laço() função, o valor do fotorresistor é lido usando a função analogRead(), que é armazenada no LDR_Val variável. O valor do fotorresistor é exibido no monitor serial usando a função Serial.println().

Um if-else A instrução é usada para controlar o LED com base na intensidade da luz detectada pelo fotoresistor. Se o valor do fotoresistor for maior que 100, significa que a intensidade da luz está ALTA e o LED permanece DESLIGADO. No entanto, se o valor do fotoresistor for menor ou igual a 100, significa que a intensidade da luz é BAIXA e o LED acende.

Finalmente, o programa espera 1 segundo usando a função delay() antes de ler o valor do fotoresistor novamente. Este ciclo se repete indefinidamente, fazendo com que o LED acenda e apague conforme a intensidade luminosa detectada pelo fotoresistor.

3.3: Saída sob luz fraca

A intensidade da luz é inferior a 100, portanto, o LED permanecerá LIGADO.

3.4: Saída sob Luz Brilhante

À medida que a intensidade da luz aumenta, o valor LDR aumentará e a resistência LDR diminuirá, de modo que o LED se apagará.

Conclusão

O LDR pode ser interfaceado com o ESP32 usando o pino 1 do canal ADC. A saída LDR pode controlar a detecção de luz em várias aplicações. Com seu baixo custo e tamanho compacto, o ESP32 e o LDR são uma escolha atraente para projetos de IoT que exigem recursos de detecção de luz. Usando o Arduino analogRead() função podemos ler valores de LDR.