Sensor de luz LDR com Arduino

Por: Ricardo B. Morim e Diego J. Stefanello

 

Já pensou em construir um dispositivo que seja capaz de detectar luz, para usar em alguma automação? Você poderia fazer uma lâmpada ligar sozinha durante a noite, detectar a passagem de algum objeto (através da variação de luz/sombra), detectar a direção de uma fonte de luz baseado em 2 sensores, etc.

Nesse tutorial iremos aprender a usar este sensor de luz chamado LDR, montando um sensor de luz com uma placa Arduino.

 

 O que é um LDR?

LDR é a abreviação para Light Dependent Resistor, que pode ser traduzido para o português como Resistor Dependente de Luz. Abreviadamente também pode ser chamado de fotorresistência. O aspecto de um LDR e o seu símbolo para utilização em diagramas esquemáticos podem ser vistos na Figura 1.

LDR

Figura 1: LDR e os seus símbolos.

Esse dispositivo é o mesmo utilizado na maioria das fotocélulas, que controlam as luzes dos postes de rua. Quando o valor de luminosidade é menor do que o valor desejável, ele comuta um rele que poderá ligar uma lâmpada ou outro equipamento.

Figura 2: Rele fotoelétrico de uso externo.

 

 Funcionamento do LDR

O LDR é um resistor cujo valor é alterado de acordo com a intensidade luminosa que incide sobre sua área sensível. Em sua fabricação, são utilizados compostos químicos que apresentam variação de resistividade em função da incidência luminosa.

Suas partes podem ser vistas na Figura 3.

Figura 3: Partes do LDR.

A resistência elétrica do LDR varia de forma inversamente proporcional a intensidade luminosa, assim, quanto maior a incidência de luz no componente, menor será sua resistência. 

A variação de resistência elétrica geralmente é muito significativa.  Variações desde algumas centenas de Ohms quando o componente está recebendo bastante luz até valores próximos a 1 M Ohm quando totalmente no escuro são típicas.

A resposta da resistência em função dá luz incidente (lux) no LDR é bastante linear. Na Figura 4, podemos observar o gráfico característico.

 


Figura 4: Resistência em função da iluminação. Resposta bastante linear.

 

Você também precisa ter uma noção de quanto cada fonte de luz produz de iluminação. Na figura 5, há valores aproximados, que você pode se basear. 

 

Figura 5: Fontes de luz e quantidade de luz produzida.

Vale ressaltar que o LDR é fabricado para responder a determinados tipos de luz. Dessa forma, um LDR que é sensível a luz visível poderá apresentar comportamento diferente dependendo da cor da luz.

 

 LDR comercial

Para exemplificar o que escrevi, vamos utilizar o modelo comercial fabricado pela empresa Sunrom Technologies. Datasheet do componente aqui neste link link.

No datasheet são dadas algumas características gerais do LDR e também algumas aplicações. Na seção de características elétricas podemos verificar que o componente possui resistência elétrica de 400 Ω para uma intensidade luminosa de 1000 Lux. Já para uma intensidade de 10 Lux a resistência aumenta para 9 kΩ.

Ainda, temos a informação da sensibilidade do componente em função do comprimento de onda de luz. Este componente apresenta maior sensibilidade em torno de 550 nm. A Figura 6 ilustra este comportamento.

 

Figura 6: Resposta do LDR em função do comprimento de onda da luz. Fonte: Sunrom.

Outras características importantes de se verificar no datasheet são a corrente e a potência máxima que o LDR suporta. Além destas, se tem o tempo de resposta do componente, pois o mesmo não reage instantaneamente a variação de luz.

 

 Conexão do LDR ao Arduino

Agora que já sabemos como funciona e as características básicas do LDR, vamos aprender a utilizá-lo.

A forma mais simples para a implementação do LDR em seus projetos com Arduino é utilizá-lo em um divisor de tensão. Este divisor, em sua forma mais simples, é feito com dois resistores, sendo um deles o próprio LDR. Esta configuração é apresentada no esquema elétrico da Figura 7.

Figura 7: Esquema elétrico para a aplicação de um LDR com o Arduino.

Neste circuito, a variação da resistência do LDR provoca uma variação de tensão no ponto Vo. Portanto, teremos uma variação de tensão Vo em função da quantidade de luz incidente sobre o LDR. Você pode comprovar isto montando o circuito da Figura 7 e realizando a medição de tensão em Vo com o multímetro.

