Neste tutorial vou falar sobre as resistências LDR (Light-Dependent Resistor). As foto-resistências LDR são um tipo de resistências cujo valor resistivo varia em função da luz que incida sobre elas , o que as faz especialmente úteis em sistemas automáticos. Além disso, as resistências LDR não são apenas afetadas pela luz visível, o seu valor resistivo também vai variar com a luz infravermelha e ultravioleta. Devido às suas caraterísticas poderá funcionar como sensor de luminosidade em vários projetos.
Os LDR estão compostas principalmente por Sulfeto de cádmio (CdS). O cadmio é reagente à luz, deixando que os seus eletrões se movam livremente, permitindo a passagem da corrente elétrica.
O seu comportamento é o seguinte:
Mais luz = menor resistência eléctrica
Menos luz = maior resistência eléctrica
Vamos ver agora como usar uma das resistências LDR com o Arduino.
Montagem e ligações
Ligamos uma perna da resistência LDR a GND (negativo) e a outra perna ao pino analógico ou (Ao) do Arduino. Seguidamente intercalamos uma resistência de 10K entre o pino Ao do Arduino e o pino VCC (5v) do Arduino.
As resistências LDR não têm polaridade, por isso não importa em que perna ligamos.
Para mais, informações, pode ver esta imagem:

Sketch de teste
Agora vejamos vários sketchs se testes com diferentes formas de interagir com as resistências LDR:
Obter o valor da resistência LDR
int Pin_LDR = A0; //Usamos o pino 0 analógico (A0)
int Lectura_LDR = 0; //Variável do tipo Integer para armazenar a leitura do LDR
void setup(){
Serial.begin(9600); //Iniciamos a comunicação serie
}
void loop(){
//Obtemos a leitura da resistência LDR
//Armazenámo-la numa variável de tipo integer
Leitura_LDR = analogRead(Pin_LDR);
Serial.println(Lectura_LDR); //Mostramos a leitura pelo monitor serie
delay(1000); //Pequena pausa para a leitura ser mais fácil
}
Ligando e desligando um led baseado num limiar (threshold)
int LEDPin = 13; //Definimos o pino do LED
int LDRPin = A0; //Definimos o Pino do LDR
int threshold = 100; //Definimos o valor do limiar
void setup() {
pinMode(LEDPin, OUTPUT); //Definimos o pino do LED como saída
pinMode(LDRPin, INPUT); //Definimos o pino o LDR como entrada
}
void loop() {
//Obtemos leitura da resistência LDR
//Armazenamos numa variável de tipo integer
int input = analogRead(LDRPin);
if (input > threshold) { //Se o valor do LDR é maior que o valor do limiar
digitalWrite(LEDPin, HIGH); //Ligamos o LED
}
else { //Em caso contrário
digitalWrite(LEDPin, LOW); //Apagamos o LED
}
}
Gostaram deste artigo ? Deixem o vosso comentário no formulário a baixo.
Não se esqueçam de fazer like na nossa página no facebook.
Todos os produtos utilizados neste artigo podem ser encontrados na loja de componentes eletrónicos ElectroFun.

