You are on page 1of 7

http://www.embarcados.com.

br/arduino-controle-de-uma-lampada-com-ldr/

LDR
O LDR um resistor sensvel luz que varia sua resistncia conforme alterada a
intensidade luminosa que incide sobre ele. medida que a intensidade luminosa
aumenta (o ambiente fica mais claro) a sua resistncia diminui para algumas dezenas de
Ohms, e quando a intensidade luminosa diminui (o ambiente fica mais escuro) a sua
resistncia aumenta para alguns mega Ohms.

Atravs dessa caracterstica pode-se utilizar esse sensor para detectar a luminosidade do
ambiente, para tomar uma deciso como, por exemplo, ligar uma lmpada, como ocorre
nas fotoclulas.

Ele um sensor de baixo custo e est presente em muitos circuitos eletrnicos que
necessitam monitorar a luz ambiente. O seu uso bem simples, onde atravs de um
circuito divisor resistivo a variao de resistncia convertida em tenso e usada pelo
circuito de controle.

Para fazer a leitura da variao de luminosidade, ou seja, a variao de resistncia do


LDR, necessrio montar um divisor de tenso, conforme o esquema abaixo:

Voc pode montar esse circuito facilmente em um protoboard:

Atravs do circuito apresentado pode-se calcular o valor da tenso de sada para uma
determinada resistncia do LDR, atravs da seguinte frmula:

Por exemplo, em uma ambiente quase escuro o LDR apresenta resistncia de


aproximadamente 500 KOhm, e o valor de tenso de sada ser:

E em uma ambiente claro a resistencia do LDR cai para aproximadamente 300 Ohm.
Assim, a tenso de sada ser:

Nota-se atravs dos clculos que a tenso de sada do conversor aumenta quando a
intensidade luminosa aumenta e diminui quando ambiente vai ficando escuro.

Para verificar o valor de converso AD do Arduino, para a variao de temperatura


podemos usar o seguinte sketch:

val = analogRead(sensorPin);
Serial.println(val);
//emvi
delay(1000);
//agu
}

1
2
3
4

/*
* Entrada analgica
* le o valor do sensor de luminosidade e envia valor para o computador
*/

5
6
7
8
9
10
11
12
13
14
15
16
17

int sensorPin = 0;
int val;

// selecione o pino de entrada ao potencimetro

void setup() {
Serial.begin(9600);
}
void loop() {
val = analogRead(sensorPin); // ler o valor do potencimetro
Serial.println(val);
//emvia valor para o pc
delay(1000);
//aguarda 1 segundo
}

Abrindo o monitor serial pode verificar a variao do valor de converso AD, conforme
a variao da intensidade luminosa sobre o sensor. No caso variou-se de um ambiente
quase escuro (169) para um ambiente com iluminao intensa (971) atravs de uma
lanterna, conforme exibido na figura a seguir:

Optou-se nesse exemplo pelo uso do Mdulo LDR da FBS Eletrnica, que possui o
mesmo esquema eltrico apresentado acima:

Agora vamos montagem do circuito completo para controle da lmpada com Arduino
e LDR.

Ateno: Esse projeto utiliza eletricidade (tenso alternada AC) que pode ser
perigosa para quem trabalha com ela e no saiba exatamente o que est fazendo.
Apenas reproduza esse projeto com segurana. Caso no tenha o conhecimento
necessrio para fazer a experincia de maneira segura, faa-o na presena ou sob
orientao de algum mais experiente. Assuma sempre que a sua segurana deve
estar em primeiro lugar.

O sketch a seguir far com que a lmpada acenda quando estiver escuro, e apague
quando estiver claro:

#define VALOR_ESCURO 400


#define VALOR_CLARO 600
const byte rele = 8;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

//pino d

#define VALOR_ESCURO 400


#define VALOR_CLARO 600

// valor para ligar rele


//valor para desligar rele

const byte rele = 8;


//pino do rele
const byte sensorPin = 0; // selecione o pino de entrada ao potencimetro
int val;
//varivel auxiliar para leitura de valor
void setup() {
Serial.begin(9600);
//inicia comunicao serial
pinMode(rele,OUTPUT); //configura pino do rele como sada
}
void loop() {
val = analogRead(sensorPin);
Serial.println(val);

// ler o valor do potencimetro

//envia valor para o computador

if(val<VALOR_ESCURO)
//se menor que valor definido
{
digitalWrite(rele,HIGH); //liga rele
}
else if(val >=VALOR_CLARO)
{
digitalWrite(rele,LOW); //desliga rele
}
delay(500);
}

//delay de 0,5 seg

Funcionamento do Arduino LDR


Inicialmente foram definidas duas constantes para o rel e para a entrada do sensor. Na
funo Setup o pino do rel foi configurado como sada digital. Na funo loop,
inicialmente lido o valor da converso AD no pino A0, e existe uma estrutura de
deciso baseada nesse valor. Caso ele esteja abaixo do valor determinado como
parmetro para ambiente escuro (note que este valor pode ser alterado facilmente no
#define), o rel ligado. O rele s ser desligado quando o valor lido for maior ou igual

ao valor determinado como ambiente claro. Esse valores limites podem ser
determinados atravs do sketch que faz a leitura do LDR, e atravs de alguns testes
pode-se verificar os valores para as condies ambientes submetidas. Pode-se variar os
valores limites para adequar a outros ambientes ou determinadas necessidades.

Concluso
A leitura do LDR bem tranquila, necessitando apenas da montagem de um divisor de
tenso e a correta leitura do canal analgico. O exemplo apresentado pode ser utilizado
para automao residencial para verificar a luminosidade do ambiente onde voc poder
ligar uma lmpada, ou outro dispositivo. Pode ser interessante adicionar outros recursos,
como temporizao, por exemplo, e as lmpadas s podero ficar ligadas de segunda a
sexta, da hora que acenderem at as 00:00. Para isso basta acrescentar um relgio de
tempo real e verificar o horrio de desligar. Voc pode tambm utilizar o LDR em
conjunto com um sensor de presena em uma garagem, por exemplo, e s acender a
lmpada apenas quando tiver movimento e estiver escuro.

Existem diversas aplicaes para o uso do LDR, espero que voc possa aplicar em
diversos circuitos. Conte suas experincias e em qual aplicao pretende usar o LDR.