Para dar continuidade a nossa série sobre Sensores, falaremos hoje sobre o LDR (Light Dependent Resistor). Para quem não conhece, este é um tipo de sensor que trabalha identificando a variação de luz que incide sobre ele. Este dispositivo é muito barato, e possui uma infinidade de aplicações. Em nosso post de hoje, ensinaremos a fazer uma simples aplicação deste componente com Arduino. Quer saber qual é o nosso projeto? Então chega mais!
Funcionamento
O LDR é um componente eletrônico muito interessante. Ele é um tipo de resistor que trabalha alterando o valor sua resistência conforme a intensidade de luz é aplicada sobre o mesmo. A relação entre luminosidade e resistência no LDR é inversamente proporcional. Ou seja, à medida que a intensidade luminosa aumenta, a resistência diminui. O responsável por essa alteração da resistência é um eletrodo em forma de “S”, que fica localizado na parte superior do dispositivo.
Esse eletrodo é feito de um composto químico semicondutor chamado de sulfeto de cádmio.Quando os fótons (as partículas de luz) incidem sobre ele, causam a liberação de elétrons das moléculas. Quanto mais elétrons disponíveis, menor a resistência elétrica.Para ver a variação medida na prática, basta ter um multímetro caseiro. Conecte as conta de prova nas duas pernas do LDR e coloque a chave seletora na escala Ohmica. Agora, com a luz do celular, ou uma lanterna, você poderá observar a variação no visor do multímetro.
Montagem do Protótipo
Para montar nossa aplicação, primeiro precisamos entender qual é a finalidade dela. Pois bem, o objetivo do projeto vai ser identificar o nível de luminosidade presente em um ambiente. Para fazer isso, vamos contar com a ajuda de um display LCD de 20×4, o qual vai ficar responsável de nos mostrar se a iluminação vai estar Alta, Média ou Baixa. Tudo isso vai ser controlado pelo Arduino, que vai receber o sinal do sensor através de uma de suas portas analógicas e depois escreve no display a condição de luz do local.
Vamos começar então, pela ligação do sensor. O nosso objetivo nesse caso, vai ser captar a tensão de saída do dispositivo.Para fazer isso, iremos utilizar a regra do Divisor de Tensão. O circuito desse conceito fica assim:
A segunda parte da montagem do nosso protótipo, vai ser a integração do display junto ao Arduino e o circuito do sensor. Vale lembrar que se tiver dúvidas em como utilizar o display LCD, basta acessar o nosso tutorial sobre o assunto.
Aplicação com Arduino
A interação do LDR com Arduino é bem fácil, então veja as seguintes ações de nosso sketch:
Primeiro importamos a biblioteca do display LCD. Em seguida setamos as portas que vão ser utilizada pelo mesmo. Na sequencia declaramos uma variável com nome de valConv para receber o sinal da porta A0. O nosso setup ficará em branco, pois o nosso programa precisará ser executado várias vezes. Dentro do Loop ficaremos, indefinidamente, recebendo sinal do sensor e executando as condições para saber a intensidade da luz.
Então, agora é hora de colocarmos a mão na massa e fazer o projeto funcionar. Para isso vamos precisar dos seguintes componentes:
- Um Arduino (Uno R3 ou similar)
- Um LDR
- Um resistor de 10KOhms
- Um Display LCD 20×4 (se o display for diferente, basta alterar os codigos)
- Um poteciometro de 10KOhms
- Jumpers para as conexões
- Uma Protoboard
- Um Cabo USB para carregar o programa para o Arduino (e alimentar o Arduino)
Diagrama de Conexões
Código Com Arduino
#include <LiquidCrystal.h>// Importando a biblioteca do Display //---------------------------------------------- LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Inicializando as portas de dados do display int valConv = 0; //Variavel usada para ler o valor que é convertido pela função analogRead //Setup(Executado apenas uma vez) void setup(){ } //Laço principal (Executado Infinitamente) void loop(){ valConv = analogRead(0);// Le o valor do sensor no pino A0 //Condição para luminosidade Baixa if (valConv < 600) { lcd.begin(20, 4); lcd.setCursor(4,0); lcd.print("Sensor LDR"); lcd.setCursor(1, 1); lcd.print("Luminosidade Baixa "); lcd.setCursor(12,1); lcd.setCursor(3,3); lcd.print("fazedores.com"); } //Condição para luminosidade Média if (valConv >= 600 && valConv <= 700) { lcd.begin(20, 4); lcd.setCursor(4,0); lcd.print("Sensor LDR"); lcd.setCursor(1,1); lcd.print("Luminosidade Media "); lcd.setCursor(12,1); lcd.setCursor(3,3); lcd.print("fazedores.com"); } //Condição para luminosidade Alta if (valConv > 700) { lcd.begin(20, 4); lcd.setCursor(4,0); lcd.print("Sensor LDR"); lcd.setCursor(1,1); lcd.print("Luminosidade Alta "); lcd.setCursor(12,1); lcd.setCursor(3,3); lcd.print("fazedores.com"); } delay(1000);//Espera 1 segundo para executar o laço novamente }
É possível notar que nosso sketch é bem simples. O que ele faz é, ficar lendo indefinidamente o sinal que sensor transmite, e em seguida escreve no display o nível de intensidade de luz.
Aqui vai o vídeo de funcionamento do nosso protótipo:
Se formos criativos, podemos usar um ou vários desses sensores para montar projetos bem legais. Então agora é hora de tirar o seu material da gaveta e começar a botar pra quebrar. E não se esqueça de nos contar o que você fez. E qualquer duvida, basta entrar em nosso fórum e perguntar.
Onde comprar?
Compre Arduino, componentes eletrônicos e ferramentas na FilipeFlop. Os preços são ótimos, a agilidade é matadora e as entregas são feitas para todo o Brasil. O Fazedores e a FilipeFlop estão juntos para fomentar a cultura maker no Brasil.
Para fazer o projeto com sensores de 10mm qual resistor deve ser usado?
bom dia ,não teria como mostrar no display o valor em lúmens ?
Se o display for de 16×2 mudo o que nos codigos ?
Muito Legal, vou retomar as atividades com este projeto.