Sensor de luz com LDR para controlar uma lâmpada
Todos queremos que nossos eletrodomésticos sejam controlados automaticamente com base em algumas condições e chamadas de Automação residencial. Hoje nós vamos controlar a luz baseada na escuridão lá fora, a luz liga automaticamente quando está escuro lá fora e desliga quando fica claro. Para isso, precisamos de um sensor de luz para detectar a condição de luz e alguns circuitos para controlar o sensor de luz. É como Circuito Detector de Luz e Escuro mas desta vez estamos usando o Arduino para ter mais controle sobre a luz.
Neste circuito, estamos fazendo um Sensor de luz usando LDR com Arduino para controlar uma lâmpada como por condição de luz da sala ou área externa.
Material Necessário
- Arduino UNO
- LDR (Resistor Dependente de Luz)
- Resistor (100k, 330 ohm)
- LED
- Relay module – 5v
- Lampada
- Conectando fios
- Protoboard
Diagrama de circuito
LDR
LDR é Resistor Dependente de Luz. Os LDRs são feitos de materiais semicondutores para permitir que eles tenham suas propriedades sensíveis à luz. Existem muitos tipos, mas um material é popular e é o sulfeto de cádmio (CdS). Estes LDRs ou PHOTO RESISTORS trabalham com o princípio de “Condutividade Fotográfica”. Agora, o que este princípio diz é que, sempre que a luz cai na superfície do LDR (neste caso) a condutância do elemento aumenta ou, em outras palavras, a resistência do LDR cai quando a luz cai sobre a superfície do LDR. Esta propriedade da diminuição da resistência para o LDR é alcançada porque é uma propriedade do material semicondutor usado na superfície.
Nós já fizemos muitos Circuitos usando LDR, que usam o LDR para automatizar as luzes de acordo com a necessidade.
Funcionamento do LED controlado por LDR usando o Arduino
De acordo com o diagrama de circuito, fizemos um circuito divisor de tensão usando LDR e resistor de 100k. A saída do divisor de tensão é alimentada ao pino analógico do Arduino. O Pin analógico detecta a tensão e dá algum valor analógico ao Arduino. O valor analógico muda de acordo com a resistência do LDR. Assim, à medida que a luz cai sobre o LDR, a resistência diminui e, consequentemente, o valor da tensão aumenta.
Intensidade da luz ↓ – Resistência↑- Tensão no pino analógico↓ – Luz acende
De acordo com o código do Arduino, se o valor analógico cair abaixo de 700, consideraremos escuro e a luz será ligada. Se o valor estiver acima de 700, consideramos como brilhante e a luz é desligada.
Explicação do Código:
Código Arduino Completo é dado no final deste projeto.
Aqui, estamos definindo os pinos para o relé, o LED e o LDR.
#define relay 10
int LED = 9;
int LDR = A0;
Configurando o LED e o Relé como pino de saída, e o LDR como pino de entrada.
pinMode(LED, OUTPUT);
pinMode(relay, OUTPUT);
pinMode(LDR, INPUT);
Lendo o valor analógico de tensão através do pino A0 do Arduino. Esta tensão analógica será aumentada ou diminuída de acordo com a resistência do LDR.
int LDRValue = analogRead(LDR);
Dando a condição para escuro e brilhante. Se o valor for menor que 700, então está escuro e o LED ou Luz acende. Se o valor for maior que 700, ele fica claro e o LED ou a luz se apaga.
if (LDRValue <=700)
{
digitalWrite(LED, HIGH);
digitalWrite(relay, HIGH);
Serial.println("It's Dark Outside; Lights status: ON");
} else {
digitalWrite(LED, LOW);
digitalWrite(relay, LOW);
Serial.println("It's Bright Outside; Lights status: OFF");
}
Controlando o Rele usando LDR com Arduino
Em vez de controlar um LED de acordo com o brilho e a escuridão, podemos controlar nossas luzes domésticas ou qualquer equipamento elétrico. Tudo o que temos a fazer é conectar um módulo de relé e ajustar o parâmetro para ligar e desligar qualquer aparelho AC de acordo com a intensidade da luz. Se o valor cair abaixo de 700, ou seja, escuro, o relé será acionado e as luzes serão acesas. Se o valor for maior que 700, o que significa que seu dia será brilhante, o relé não funcionará e as luzes permanecerão DESLIGADAS.
Código:
#define relay 10
int LED = 9;
int LDR = A0;
void setup()
{
Serial.begin(9600);
pinMode(LED, OUTPUT);
pinMode(relay, OUTPUT);
pinMode(LDR, INPUT);
}
void loop() {
int LDRValue = analogRead(LDR);
Serial.print("sensor = ");
Serial.print(LDRValue);
if (LDRValue <=700)
{
digitalWrite(LED, HIGH);
digitalWrite(relay, HIGH);
Serial.println("It's Dark Outside; Lights status: ON");
} else {
digitalWrite(LED, LOW);
digitalWrite(relay, LOW);
Serial.println("It's Bright Outside; Lights status: OFF");
}
}