Resumo: Ler um sensor de Luminosidade (LDR), utilizando o Arduino. Converter o sinal analógico lido em digital, e monitorar a partir de então a variação de luminosidade no ambiente que o sensor se encontra.
- Arduino
Arduino é uma plataforma de hardware e software abertos que simplifica a criação e prototipagem de projetos de eletrônica.
Uma típica placa Arduino é composta por um controlador, algumas linhas de E/S digital e analógica, além de uma interface serial ou USB, para interligar-se ao computador, que é usado para programá-la e interagi-la em tempo real.
Neste exemplo, vamos utilizar uma porta analógica do Arduino, haja vista que iremos ler um sensor analógico.
O Arduino é dotado de seis portas analógicas, que vão de A0 a A5, figura 01. Com resolução de 10 bits, e faixa de leitura de 0 à 5V. E 14 portas digitais, que vão de 0 a 13, figura 1.
- Sensor de Luminosidade - LDR
Figura 2: Sensor de Luminosidade - LDR.
LDR (do inglês Light Dependent Resistor ou em português Resistor Dependente de Luz) é um tipo de resistor cuja resistência varia conforme a intensidade de radiação eletromagnética do espectro visível que incide sobre ele.
Um LDR é um transdutor de entrada (sensor) que converte a luz em valores de resistência. É feito de sulfeto de cádmio (CdS) ou seleneto de cádmio (CdSe). Sua resistência diminui quando a luz é muito alta, e quando a luz é baixa, a resistência no LDR aumenta. Um multímetro pode ser usado para encontrar a resistência na escuridão ou na presença de luz intensa. Estes são os resultados típicos para um LDR padrão:
* Escuridão : resistência máxima, geralmente acima de 1M ohms.
* Luz muito brilhante : resistência mínima, aproximadamente 100 ohms.
Obs.: Como o LDR não tem uma resposta rápida, variações muito rápidas de luminosidade não são detectadas por ele, por exemplo: raios.
Circuito
O circuito proposto fará a leitura do sensor analógico, irá converter o sinal em digital no Arduino, de 0-1023, e a partir daí o usuário poderá utilizar esse valor convertido para monitorar a variação de luz no ambiente. E interagir com outros dispositivos, se for o caso.
Figura 3: Circuito de montagem Arduino + LDR.
No circuito acima o LDR é excitado pelo próprio Arduino, e o sinal analógico é enviado para porta A0 do Arduino.
Firmware
Figura 4: Firmware.
Descrição do firmware:
São declaradas duas variáveis chamadas “SENSOR” e “D”, a primeira tem o valor de 0, porque fará correspondência a porta analógica 0. Já a segunda é iniciada em 0, porem estará recebendo o valor lido pelo Arduino a cada ciclo.
Na função “SETUP()” é configurado a velocidade para porta serial do Arduino. E na função “LOOP()” é feita a leitura da porta analógica 0 e armazenado em “D”, em seguida, esse valor lido é enviado via porta serial do Arduino para um computador, onde neste exemplo o usuário poderá visualizar a variação desses valores na tela.
Pronto, então após gravar este firmware no Arduino e montar o circuito do LDR, como mostrado na figura 3, obteremos o seguinte:
Resultados
Figura 5: Resultados.
Nesta janela podemos observar os valores lidos pelo Arduino, do sensor de luminosidade, e enviados ao computador. Neste exemplo o Arduino somente envia ao PC o valor lido, mas em outras aplicações o Arduino pode executar ações, como acionar dispositivos, tudo isso a partir o que construímos ate agora.
Figura 6: Janela de dados recebidos via porta serial.
Veja que o valor oscila bastante, isso porque este valor varia de acordo com a mudança da intensidade de luz que incide sobre o sensor.
Você pode assistir a esse tutorial em vídeo passo-a-passo no, You Tube, link:
Ou no site
EngCOMPER: www.engcomper.com
Olá boa tarde, estou a tentar converter os valore lidos LUX, mas esta conversão não é linear, pois para valores baixos existe um desfasamento grande em relação ao meu Luximetro assim acontece também para valores muito altos, qual a formula que devo usar?
ResponderExcluirMuito bom, com sua ajuda criei um projeto simples para quem esta começando com arduino.
ResponderExcluirNão esqueci de te referenciar.
Segue o link.
http://f1dicas.blogspot.com/b/post-preview?token=lNF-5TgBAAA.ioDt0ZkcdqDV4pdzeNwc1w.iMeTqOJE8KcqpBfsAd3NSQ&postId=422281150062864325&type=POST
Boas =)
ResponderExcluirComprei o meu Arduino á uns dias, desde então tenho investigado para ver se aprendo coisas novas, ainda sou novo nesta área.
A minha maior duvida é acerca das resistencias (isto pode parecer um erro mt estupido e básico :x)
Tal como voce, tentei ler os valores do LDR mas obtenho quase sempre o mesmo resultado (1023) e mesmo ao tapar o LDR com a mao o valor desce muito pouco (fica á volta dos 1000).
Penso que isto acontece por nao ter a resistencia no circuito...
A minha pergunta é a seguinte: Como saber qual resistência usar e quando usar?
Frequentemente tenho esta duvida ao pesquisar progetos e esquemas na internet...
Peço desculpa pela minha pergunta acerca de eletronica básica da mais básica xD
Continuação de bons projectos! =D
Sker, como posso entra em contato com vc, para tira uma dúvida ?
ResponderExcluirDa para usar em uma porta digital com esse mesmo ldr?
ResponderExcluirMuito bom gostei...
ResponderExcluir