Controle de luminosidade com Arduino e sensor LDR

Montagem LDR

Montagem LDR

Neste artigo vamos usar um sensor LDR e um módulo Power PWM para fazer o ajuste automático de uma luminária LED. Quanto mais escuro o ambiente, maior a potência que vamos usar para acionar a luminária. Com ambientes claros e bem iluminados, automaticamente o circuito diminui o fluxo de corrente. O controle será feito via PWM. A leitura da variação da luminosidade local será feita com um fotoresistor(LDR).

 

Introdução

 

O Sensor de Luminosidade LDR (Light Dependent Resistor) é um componente cuja resistência varia de acordo com a intensidade da luz. Ou seja, é um fotoresistor. Quanto mais luz incidir sobre o componente, menor a resistência elétrica.

Neste projeto vamos usar um LDR modeo GL558. Este sensor também é usado em módulos eletrônicos como este, nos quais o sensor vem integrado a um circuito comparador. O módulo comparador pode ser usado tanto para controle on-off(saída digital) como para controle linear(saída analógica). Há também modelos que já vem integrados com relés de acionamento. No nosso caso, vamos usar o sensor avulso(sem estar integrado em um módulo), ligando-o diretamente no nosso circuito.

É importante considerar a potência máxima do sensor, que é de 100mW. Ou seja, com uma tensão de operação de 5V, a corrente máxima que pode passar por ele é 20mA. Felizmente, com 8K ohms(que medimos experimentalmente com o ambiente bem iluminado), que é a resistência mínima, a corrente ainda está longe disso, sendo 0,625mA. Dessa forma, podemos interfacear o sensor diretamente com o Arduino.

Especificações:

  • Modelo: GL5528 (DatasheetLDR)
  • Diâmetro: 5mm
  • Tensão máxima: 150VDC
  • Potência máxima: 100mW
  • Temperatura 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)

Este sensor de luminosidade pode ser utilizado em projetos com arduino e outros microcontroladores para alarmes, automação residencial, sensores de presença e vários outros. A imagem abaixo mostra o LDR que será usado no projeto.

Fotoresistor

Fotoresistor

 

Módulo Power PWM

 

O módulo power PWM nada mais é do que um pequeno circuito com um Transitor de Potência TIP122 para chavear sinais de maiores potências. Por meio do módulo podemos usar um sinal de PWM gerado pelo arduino para controlar um sinal de potência para acionar uma carga. Por exemplo, podemos usar uma fonte externa com potência suficiente para acionar um conjunto de LEDs de potência. Variando-se o Duty Cycle do PWM, nós variamos a potência entregue ao conjunto de LEDs e, consequentemente, a intensidade da luz.

Neste projeto será essa a função do módulo PWM.

Em outras aplicações, ele pode ser usado no controle de velocidade de motores de corrente contínua, ventoinhas, brinquedos elétricos e acionamento de cargas variadas.

As especificações são as seguintes:

  • Transistor Canal N;
  • Tensao maxima de trabalho 200V;
  • Corrente Maxima com dissipador 5.2A;
  • Corrente Maxima sem dissipador 1.5A;

A imagem abaixo mostra um típico módulo PWM para acionamento de cargas:

 

Aspectos de Hardware

 

Para podermos ler as variações de tensão resultantes da variação na resistência, vamos usar o sensor como parte de um divisor de tensão. Assim, a saída do divisor será dependente apenas da resistência do sensor, pois a tensão de entrada e a outra resistência são valores conhecidos. No nosso caso, vamos usar um resistor de 10K e uma tensão de operação de 5V. Assim, o sinal que vamos ler no arduino terá uma variação de 2,2V(quando o LDR for 8K) e 5V(quando o LDR for tiver resistências muito maiores que o resistor de 10K).

A lista de componentes para a montagem é a seguinte:

A luminária que vamos usar é uma matriz de Leds de potência usada para iluminar miniestúdios de fotografia(como este). Assim, uma aplicação direta desse post é no controle de iluminação de estúdios fotográficos portáteis.

