Utilize LDR e Arduino para montar um sistema que acende as luzes ao escurecer. Esse é um circuito bem simples de montar e que utiliza pouquíssimos componentes. Entre eles, um componente barato e fácil de encontrar: o LDR (Light Dependent Resistor, ou Resistor Dependente de Luz).
O LDR, como o próprio nome diz, é um resistor cuja resistência varia em função da luminosidade que incide sobre ele, devido ao material fotossensível que cobre o componente.
Como funciona o LDR
Ao iluminarmos um LDR, a sua resistência apresenta valores muito baixos. Ao cortarmos a iluminação, a resistência sobe. Observe isso na prática nas fotos abaixo:
Com incidência de luz no LDR (imagem da esquerda), a resistência medida é baixa. Cobrindo parcialmente o LDR (imagem da direita) ocorre o efeito contrário, ou seja, o aumento da resistência.
Conectando o LDR no Arduino
Conhecendo os princípios básicos do componente, podemos montar um circuito com LDR e Arduino, onde o led vai acender em um ambiente escuro, e apagar em um ambiente claro. Conectamos o led na porta digital 10 e o LDR na porta analógica A5:
O programa para este circuito lê o valor da porta analógica (que deve estar na faixa de 0 a 1024), verificando se o valor é maior do que 500 (LDR encoberto) e consequentemente acendendo o led.
Usei no meu circuito um resistor de 330 ohms para o led e de 10K para o LDR. Caso o seu circuito não funcione adequadamente, ajuste esses valores:
//Programa: LDR - Sensor de Iluminação //Autor: Arduino e Cia int portaLed = 10; //Porta a ser utilizada para ligar o led int portaLDR = A5; //Porta analógica utilizada pelo LDR void setup() { pinMode(portaLed, OUTPUT); //Define a porta do Led como saída } void loop() { int estado = analogRead(portaLDR); //Lê o valor fornecido pelo LDR //Caso o valor lido na porta analógica seja maior do que //800, acende o LED //Ajuste o valor abaixo de acordo com o seu circuito if (estado > 500) { digitalWrite(portaLed, HIGH); } else //Caso contrário, apaga o led { digitalWrite(portaLed, LOW); } }
E você lembra deste post sobre dimmer usando potenciômetro? Pois bem, podemos utilizar o circuito acima para obter o mesmo efeito de dimmer: quanto mais encoberto estiver o LDR, maior será a luz emitida pelo LED:
//Projeto: Controle de luminosidade de led com LDR //Autor: Arduino e Cia int pinoled = 10; //Pino ligado ao anodo do led int pinopot = 5; //Pino ligado ao LDR int valorpot = 0; //Armazena valor lido do LDR, entre 0 e 1023 float luminosidade = 0; //Valor de luminosidade do led void setup() { Serial.begin(9600); //Inicializa a serial pinMode(pinoled, OUTPUT); //Define o pino do led como saída pinMode(pinopot, INPUT); //Define o pino do LDR como entrada } void loop() { //Le o valor - analogico - do LDR valorpot = analogRead(pinopot); //Converte o valor lido do LDR luminosidade = map(valorpot, 0, 1023, 0, 255); Serial.print("Valor lido do LDR : "); //Mostra o valor lido do LDR no monitor serial Serial.print(valorpot); Serial.print(" = Luminosidade : "); //Mostra o valor da luminosidade no monitor serial Serial.println(luminosidade); //Acende o led com luminosidade variável analogWrite(pinoled, luminosidade); }
Estes são dois exemplos simples de utilização do LDR com Arduino, mas que você pode usar para acionar outros dispositivos. Experimente colocar no lugar do LED um módulo relé para acionar, por exemplo, uma lâmpada comum ao anoitecer.