Acender Lâmpada com Sensor de Movimento, Relé e Arduino
Neste projeto vamos aplicar nosso conhecimento sobre sensores infravermelhos de movimento (PIR) e Arduino para construir um circuito bastante útil: acendimento automático de uma lâmpada quando alguém entra em um recinto.
Esta é uma aplicação extremamente popular dos sensores PIR, pois permite que o ambiente seja iluminado assim que uma pessoa o adentra, e a iluminação é desligada depois de um tempo pré-programado (como por exemplo, 30 segundos), permitindo economizar muita energia elétrica ao impedir que as pessoas se esqueçam de apagar as luzes ao sair.
O sensor PIR que utilizaremos é o HC-SR501, sensor de custo muito baixo e bastante comum. Mais precisamente, utilizarei o módulo de sensor que pode ser visto na imagem a seguir:
Sensor de Movimento HC-SR501
Este sensor pode ser comprado com facilidade pela Internet em sites de venda de material para hobbystas e estudantes de eletrônica. O da foto foi adquirido no Ali Express.
Lista de Materiais
O circuito pode ser montado de duas formas: utilizando um relé discreto e componentes separados, ou empregando-se um módulo de relé. Nosso projeto será realizado usando o módulo, que simplifica o processo (e é, basicamente, o mesmo circuito). Neste caso, vamos precisar de:
- Arduino
- Módulo de Relé
- Soquete
- Lâmpada (Incandescente ou de LED)
- Fios e Jumpers adequados (fios mais grossos para a conexão da lâmpada, como fios de 1,5mm2).
- Matriz de Contatos
Caso prefira utilizar um relé convencional em vez de um módulo integrado, irá precisar também de:
- Relé 5VDC / 100-240VAC
- Transistor 2N2222A ou equivalente
- Resistor de 1K
- Diodo 1N4004
- LED de qualquer cor, para indicação de atividade do relé.
Módulo de Relé
O módulo de relé que utilizei no projeto é o Keyes SRD-05VDC-SL-C, que possui dois relés integrados (somente um será utilizado). Você pode utilizar qualquer módulo disponível, desde que atenda às especificações de tensão necessárias. É possível acionar diversas lâmpadas (ou outros dispositivos) usando módulos com múltiplos relés – veremos como fazer isso em um outro projeto.
A figura a seguir mostra o módulo de relé empregado:
Módulo de Relé Keyes Dual Keyes SRD-05VDC-SL-C
O diagrama esquemático a seguir mostra os componentes e interligações do módulo de relé utilizado (para um relé). Caso você opte por utilizar um relé discreto, deverá acrescentar o circuito conforme mostrado na ilustração:
Esquema do módulo de relé Keyes
Relés Normalmente Aberto e Normalmente Fechado
Aqui cabe uma rápida explanação sobre esse componente. Os relés possuem dois tipos diferentes de contatos elétricos – normalmente aberto – NA (NO – Normally Open) e normalmente fechado – NF (NC – Normally Closed).
A tensão de alimentação de 120-240V, que acionará a lâmpada, entra no relé pelo terminal comum (C) em ambas as configurações. Para usar os contatos normalmente abertos, usamos o terminal NO – assim, a lâmpada permanecerá apagada enquanto o sensor não ativar o circuito. Para usar os contatos normalmente fechados, usamos o terminal NC – neste caso, a lâmpada permaneceria acesa até o circuito ser ativado pelo sensor.
Qual será utilizado depende de como queremos que o interruptor seja empregado. Neste projeto queremos que a lâmpada seja acesa com o acionamento do relé, portanto queremos ligá-la, e por isso usaremos os contatos NO (NA) do relé.
O Circuito
A figura a seguir ilustra o circuito montado em uma matriz de contatos:
Atenção: Tome muito cuidado ao construir esse circuito, pois a lâmpada e o relé estarão ligados à rede elétrica (110/220V), e você corre o risco de levar um choque potencialmente perigoso e danificar os componentes. Verifique cuidadosamente todas as ligações, e procure isolar todas as pontas de fios empregados com fita isolante. Todo cuidado é pouco!
O Código
Utilizaremos um código similar ao do nosso projeto de acionamento de LED com PIR, com uma diferença: o sinal de saída do Arduino irá acionar o módulo de relé, o qual por sua vez chaveará seus contatos NO para acendimento da lâmpada:
const int pinoRELE = 10; const int pinoPIR = 4; void setup() { pinMode(pinoRELE, OUTPUT); pinMode(pinoPIR, INPUT); } void loop() { int valor = digitalRead(pinoPIR); if (valor == HIGH) { digitalWrite(pinoRELE, HIGH); delay(5000); digitalWrite(pinoRELE, LOW); } }
Vamos usar a seguinte temporização: ao detectar movimento, o Arduino manterá o relé ativado por 5 segundos, mantendo a lâmpada acesa por esse tempo, e depois a apagará. Você pode alterar esse tempo conforme sua necessidade.
Circuito em Funcionamento
Para testar o circuito, basta se movimentar em frente ao sensor para que a lâmpada seja acionada.
Na foto abaixo podemos ver o circuito em funcionamento, em um ambiente escuro, e com a lâmpada apagada:
Assim que um movimento é realizado em frente ao sensor (como passar por ele ou balançar a mão), a lâmpada é acesa, e assim permanece pelo tempo que foi programado no código do programa:
É isso aí! No próximo projeto vamos acionar mais de um dispositivo usando o Arduino e módulo de relés. Até mais!