Arduino – Controle de uma lâmpada com LDR

Vamos explicar como acionar automaticamente uma lâmpada conforme a luminosidade ambiente, utilizando como sensor o LDR. Saiba mais sobre Arduino LDR.
Este post faz parte da série Acionamento de uma lâmpada com Arduino. Leia também os outros posts da série:

No artigo anterior apresentamos como ligar uma lâmpada AC utilizando um relê. Dando continuidade a esse assunto, agora vamos explicar como acionar automaticamente uma lâmpada conforme a luminosidade ambiente, utilizando como sensor o LDR.

LDR

O LDR é um resistor sensível à luz que varia sua resistência conforme é alterada a intensidade luminosa que incide sobre ele. À medida que a intensidade luminosa aumenta (o ambiente fica mais claro) a sua resistência diminui para algumas dezenas de Ohms, e quando a intensidade luminosa diminui (o ambiente fica mais escuro) a sua resistência aumenta para alguns mega Ohms.

Através dessa característica pode-se utilizar esse sensor para detectar a luminosidade do ambiente, para tomar uma decisão como, por exemplo, ligar uma lâmpada, como ocorre nas fotocélulas.

Ele é um sensor de baixo custo e está presente em muitos circuitos eletrônicos que necessitam monitorar a luz ambiente. O seu uso é bem simples, onde através de um circuito divisor resistivo a variação de resistência é convertida em tensão e usada pelo circuito de controle.

Para fazer a leitura da variação de luminosidade, ou seja, a variação de resistência do LDR, é necessário montar um divisor de tensão, conforme o esquema abaixo:

Arduino LDR -Esquemático

Você pode montar esse circuito facilmente em um protoboard:

Arduino LDR -PROTO

Através do circuito apresentado pode-se calcular o valor da tensão de saída para uma determinada resistência do LDR, através da seguinte fórmula:

Arduino LDR -divisor-formula

Por exemplo, em uma ambiente quase escuro o LDR apresenta resistência de aproximadamente 500 KOhm, e o valor de tensão de saída será:

Arduino LDR -divisor-500K

E em uma ambiente claro a resistência do LDR cai para aproximadamente 300 Ohm. Assim, a tensão de saída será:

Arduino LDR -divisor-300R

Nota-se através dos cálculos que a tensão de saída do conversor aumenta quando a intensidade luminosa aumenta e diminui quando ambiente vai ficando escuro.

Para verificar o valor de conversão AD do Arduino, para a variação de temperatura podemos usar o seguinte sketch:

Abrindo o monitor serial pode verificar a variação do valor de conversão AD.

Montagem do Circuito para Acionamento de lampada com Arduino e LDR

Agora vamos à montagem do circuito completo para controle da lâmpada com Arduino e LDR.

Atenção: Esse projeto utiliza eletricidade (tensão alternada – AC) que pode ser perigosa para quem trabalha com ela e não saiba exatamente o que está fazendo. Apenas reproduza esse projeto com segurança. Caso não tenha o conhecimento necessário para fazer a experiência de maneira segura, faça-o na presença ou sob orientação de alguém mais experiente. Assuma sempre que a sua segurança deve estar em primeiro lugar.

Arduino LDR -CircuitoRele

O sketch a seguir fará com que a lâmpada acenda quando estiver escuro, e apague quando estiver claro:

Funcionamento do Arduino LDR

