O fotoresistor, conhecido pela sigla LDR "Light Dependent Resistor" ou "Resistor Dependente de Luz" é um componente eletrônico capaz de detectar a intensidade da luz.
Assim como um resistor comum, o fotoresistor tem por finalidade limitar a corrente elétrica que passa por ele, entretanto, podemos definir o LDR como um resistor variável. O componente funciona da seguinte forma: Quanto mais luz incidir sobre sua superfície, menor será a resistência, e quanto menos luz incidir sobre sua superfície, maior será a resistência.
O fotoresistor, não possui polarização como alguns outros componentes eletrônicos, como diodos ou transistores.
Portanto, você pode conectar um LDR a um circuito eletrônico sem se preocupar com a polarização correta. A resistência do LDR simplesmente varia de acordo com a quantidade de luz que incide sobre ele, independentemente da direção da luz.
A operação de um LDR é baseada em materiais semicondutores sensíveis à luz, geralmente compostos de sulfeto de cádmio (CdS) ou seleneto de cádmio (CdSe). Quando a luz incide sobre o LDR, os elétrons nos materiais semicondutores são excitados, aumentando a condutividade do dispositivo e diminuindo sua resistência elétrica. Isso acontece independentemente da direção da luz incidente, pois a luz não tem polarização intrínseca como a polarização de uma corrente elétrica em um diodo, por exemplo.
//Sensor de luz com LDR
int PinLed = 11; //Led conectado ao pino 11
int Pinldr = A5; //LDR conectado ao pino analógico 5
int Valorldr = 0; //variavel que ira receber o valor do LDR
void setup() {
pinMode(PinLed,OUTPUT); //define a porta 11 como saída
Serial.begin(9600); //Inicia a comunicação serial
}
void loop() {
//ler o valor do LDR
Valorldr = analogRead(Pinldr); //O valor lido será entre 0 e 1023
//se o valor lido for maior que 800, liga o led
if (Valorldr>= 800) digitalWrite(PinLed,HIGH);
// se não, apaga o led
else digitalWrite(PinLed,LOW);
//imprime o valor lido do LDR no monitor serial
Serial.println(Valorldr);
delay(100);
}