Automatize sua Lâmpada Noturna com Arduino: Código Simples e Simulação no Proteus
Lâmpada Noturna Automática Usando Arduino — Código, Funcionamento e Simulação
Automação basicamente significa inventar um método que reduz ou elimina esforços humanos. Neste tutorial, vamos explicar como automatizar uma lâmpada noturna via uma simples interface de Arduino e Relé usando o software Proteus. Automação é a necessidade do momento, pois a aplicação varia desde controle de caldeira com um simples termostato até gerenciamento de grande indústria com grande quantidade de dados de entrada e saída. A complexidade da automação pode variar desde um controle básico "liga/desliga" até algoritmos multivariáveis altamente complexos, como sistemas de automação industrial. Os sistemas de controle para fins de automação podem ser de malha aberta ou fechada, significando que pode funcionar com um único parâmetro de entrada ou em resposta à saída realimentada como entrada, como no caso de sistemas de malha fechada.
Como no caso de toda tecnologia, automação também tem seus prós e contras:
Prós
- Aumento de produtividade
- Qualidade previsível (Melhoria de Qualidade)
- Robustez aumentada
- Grande consistência de saída
- Redução de despesas com mão de obra humana
- Altamente preciso
- Reduz esforços humanos em trabalhos monótonos
Contras
- Susceptível a ameaças de segurança
- Custo de desenvolvimento pode exceder a previsão
- Alto custo de configuração
- Causa de desemprego em muitos setores
Os prós mencionados superam em muito os contras e é por isso que o mundo inteiro está entrando na era da automação.
Neste tutorial, estamos tentando fazer uma lâmpada ligar ou desligar sozinha quando o circuito detecta uma mudança apreciável na intensidade da luz e, para isso, vamos usar as duas ferramentas mais comuns usadas para automação: Arduino e Relé, e a interface junto com a simulação seria alcançada pelo software Proteus.
- Projeto Relacionado: Circuito Luz de Emergência LED Automática
Componentes Necessários
- Arduino UNO
- Relé 5 Volts
- LDR (Resistor Dependente de Luz)
- Resistor 10K Ohms
- Transistor BC547
- Fonte DC 5 Volts
- Fonte CA 220 Volts
Software Necessário
- Arduino IDE
- Proteus
Diagrama do Circuito da Lâmpada Noturna Automática
- Post Relacionado: Circuito Luzes de Emergência LED — Esquemático LED-716
Descrição dos Componentes
Arduino UNO
Arduino é basicamente uma placa de desenvolvimento de código aberto que utiliza principalmente o microcontrolador Microchip ATmega328P e é fabricada pela Arduino.cc. A placa vem com um conjunto de pinos de entrada/saída compreendendo digitais e analógicos que podem ser interfaceados a diferentes placas de expansão e circuitos externos. A placa vem com 14 pinos digitais junto com 6 pinos analógicos que são utilizados ou tornados programáveis com a ajuda de uma IDE (Ambiente de Desenvolvimento Integrado). O programa é gravado via cabo USB tipo B.
Métodos de alimentação da placa podem ser either pelo cabo USB ou conectando fonte DC de 12 volts. Do ponto de vista de design e funcionamento, não é muito diferente de seus outros familiares, nomeadamente Arduino Nano e Arduino Leonardo.
STK500 ainda é o protocolo original para Uno comunicar. A principal diferença de seus predecessores é que não faz uso do FTDI (chip driver USB-para-serial).
- Post Relacionado: O Que é Arduino e Como Programá-lo?

Relé
Relé é um interruptor eletromagnético que pode ser operado eletricamente e feito para ligar e desligar eletrodomésticos CA/CC. Pode ser controlado mesmo com uma baixa tensão de 5 volts, como a saída fornecida pelos pinos do Arduino. Consiste em uma bobina com contatos metálicos em um lado (lado de baixa tensão) que pode ser magnetizada e desmagnetizada para abrir ou fechar o circuito conectado no outro lado (lado de alta tensão). Lado de alta tensão consiste em um conector com 3 soquetes: comum (COM), normalmente fechado (NF) e normalmente aberto (NA). O relé vem em diferentes classificações como 12V, 9V, 5V e 3V.
- Post Relacionado: Como Testar um Relé? Verificando SSR e Relés de Bobina
LDR
LDR (Resistor Dependente de Luz) é um componente de resistência variável que pode variar seu valor de resistência com a mudança na intensidade da luz e funciona no princípio da fotocondutividade. O valor da resistência diminui com o aumento da intensidade da luz. É usado em circuitos detectores sensíveis à luz e circuitos de comutação ativados por luz.
LDR é feito de semicondutor de alta resistência que tem resistência em mega ohms na ausência de luz enquanto várias centenas de ohms na presença de luz.
- Post Relacionado: Sistema de Controle de Iluminação Pública Automática Usando LDR e Transistor BC 547