Inicialmente foram definidas duas constantes para o relê e para a entrada do sensor. Na função Setup o pino do relê foi configurado como saída digital. Na função loop, inicialmente é lido o valor da conversão AD no pino A0, e existe uma estrutura de decisão baseada nesse valor. Caso ele esteja abaixo do valor determinado como parâmetro para ambiente escuro (note que este valor pode ser alterado facilmente no #define), o relê é ligado. O rele só será desligado quando o valor lido for maior ou igual ao valor determinado como ambiente claro. Esse valores limites podem ser determinados através do sketch que faz a leitura do LDR, e através de alguns testes pode-se verificar os valores para as condições ambientes submetidas. Pode-se variar os valores limites para adequar a outros ambientes ou determinadas necessidades.

Conclusão

A leitura do LDR é bem tranquila, necessitando apenas da montagem de um divisor de tensão e a correta leitura do canal analógico. O exemplo apresentado pode ser utilizado para automação residencial para verificar a luminosidade do ambiente onde você poderá ligar uma lâmpada, ou outro dispositivo. Pode ser interessante adicionar outros recursos, como temporização, por exemplo, e as lâmpadas só poderão ficar ligadas de segunda a sexta, da hora que acenderem até as 00:00. Para isso basta acrescentar um relógio de tempo real e verificar o horário de desligar. Você pode também utilizar o LDR em conjunto com um sensor de presença em uma garagem, por exemplo, e só acender a lâmpada apenas quando tiver movimento e estiver escuro.

Existem diversas aplicações para o uso do LDR, espero que você possa aplicar em outros circuitos. Conte suas experiências e em qual aplicação pretende usar o LDR.

Para aprender mais sobre Arduino 

Arduino – Primeiros Passos

Arduino UNO

Criando suas próprias bibliotecas para Arduino

Referências

Wikpedia  – LDR

LDR – Light Dependent Resistor

Tutorial Arduino – FBS Eletrônica

Outros artigos da série

<< Acionamento de uma lâmpada com Arduino

Engenheiro, especialista em sistemas embarcados. Hoje é diretor de operações do portal Embarcados, onde trabalha para levar conteúdos de eletrônica, sistemas embarcados e IoT para o Brasil.

Também atua no ensino eletrônica e programação. É entusiasta do movimento maker, da cultura DIY e do compartilhamento de conhecimento, publica diversos artigos sobre eletrônica e projetos open hardware.

Com iniciativas como o projeto Franzininho e projetos na área de educação, leva a cultura maker para o Brasil capacitando e incentivando professores e alunos a usarem tecnologia em suas vidas. Participou da residência hacker 2018 no Red Bull Basement.

Notificações
Notificar
guest
25 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
João Antonio
João Antonio
08/10/2015 14:03

Como posso saber a unidade de medida que o programa do Arduino esta me indicando no monitor serial ?

Fabio_Souza_Embarcados
Fabio_Souza_Embarcados
Reply to  João Antonio
08/10/2015 15:55

Vai depender da escala de conversão que você utilizar. No caso desse artigo ele está apenas enviando o valor da conversão analógica para digital com um conversor de 10 bits.

Abraços

André Barcelos
André Barcelos
19/08/2015 17:16

Caros colegas! Primeiramente desculpe-me a ignorância, mas, utilizando o mesmo esquema acima, teria como alterar a luminosidade da Lâmpada de acordo com a variação da luminosidade do ambiente (um FADE com uma lâmpada ao invés de LEDs como exemplos comumente encontrados)? Grato!

Fabio_Souza_Embarcados
Fabio_Souza_Embarcados
Reply to  André Barcelos
19/08/2015 17:38

Olá André, com o exemplo acima só é possivel ligar e desligar a lampada. Para controlar a intensidade luminosa você precisa de um circuito com triac. Da uma olhada nesses exemplos: http://playground.arduino.cc/Main/ACPhaseControl

http://www.instructables.com/id/safe-and-simple-AC-PWM-Dimmer-for-arduino-Raspberr/

http://www.instructables.com/id/Arduino-controlled-light-dimmer-The-circuit/

https://www.youtube.com/watch?v=CmU2u2kHH1U

Abraços

Marcel Panzera
Marcel Panzera
05/08/2015 10:57

Eu poderia utilizar o LDR no sinal analógico para determinar a turbidez da água? Visto que a turbidez é medida em relação à quantidade de luz que ultrapassa uma quantidade de águaá

Fabio_Souza_Embarcados
Fabio_Souza_Embarcados
Reply to  Marcel Panzera
05/08/2015 11:31

Sim, porém você deverá ter um ambiente controlado com uma fonte de luz também controlada, além de um circuito de condicionamento de sinal para o sensor.

Da uma olhada nesses videos:

https://www.youtube.com/watch?v=IV_esqVmYGk

https://www.youtube.com/watch?v=tTkK3uVHPJc

Marcel Panzera
Marcel Panzera
Reply to  Fabio_Souza_Embarcados
06/08/2015 18:37

Show Fábio!!! Muito obrigado
Ótima explicação!!!

Marcos Dias
Marcos Dias
03/07/2015 10:57

Eu queria saber é possível ligar um led ou motor com o ldr sendo quando tem luminosidade no lugar. ou seja acionar quando ligar a lanterna

Claudio Olmedo
21/05/2014 08:45

Parabéns Pelo post, E muito bom, quando não tem onde comprar, assim distribuidores, revendedores, e outros podem compartilhar a informação. Muito bom.

Luiz C
Luiz C
14/09/2016 14:48

Olá Fábio. Será que pode me dar uma dica? Estou tentando montar um circuito simples com o LDR e arduino com a finalidade apenas de o horário da aurora e do ocaso, ou seja quando o Sol nasceu e quando se pôs. Para tanto estou registrando os valores de tensão obtidos a partir do fotoresistor. Aqui é que está o problema. Meu código só tem dado dois valores de tensão (mínima e máxima) 0,16V e 5,00V, ou seja é tudo ou nada, parece não haver para ele valores intermediários de iluminação. Será que você teria uma dica que eu pudesse… Leia mais »

Fabio_Souza_Embarcados
Fabio_Souza_Embarcados
Reply to  Luiz C
14/09/2016 16:35

Olá Luiz,

Acredito que o ganho do operacional está muito alto. Tente calibra o potenciômetro para uma faixa maior de leitura. Você pode simular diferentes ambientes de iluminação e calibrar o circuito.

Abraços

Luiz C
Luiz C
Reply to  Fabio_Souza_Embarcados
14/09/2016 17:52

Muito obrigado Fábio. Tentarei isso.

Carlos Alberto Da Costa Pinto Neto
Carlos Alberto Neto
03/08/2016 21:56

Outra matéria com fotos faltando.

Fabio_Souza_Embarcados
Fabio_Souza_Embarcados
Reply to  Carlos Alberto Neto
04/08/2016 08:36

Olá Carlos, estou providenciando as imagens. Obrigado por avisar.

Fabio_Souza_Embarcados
Fabio_Souza_Embarcados
Reply to  Fabio_Souza_Embarcados
05/08/2016 15:06

Olá Carlos, as imagens foram atualizadas. Muito obrigado pelo aviso.

Abraços

Carlos Alberto Da Costa Pinto Neto
Carlos Alberto Neto
Reply to  Fabio_Souza_Embarcados
06/08/2016 01:30

Obrigado, vou ler.

trackback
02/06/2015 15:31

[…] Arduino – Controle de uma lâmpada com LDR […]

trackback
28/05/2015 08:21

[…] Arduino – Controle de uma lâmpada com LDR […]

trackback
05/05/2015 15:29

[…] Arduino – Controle de uma lâmpada com LDR […]

WEBINAR

Imagens de Ultrassom: Princípios e Aplicações

DATA: 26/10 ÀS 19:30 H