Conhecimento
No artigo de hoje, usaremos um sensor de nível de luz LDR. LDR significa “light dependent resistor”, que é exatamente o que esse sensor faz. É um resistor cuja resistência (entre dois terminais) depende da quantidade de luz que ele recebe.
Segundo essa fonte, sua resistência aumenta com menos luz e diminui com mais luz. A resposta espectral na imagem abaixo mostra que ele é mais sensível à luz verde do que qualquer outra cor. Isso se deve à sua constituição, feita de CdS (Sulfeto de Cádmio).
LDRs são considerados dispositivos lentos, com respostas levando entre 2ms e 50ms. É muito
mais lento do que um fotodiodo ou fototransistor, por exemplo. É por isso que você o vê sendo
aplicado principalmente à detecção crepuscular em iluminação pública.
Você poderia, é claro, aplicá-lo para robótica caseira/hobby, como em construções com
Arduíno
O circuito para testes
Implementamos um circuito de teste simples, com o LDR em série com um resistor de 10k
Ohm. Ele é lido pelo Raspberry Pi Pico 2 por meio de uma entrada analógica, A0. Poderia ser
qualquer outra placa com uma entrada analógica, como o Arduino UNO, ESP32, STM32,
família PIC etc.
Ele é fornecido pelos 3,3 V do próprio Pi Pico 2, já que ele consome apenas alguns
miliamperes. Se você fosse usar um Arduino UNO, poderia fornecer ao sensor 5 V sem
problemas. Em sistemas de 3,3 V como o ESP32, é melhor usar 3,3 V.
Código para Arduíno
Como dito antes, a interface de um LDR com um microcontrolador é tão fácil quanto ler uma
entrada analógica. É basicamente o que eu faço no código abaixo, a cada 500 ms (meio
segundo) eu leio a entrada analógica com analogRead(A0).
Então eu imprimo a variável “ldrvalue” no console serial no software Arduino IDE.
Um recurso importante a ser lembrado sobre o Raspberry Pi Pico 2 é a capacidade de alterar a
resolução da entrada analógica. Esta é a razão pela qual eu uso analogReadResolution(12),
para definir a resolução para o máximo (12 bits).
Isso significa que podemos ler valores entre 0 e 3,3 V que serão convertidos em inteiros entre 0
e 4095, no monitor serial. Depois de copiar e colar o código acima no seu software Arduino
IDE, conecte seu microcontrolador ao computador via cabo USB.
Em seguida, clique no botão de upload e aguarde um pouco. Você pode então abrir o monitor
serial do IDE, indo em “Ferramentas > Monitor serial” ou Ctrl + Shift + M.
Testando o circuito
Ao abrir o monitor serial ele começará a receber valores, assim como na imagem abaixo.
Cobrindo a face do LDR ou oferecendo mais luz, você pode ver o valor inteiro mudando.
Fiz um vídeo completo sobre o circuito, o código e os testes.
Vídeo sobre o teste: https://www.youtube.com/watch?v=sWoHgWNHI4E
Considerações finais sobre o LDR
O LDR é um sensor super simples e muito útil, capaz de traduzir nível de luz em nível de
resistência elétrica. Apesar de ser “lento” para sistemas mais críticos, ele serve muito bem para
detecção crepuscular (dia/noite) e de nível de luz em aplicações simples.
É também um sensor barato e muito consolidado, fácil de interfacear e ler. O fato de sua
resposta espectral ser diferente para cada cor também o torna interessante, possibilitando uma
aplicação de detecção de cores bem simples.
Clique e confira em nosso site alguns dos sensores LDR disponíveis: https://www.ryndackcomponentes.com.br/catalogsearch/result/?q=ldr