LDR
Sensor de Luz - Aprendendo a usar o LDR
LDR (Light-Dependent Resistor) significa resistor dependente de luz. O seu uso é bastante interessante, pois é possível fazer com que uma lâmpada se ligue sozinha quando a luz incidente no dispositivo for menor que a desejável. É um componente muito utilizado para detectar o amanhecer e o anoitecer, nos conhecidos interruptores crepusculares ou fotocélulas. Este tipo de componente é muito utilizado em iluminação pública e também privada (garagens e áreas comuns) em todo o mundo.
Isso acontece porque o LDR possui o sensor feito de material semicondutor, que faz com que sua resisitência varie de acordo com a irradiacão incidente sobre o dispositivo. A resistência elétrica do LDR aumenta com a diminuição da intensidade luminosa, e diminui com o aumento da intensidade luminosa. Logo, se a resitêcia é baixa, o LED permanecerá apagado. Enquanto se a resitência for alta, o LED acenderá.
A resistência elétrica do LDR sob luz intensa pode variar entre 1.000 ohms e 10.000 ohms, e sem presença de luz é sempre maior que 200.000 ohms, segundo datasheets fornecidos na página oficial do Arduino e também da Sparkfun.
A construção físico-química do material semicondutor do LDR não permite que ele seja sensível a uma grande faixa do espectro de ondas eletromagnéticas; segundo os datasheets mencionados a faixa mais sensível do LDR é ao redor de 540nm, que fica entre a luz visível verde e amarela. (por isso é muito utilizado para detectar o amanhecer e o anoitecer). (Fonte: http://fritzenlab.com.br/2016/01/como-funciona-um-ldr-resistor-dependente-de-luz/)
Para fazer um sensor de luz são necessários:
- Fios Jumper’s
- Protoboard
- Arduino Uno Rev3
- 1 LED
- 1 Resistor 300Ohm
- 1 LDR
- 1 Resistor 10 kOhm
A montagem no hardware é a seguinte:
Attach:sensor-de-luz_bb1-1024x452.png Δ
Abaixo o código fonte para montagem acima:
//Sensor de luz int ledPin = 7; //Led no pino 7 int ldrPin = 0; //LDR no pino analígico 8 int ldrValor = 0; //Valor lido do LDR void setup() { pinMode(ledPin,OUTPUT); //define a porta 7 como saída Serial.begin(9600); //Inicia a comunicação serial } void loop() { ///ler o valor do LDR ldrValor = analogRead(ldrPin); //O valor lido será entre 0 e 1023 //se o valor lido for maior que 500, liga o led if (ldrValor>= 800) digitalWrite(ledPin,HIGH); // senão, apaga o led else digitalWrite(ledPin,LOW); //imprime o valor lido do LDR no monitor serial Serial.println(ldrValor); delay(100); }
O resultado esperado é que ao cobrir o LDR, o LED acenda.