De posse dos componentes, monte o circuito abaixo:

Montagem LDR

Montagem LDR

Por praticidade, ilustramos a luminária como sendo um Led convencional. Veja que o módulo PWM possui 7 pinos. Dois são o + e – da fonte de alimentação externa, geralmente indicados como “IN”. Os outros + e – com a indicação de “OUT” são os terminais que devem ser ligados à carga. Os três pinos são referentes ao controle PWM: VCC, GND e IN. VCC e GND devem ser conectados à alimentação do próprio Arduino UNO. O canal In do PWM foi conectado à saída digital 6, que será usada para gerar o PWM.

O LDR ficou com um dos resistores do divisor de tensão, e sua saída foi conectada à entrada analógica A0.

 

Aspectos de Software

 

 

#define pinoPWM 5
#define AnalogLDR A0
#define BrilhoMax 1024
#define BrilhoMin 500
int Brilho = 0;
int Leitura = 0;
int LeituraAnterior = 0;

void setup()  
{  
  pinMode(pinoPWM, OUTPUT); //Define a porta do Led como saída  
  Serial.begin(9600);
}  
   
void loop()  
{  
  Leitura = analogRead(AnalogLDR);  //Lê o valor fornecido pelo LDR 
  
  Serial.print("Leitura sensor LDR = "); 
  Serial.println(Leitura);
  Brilho = map(Leitura, BrilhoMin, BrilhoMax, 10, 255);
  Serial.print("Duty Cycle calculado = "); 
  Serial.println(Brilho);
  
  analogWrite(pinoPWM,Brilho);

  LeituraAnterior = Leitura;
  
  delay(10);
}


Acima temos o programa utilizado.

Duas funções são fundamentais no Loop principal.

  • map(valor, min1,max1,min2,max2) : Essa função faz uma tradução de escala. No nosso caso, a leitura do canal analógico varia entre 500 e 1024(valores obtidos experimentalmente deixando o LDR exposto à iluminação local e cobrindo-o com um invólucro). Mas o Duty Cycle do PWM é ajustado numa escala de 0 a 255. Assim, usamos essa função para mapear o valor que foi lido(que pertence ao range ( 500-1024)  para um valor correspondente no range 0-255;
  • analogWrite(valor): Essa é a função que gera o sinal PWM. Como argumento nós passamos o valor de Duty Cycle, que é um valor que varia de 0(0% Duty Cycle) a 255(100% de Duty Cycle). Veja mais em analogWrite;

Assim, fazemos a leitura do LDR com o analogRead(pino) e com base no valor lido ajustamos o Duty Cycle do PWM.

Com esse circuito e firmware, quando o LDR está exposto à iluminação ambiente, a luminária LED é acionada com Duty Cycle próximo de zero, ou seja, com luz muito fraca. Quando o ambiente escurece, a luminária é acionada com Duty Cycle próxima a 100%, ou seja, é acesa na potência nominal.

 

Botando pra rodar!

 

A imagem abaixo mostra como ficou a montagem.

Montagem LDR

Montagem LDR

A montagem é simples, mas permite fazer projetos bem interessantes para controlar luminárias. O mesmo esquemático pode ser usado para controlar motores e outras cargas com base na variação de luminosidade.

 

Considerações finais

 

Com o LDR e o módulo power PWM você pode fazer várias montagens para controlar luminosidade ou mesmo apenas medir o quão bem um ambiente está iluminado. Se tiver alguma dúvida, deixe nos comentários para que possamos te ajudar. Até a próxima!

Faça sua avaliação.
Por favor, aguarde...
Vitor Vidal
Vitor Vidal
Engenheiro eletricista, mestrando em eng. elétrica e apaixonado por eletrônica, literatura, tecnologia e ciência. Divide o tempo entre pesquisas na área de sistemas de controle, desenvolvimento de projetos eletrônicos e sua estante de livros.