Projeto 10 – Sensor de luz ambiente

Neste projeto iremos mostrar que é possível identificar a quantidade de luz presente em um ambiente utilizando o Arduino e o sensor de luminosidade LDR (Light Dependent Resistor). O LDR é bastante usado nos postes de luz na cidade, fazendo que quando anoiteça as luzes da cidade acendam. Ele também é usado em lâmpadas de jardim que acendem ao anoitecer. Veja neste projeto como utilizar o sensor de luz LDR com Arduino.

Sensor de luminosidade LDR

Assim como um potenciômetro varia sua resistência conforme a rotação, o LDR é um resistor que varia sua resistência conforme a intensidade de luz no ambiente. Com isso conseguimos medir a quantidade de luz presente em um ambiente.

Sensor LDR

Da mesma forma que o potenciômetro é ligado em uma entrada analógica do Arduino, também é possível utilizar uma porta analógica para ler o valor de um LDR. Para o LED, iremos trabalhar apenas com uma porta digital.

O projeto 10 consiste em ligar ou desligar o LED de acordo com a intensidade de luz presente no ambiente. Pouca luz acende o LED, bastante luz apaga o LED. Você pode variar a luz do ambiente acendendo ou apagando as luzes ou colocando a mão em cima do sensor LDR como mostrado abaixo.

Material necessário

1x LED Vermelho 5 mm
1x Resistor 220 ohm
1x Resistor 10K ohm
1x Sensor de luminosidade LDR
7x Jumper Macho-macho
1x Cabo USB
1x Placa Uno

Montagem do circuito

Na montagem deste projeto, atente-se a montagem do LED, pois, como já mostramos no projeto 1, ele tem lado positivo e negativo. Já o sensor de luminosidade LDR não tem lado, ou seja apenas insira os seus pinos na protoboard e faça a ligação conforme indicado abaixo. Note que o LDR usa um resistor de 10K ohm e o LED um resistor de 100 ohm.

Montagem sensor de luz LDR com Arduino

Programa Projeto 10 – Sensor de luz ambiente

// Projeto 10 - Sensor de luz ambiente

int pinoLed = 13; 
int pinoSensorLuz = A0;               
int valorLuz = 0;                      

void setup()
{
     pinMode(pinoLed,OUTPUT);        
}

void loop()
{
  valorLuz = analogRead(pinoSensorLuz);        
  if(valorLuz<750)
  {                
    digitalWrite(pinoLed,HIGH);
  }
  else
  {                    
    digitalWrite(pinoLed,LOW);
  }
  delay(10);                   
}

Possíveis erros

Caso o projeto não funcione, verifique alguns dos possíveis erros:

  • Verifique se os jumpers estão na mesma coluna dos terminais dos componentes, fazendo assim a conexão;
  • Verifique se os jumpers estão ligados nos pinos corretos no Arduino;
  • Verifique se o valor de resistores está correto como indicado na montagem do projeto;
  • Verifique se o código carregou na placa através da IDE Arduino.

Desafios

Veja abaixo alguns desafios que você pode tentar!

  • Mude a sensibilidade do sensor LDR modificando o valor na linha if(valorLuz<750). Experimente valores como 600 ou 900. Lembrando que esse valor pode ser entre 0 e 1023;
  • Modifique a programação para realizar o inverso do objetivo proposto. Pouca luz apaga o LED, bastante luz acende o LED.

Alguma dúvida, comentário ou algo que queira acrescentar? Entre no tópico do nosso fórum!