25 Comentários

Arduino - Controle de uma lâmpada com 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
Este post faz da série Acionamento de uma lâmpada com Arduino. Leia também os outros posts da série:
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Arduino » Arduino - Controle de uma lâmpada com LDR
Talvez você goste:
Comentários:

25
Deixe um comentário

avatar
 
16 Comment threads
9 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
8 Comment authors
João AntonioAndré BarcelosMarcel PanzeraMarcos DiasClaudio Olmedo Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Luiz C
Visitante
Luiz C

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
Visitante
Fabio_Souza_Embarcados

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
Visitante
Luiz C

Muito obrigado Fábio. Tentarei isso.

Carlos Alberto Da Costa Pinto Neto
Visitante
Carlos Alberto Neto

Outra matéria com fotos faltando.

Fabio_Souza_Embarcados
Visitante
Fabio_Souza_Embarcados

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

Fabio_Souza_Embarcados
Visitante
Fabio_Souza_Embarcados

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

Abraços

Carlos Alberto Da Costa Pinto Neto
Visitante
Carlos Alberto Neto

Obrigado, vou ler.

João Antonio
Visitante
João Antonio

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

Fabio_Souza_Embarcados
Visitante
Fabio_Souza_Embarcados

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
Visitante
André Barcelos

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
Visitante
Fabio_Souza_Embarcados

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
Visitante
Marcel Panzera

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
Visitante
Fabio_Souza_Embarcados

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
Visitante
Marcel Panzera

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

Marcos Dias
Visitante
Marcos Dias

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

trackback

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

trackback

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

trackback

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

trackback

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

Séries



Outros da Série

Menu

WEBINAR
 
Linux Embarcado: Desvendando o Pin Control Subsystem - Kernel Linux

Data: 26/02 às 19:30 h | Apoio: Mouser Electronics
 
INSCREVA-SE AGORA »



 
close-link