Ir para conteúdo
  • Cadastre-se

Controle de luz utilizando LDR

Avalie este tópico:


djsync

Posts em destaque

Algumas pessoas me escreveram perguntando sobre sensores de luz, e como poderia ser montado um dispositivo que acendesse uma lâmpada ao escurecer.

Esse é um circuito bem simples de montar, e que utiliza pouquíssimos componentes, entre eles, um componente barato e fácil de encontrar: O LDR (Light Dependent Resistor, ou Resistor Dependente de Luz), componente disponível no Kit Arduino Iniciante.

ldr-5mm.jpg

 

O LDR, como o próprio nome diz, é um resistor cuja resistência varia em função da luminosidade que incide sobre ele, devido ao material fotossensível que cobre o componente.

 

Ao iluminarmos um LDR, a sua resistência apresenta valores muito baixos. Ao cortarmos a iluminação, a resistência sobe. Observe isso na prática, nas fotos abaixo, onde eu aplico luz ao LDR (imagem da esquerda), e a resistência medida é baixa, e na imagem da direita, cubro parcialmente o LDR e ocorre o aumento da resistência:

Comparativo-LDR.jpg

 

Conhecendo os princípios básicos do componente, podemos montar um circuito onde, com incidência de luz, o led se apaga, e ao cobrirmos o LDR, o led se acende:

Circuito_LDR_LED.jpg

 

O programa para este circuito lê o valor da porta analógica (que deve estar na faixa de 0 a 1024), verificando se o valor é maior do que 800 (LDR encoberto) e consequentemente acendendo o led. Usei no meu circuito um resistor de 330 ohms para o led e de 10K para o LDR. Caso o seu circuito não funcione adequadamente, ajuste esses valores:

 

// Programa : LDR - Sensor de Iluminação  
// Autor : Arduino e Cia  
   
int portaLed = 10; //Porta a ser utilizada para ligar o led  
int portaLDR = A5; //Porta analógica utilizada pelo LDR  
  
void setup()  
{  
  pinMode(portaLed, OUTPUT); //Define a porta do Led como saída  
}  
   
void loop()  
{  
  int estado = analogRead(portaLDR);  //Lê o valor fornecido pelo LDR  
    
  // Caso o valor lido na porta analógica seja maior do que 
  // 800, acende o LED  
  // Ajuste o valor abaixo de acordo com o seu circuito  
  if (estado > 800)    
  {  
    digitalWrite(portaLed, HIGH);  
  }  
  else  //Caso contrário, apaga o led  
  {  
    digitalWrite(portaLed, LOW);  
  }  
}

 

Podemos também controlar a luminosidade de um led, da mesma forma que mostramos no post Dimmer – Controlando um led através do potenciômetro, substituindo o potenciômetro pelo LDR, sem alterar o programa:

Circuito-LDR-Dimmer.png

 

// Projeto : Controle de luminosidade de led com LDR  
// Autor : Arduino e Cia  
   
int pinoled = 10; //Pino ligado ao anodo do led  
int pinopot = 5;  //Pino ligado ao LDR  
int valorpot = 0; //Armazena valor lido do LDR, entre 0 e 1023  
float luminosidade = 0; //Valor de luminosidade do led  
   
void setup()  
{  
  Serial.begin(9600);    //Inicializa a serial  
  pinMode(pinoled, OUTPUT); //Define o pino do led como saída  
  pinMode(pinopot, INPUT);  //Define o pino do LDR como entrada  
}  
   
void loop()  
{  
  // Le o valor - analogico - do LDR  
  valorpot = analogRead(pinopot);  

  // Converte o valor lido do LDR
  luminosidade = map(valorpot, 0, 1023, 0, 255); 
  Serial.print("Valor lido do LDR : ");   

  // Mostra o valor lido do LDR no monitor serial  
  Serial.print(valorpot);  
  Serial.print(" = Luminosidade : ");  

  // Mostra o valor da luminosidade no monitor serial  
  Serial.println(luminosidade); 
  
  // Acende o led com luminosidade variável
  analogWrite(pinoled, luminosidade); 
}

 

Se necessário, ajuste os valores das resistências do led e do LDR, como no circuito anterior, e tenha agora um dimmer regulado por luz (ou pela falta dela).

Esse post é uma reprodução autorizada do original publicado no site Arduino e Cia.

 

fonte: blog.baudaeletronica.com.br

Link para o comentário
Compartilhar em outros sites

Participe agora da conversa!

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, faça login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Restaurar formatação

  Apenas 75 emoticons máximos são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir apenas como um link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Você não pode colar imagens diretamente. Envie ou insira imagens do URL.

SOBRE O ELETRÔNICABR

EletrônicaBR é o melhor fórum técnico online, temos o maior e mais atualizado acervo de Esquemas, Bios e Firmwares da internet. Através de nosso sistema de créditos, usuários participativos têm acesso totalmente gratuito. Os melhores técnicos do mundo estão aqui!
Técnico sem o EletrônicaBR não é um técnico completo! Leia Mais...
×
×
  • Criar Novo...