Como usar uma fotoresistência LDR com Arduino

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.

Comments

Comentários

ArduinoPortugal.pt:
Related Post