Para obter a leitura da intensidade luminosa utilizando o LDR com o Arduino, basta que realizemos a leitura da tensão Vo. Isto é feito através do conversor Analógico Digital (AD) do Arduino. O valor lido através do AD deve ser tratado de maneira correta para ter uma representação coerente para com a intensidade luminosa.

 

 Como funciona o divisor de tensão com o LDR

Para facilitar a compreensão do funcionamento do LDR, vou explicar detalhadamente o funcionamento do circuito da Figura 5.

O objetivo é entendermos a variação de tensão no meio dos divisores, em função da variação de resistência do LDR (incidência de luz).

Com base no circuito da Figura 5, a alimentação é de 5V. Uma corrente circula através do resistor R1 e do LDR. Como eu disse antes, o LDR é um resistor, e vamos nomear esta resistência de R_{LDR. Portanto, a corrente elétrica que circula pelo circuito, em Ampères, é dada por:

i = \frac{5 V}{R1 + R_{LDR}

Com o conhecimento da corrente i, podemos calcular a tensão na união dos resistores (nomeada como ADC) em função do valor da resistência do LDR:

Vadc = (i) (R_{LDR})

Como Vo é a medida que o Arduino faz através da utilização do ADC, você pode utilizar o resultado para comparar com outro valor e executar uma ação, pode converter em uma escala luminosa (LUX), etc. Desta vez, vou te ensinar a comparar o valor o do ADC com outro valor e executa uma ação.

Para R1, usualmente opto por valores entre 0,33 e 0,5 do valor de RLDR, na faixa de luminosidade que desejo trabalhar. 
Vamos a um exemplo: supondo que você deseja ligar uma lampada ao anoitecer e desligar ao amanhecer. Com base na Figura 5, podemos supor que a lampada deve ligar quando tiver menos de 10 LUX no ambiente e desligar acima disto. Essa quantidade de luz corresponde (Figura 4) a um valor em torno de 20kΩ, no LDR. Logo, valores entre 6,8kΩ e 10kΩ darão bons resultados.

 


 Montando seu projeto de fotocélula

 

Chegou o momento da diversão. Para a montagem você vai precisar dos seguintes itens:

  • Arduino Uno
  • LED – na cor que desejar
  • Resistor 330R
  • Resistor 6,8kΩ
  • Fios Jumper’s
  • Protoboard
  • Potenciômetro entre 5 a 10kΩ

 Montando o circuito

Monte seu circuito conforme a Figura 8. Certifique-se que ele esteja desligado durante a montagem.

 


Figura 8: Montagem da placa Arduino com os componentes.

 

Esta montagem é simples e rápida, logo você conseguirá faze-la sem problemas. Caso tenha duvidas, escreva nos comentários, que lhe ajudaremos o mais rápido possível.  

No potenciômetro, você irá ajustar o limite de luz ambiente (LUX), que o Arduino irá comparar com o LDR. Se o valor lido no ADC ligado ao LDR for maior que o valor lido no ADC do potenciômetro, ele ligará o LED. Caso contrario desligará.

No lugar do LED, pode ser colocado outras periféricos, como um rele, pra acionar uma lampada ou motor. Também é possível utilizar o valor lido no LDR, para dimmerizar algum tipo de carga (LED, lampada, etc). Com um pouco de imaginação, você pode fazer muita coisa.

 


Programando o Arduino

 

O código é bastante simples e lendo os comentários, você facilmente poderá entende-lo.

 

Ao final, você terá uma montagem parecida com a abaixo.

 

Figura 8: Montagem da placa Arduino com os componentes.

 


Conclusão

Neste artigo, nós mostramos uma forma simples de ler o valor da luminosidade ambiente usando um LDR e executar uma ação. Replique o experimento e tente modificar o programa de acordo com o que achar interessante.

Compartilhe seus resultados conosco! Isto certamente vai ajudar muitas pessoas que também estão iniciando a programar Arduino.

Caso você teve alguma dificuldade com este artigo ou queira comentar a sua implementação, por favor deixe um comentário com a sua dúvida. Teremos prazer em ajudá-lo(a)!

1 thought on “Sensor de luz LDR com Arduino”

E aí, gostou? Opine. Assim poderemos melhorar.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *