Testando Sensor LDR (resistor dependente de luz) com Arduíno Uno

O LDR (resistor dependente de luz) é construído a partir de material semicondutor com elevada resistência elétrica. Quando a luz que incide sobre o semicondutor tem uma frequência suficiente, os fótons que incidem libertam elétrons para a banda condutora que melhorarão a sua condutividade e assim diminuir a resistência [Wikipédia].

Comumente é utilizado em projetos com Arduíno e outros microcontroladores para alarmes, automação residencial, sensores de presença etc.

Especificações do modelo GL5528 [FilipeFlop]:
– Diâmetro: 5mm
– Tensão máxima: 150VDC
– Potência máxima: 100mW
– Tensão de operação: -30°C a 70°C
– Espectro: 540nm
– Comprimento com terminais: 32mm
– Resistência no escuro: 1 MΩ (Lux 0)
– Resistência na luz: 10-20 KΩ (Lux 10)

Como funciona o LDR

Ao iluminarmos um LDR, a sua resistência apresenta valores muito baixos. Ao cortarmos a iluminação, a resistência sobe.

Conectando o Sensor

O esquema elétrico abaixo mostra uma ligação ao Arduíno Uno que exibe o valor de leitura no console.

O sensor foi ligado em 5v a saída foi conectada em série com um resistor no GND e na porta A0 do Arduíno.
O teste foi realizado lendo a saída no monitor serial (não usei LED neste exemplo)

Esquema elétrico

Código utilizado no teste

int pinLDR = A0; // => LDR entry
int readValue = 0;                   

void setup()
{
  Serial.begin(9600); // => start monitor serial
}

void loop()
{
  readValue = analogRead(pinLDR); // => read the value from LDR
  Serial.println(readValue);
  delay(100);                   
}

Verificando a variação de intensidade de luminosidade

Este projeto consiste em utilizar um sensor LDR para realizar a leitura da luminosidade do local e exibir em uma escala 1 a 10 acendendo uma fileira de LEDs. Quando mais luz no receptor, maior a quantidade de LEDs que ficam acesos.

Os LEDs foram ligados nas saídas 2 até 11 do Arduíno.
O LDR foi ligado exatamente como no exemplo acima.

Não vou adicionar o esquema elétrico desse projeto devido a sua grande simplicidade. Mas as ligações podem ser vistas na imagem abaixo.

Código utilizado no teste

int pinLDR = A0; // => LDR entry
int readValue = 0;
int mappedValue = 0;

void setup() { } // => there is no setup for this project

void loop()
{
  readValue = analogRead(pinLDR); // => read the value from LDR
  mappedValue = map(readValue, 210, 740, 2, 11); // => maps to a 2 to 11 value
  for (int i = 2; i <= 11; i++) {
    if (i <= mappedValue) { // turn on all the LEDs below or equal the values mapped
      digitalWrite(i, HIGH);
    } else {
      digitalWrite(i, LOW);
    }
  }
  delay(100);
}

Vídeo do projeto em funcionamento.

Qualquer dúvida ou dicas, entre em contato: leandrolt@gmail.com

Principais referências

– https://pt.wikipedia.org/wiki/LDR
– https://www.filipeflop.com/produto/sensor-de-luminosidade-ldr-5mm/
– https://www.filipeflop.com/universidade/kit-maker-arduino/projeto-10-sensor-de-luz-ambiente/
– https://www.arduinoecia.com.br/controle-de-luz-com-ldr-e-arduino/
– https://blogmasterwalkershop.com.br/arduino/como-usar-com-arduino-fotoresistor-sensor-ldr-5mm/

Leave a Reply

Your email address will not be published. Required fields are marked *