Controle de luz utilizando LDR
Algumas pessoas me escreveram perguntando sobre sensores de luz, e como poderia ser montado um dispositivo que acendesse uma lâmpada ao escurecer.
LDR (Light Dependent Resistor), em português resistor dependente de Luz ou Fotoresistência é um componente eletrônico passivo do tipo resistor variável, mais especificamente, é um resistor cuja resistência varia conforme a intensidade da luz
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 :
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 :
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);
}
}