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 

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);  
  }  
}