0

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

Jaime Mota

Deixar uma resposta