BC547 — Transistor NPN
Um transistor é basicamente um dispositivo semicondutor empregado para amplificar ou comutar sinais eletrônicos e potência. É feito de material semicondutor e tem 3 terminais para conectar com um circuito externo. Neste circuito, usamos BC547 que é um Transistor de Junção Bipolar NPN.
- Projeto Relacionado: Circuito Chave Sensível ao Toque Simples Usando Timer 555 e Transistor BC547
Um pequeno valor de corrente em seu terminal de base controla um grande valor de corrente em seus terminais emissor e coletor. Uma tensão DC fixa é necessária nos terminais do transistor para operar na região desejada de suas curvas características. Transistor, quando usado para propósito de amplificação, é mantido polarizado para que fique parcialmente ligado para todas as entradas e o sinal de saída amplificado é tomado no emissor. Para aplicações de comutação, o transistor é polarizado para que permaneça totalmente LIGADO se sinal no terminal de base estiver presente e fique completamente DESLIGADO na ausência de sinal de base.
- Post Relacionado: Como Verificar um Transistor por Multímetro — NPN e PNP — 4 Maneiras
Classificações
- VCEO = 45 Vcc
- Ic = 100mA cc
- VCBO = 50 Vcc
- VEBO = 6 Vcc

Descrição do Software
Proteus
Pacote de design Proteus se enquadra na categoria de software proprietário empregado para realizar automação de design eletrônico. Este software é muito útil para engenheiros de design eletrônico e técnicos respectivos para o propósito de criar esquemáticos e impressões em forma eletrônica denominadas layout de PCB. O software foi desenvolvido em Yorkshire, Inglaterra pela Labcenter Electronics Ltd. e vem com suporte multi-idioma: Inglês, Francês, Espanhol e Mandarim.
É atualizado regularmente com novas bibliotecas consistindo de componentes avançados em intervalos regulares e pode ser facilmente adicionado à lista existente de bibliotecas.
Este software é amplamente usado por sua capacidade de simular circuitos ou microcontroladores. Simulação ajuda a entender o funcionamento e teste do circuito projetado sem nem mesmo fazer uso dos componentes físicos. Sua interface de usuário também dá vantagem sobre outros softwares no mercado. Mais de 15 milhões de componentes estão disponíveis na seção de biblioteca, então os usuários não precisam perder tempo criando footprints ou componentes.
Arduino IDE
Arduino IDE é um software que pode ser usado em várias plataformas. Portanto, é uma aplicação multiplataforma e foi desenvolvida usando a linguagem de programação Java. Tem o propósito único de escrever o sketch e carregá-lo em placas compatíveis com Arduino. As linguagens suportadas são C e C++ que são um pouco modificadas e dependem da biblioteca sendo usada. Várias bibliotecas são fornecidas built-in no software e outras bibliotecas podem ser baixadas de fornecedores terceiros. O IDE usa um programa chamado avrdude para converter o código em um arquivo que tem codificação hexadecimal que é carregado na placa com a ajuda de um programa carregador que vem pré-instalado no firmware da placa.
Código do Projeto
Explicação do Código
Primeiro, definimos duas variáveis globais do tipo inteiro. Variável analogIN é usada para denotar um pino analógico que receberá o valor analógico do circuito e a segunda variável trigger denota um pino digital que fornecerá uma saída de trigger de tensão suficiente.
int analogIN = A3;
int Trigger = 12;
Taxa de baud é definida para 9600 bits/seg, que representa a taxa de transmissão de dados. A função pinMode() é usada para definir o estado do pino. Aqui definimos o pino 12 como saída e pino A3 como entrada. Todas estas declarações são escritas na função void setup() e rodariam apenas uma vez durante todo o período de execução.
void setup()
{
Serial.begin(9600);
pinMode(analogIN, INPUT);
pinMode(Trigger, OUTPUT);
}
De acordo com o diagrama do circuito, temos que ler um dado particular que está na forma de valor analógico do pino A3. Para esta tarefa específica, usamos a função analogRead() porque a entrada gerada do circuito é um valor analógico, por isso a razão por trás do uso de pino analógico e função analógica.
Agora, obtemos este valor analógico do pino analógico A3, então armazenamos seu valor na variável "valor".
Esta Variável conterá um valor inteiro que estará na faixa de 0 a 1234 e variará de acordo com a entrada analógica. Este é o valor ADC de 10 bits, pois Arduino vem com conversor ADC de 10 bits.
O valor armazenado na variável "valor" é usado para executar o operador condicional (if-else). Através deste operador, definimos o estado do pino digital trigger como HIGH ou LOW para ligar e desligar a lâmpada. A principal vantagem de imprimir o dado armazenado na variável "valor" é que podemos associar a intensidade da luz com um valor particular e ligar a lâmpada em uma intensidade de luz desejada.
O código presente dentro da função "void loop()" rodará repetidamente enquanto o Arduino estiver sendo alimentado. Assim, para garantir que o projeto esteja em estado de funcionamento em todas as instâncias, deve-se certificar de dar uma alimentação 24/7 ao Arduino Uno usado aqui.
void loop() {
int valor = analogRead(analogIN);
Serial.println(valor);
if (valor < 692)
{
digitalWrite(Trigger, HIGH);
Serial.println("lâmpada está LIGADA");
}
else {
digitalWrite(Trigger, LOW);
Serial.println("lâmpada está DESLIGADA");
}
}
Como Obter a Localização do Arquivo Hex do Código?
No seu Arduino IDE clique em Arquivo>Preferências e então em "Saída verbosa" marque ambas as opções compilação e upload e após a compilação do código na janela abaixo selecione e copie a localização do arquivo hex e no Proteus clique duas vezes no Arduino e cole a localização do arquivo na opção Arquivo do Programa e clique em OK. Agora seu circuito estará pronto para simulação.
- Circuito Chave de Palmas Projeto Eletrônico Usando Timer 555
Vídeo de Simulação
Em breve
Funcionamento do Circuito Lâmpada Noturna
Agora discutiremos o funcionamento do circuito, aqui usamos uma fonte DC de 5V (5V do Arduino) e conectamos um resistor de 10k ohm e um LDR em um circuito divisor de tensão. A tensão que pode ser tomada através do resistor ou do LDR e alimentada no pino analógico do Arduino, pino A3 neste caso.
Com a ajuda do código mencionado acima, a placa será capaz de detectar a entrada analógica fornecida a ela. Este valor lido está de acordo com a intensidade da luz que é detectada pelo LDR.
Enquanto podemos verificar o valor vindo no monitor serial para calibrar o circuito de acordo com a intensidade da luz. Portanto, podemos alterar a condição na declaração condicional fornecida no código para ligar a lâmpada "LIGADA" & "DESLIGADA" em uma intensidade de luz desejada, tornando-a dinâmica.
Agora, quando a declaração condicional é satisfeita, ou seja, a intensidade da luz cai abaixo do valor fornecido por você (na forma equivalente ADC), a placa gerará uma saída "ALTA" no pino 12. Por "ALTA" significa que produz saída de 5V no pino 12.
Neste caso, uma tensão suficiente é desenvolvida na base do transistor e o transistor começa a conduzir. Como resultado, a corrente começa a fluir nas bobinas do relé e ele liga, o que significa que o terminal NA é comutado para um estado ativo ao qual o circuito da lâmpada foi conectado e, após a conclusão do circuito, a lâmpada liga "LIGADA".
A lâmpada desliga "DESLIGADA" quando a condição else no código se torna verdadeira, ou seja, a intensidade da luz aumenta do valor limite fornecido por nós. Portanto, a saída no pino 12 se torna "BAIXA" e subsequentemente o relé é desligado, o que desliga a Lâmpada.
- Projeto Eletrônico de Controle de Semáforo Usando CI 4017 e Timer 555
Conclusão:
Todos queremos facilitar nosso estilo de vida, e aqui está o que a lâmpada noturna automática faz. Você nem precisa ligar ou desligar a lâmpada noturna. Ela liga e desliga automaticamente de acordo com a intensidade da luz que incide. Quando é dia, a lâmpada permanece em estado desligado; à medida que fica escuro sobre o sensor, a lâmpada liga. O projeto ajudará você a projetar o mesmo, usando componentes eletrônicos básicos. Também explicamos o código para que não seja difícil para você começar com o Arduino.
Projetos Relacionados:
- Sistema Automático de Irrigação e Rega de Plantas — Circuito, Código e Relatório do Projeto
- Circuito Alarme de Chuva — Detector de Neve, Água e Chuva
- Diagrama de Circuito Indicador de Nível de Água — Dois Projetos Simples
- Mais Projetos de Engenharia Elétrica e Eletrônica
Tecnologia industrial
- Como Fabricantes Aproveitam Automação para Escalar Atendimento de E-Commerce
- Crie um Sistema Ambilight Impressionante para Monitor com Arduino
- Construa um Voltímetro Inteligente com Arduino e Smartphone – Projeto DIY Fácil
- Monitor de Frequência Cardíaca IoT em Tempo Real com Arduino e MAX30100
- Servidor Web Arduino Uno WiFi: Controle LED via Navegador
- Automatize o Jogo do Dinossauro do Chrome com Arduino e LDR
- Construa um Rádio FM Compacto com Arduino Nano e RDA5807M
- Shield de Programação Wireless Arduino com HC-05 Bluetooth – Sem Cabo USB
- Chave LED por Toque Capacitivo com Arduino UNO – Projeto DIY Fácil
- Como Funcionam os Troca-Ferramentas Automáticos: Guia Completo