Projeto: Controle automático de intensidade de iluminação pública usando Arduino
Conteudo
Controle automático de intensidade de iluminação pública usando Arduino
Neste projeto, vou mostrar como controlar a intensidade das luzes LED de acordo com o tempo e a intensidade da luz da atmosfera externa.
Este é um projeto incrível e muito útil porque evita o desperdício de energia elétrica.
Este projeto liga automaticamente a luz da rua à noite e desliga pela manhã. Ele também controla a intensidade da luz. A intensidade da luz é ajustada automaticamente de acordo com o tempo e o tráfego. O número de veículos é muito baixo depois das 12h. Por exemplo, a intensidade da luz é baixa à noite e começa a aumentar até as 20h. Depois das 20h, a luz brilha com intensidade total e essa intensidade não muda. Ele brilha com intensidade total até as 12h e começa a diminuir após as 12h, e as luzes são totalmente desligadas após as 6h. Esta abordagem economiza cerca de 30% de energia.
No circuito também são usados dois LEDs, um é Verde e outro é Vermelho. O LED vermelho indica a noite e o LED verde indica o horário da meia-noite 12h00. O Arduino não está programado para o tempo real, pois não podemos observar as mudanças ao vivo. Portanto, o atraso de tempo é muito baixo (1 hora é igual a 3 segundos). Você pode alterar o tempo de atraso de acordo com seu uso. Você pode fazer várias modificações no projeto de acordo com o seu uso, você também pode usar RTC (Real Time Clock) neste projeto.
Trabalhando
No circuito é utilizado um LDR (Light Dependent Resistor), que detecta a intensidade das luzes, quando a intensidade da luz atinge valores fixos a luz led é ligada. Mas no início a intensidade da luz é baixa porque o horário é 17h. Agora, a intensidade está aumentando com o tempo e a luz brilha com intensidade total às 20h.
A intensidade da luz é controlada usando PWM (modulação por largura de pulso). O Arduino e outros dispositivos digitais não podem fornecer saída analógica; eles só podem fornecer a saída digital (alta ou baixa). Significa que eles só podem desligar e ligar o dispositivo, mas às vezes precisamos da tensão entre Vcc e GND. O PWM pode atender a esse requisito. O PWM simplesmente liga e desliga o dispositivo de saída na alta frequência. Desta forma, a tensão de saída fica abaixo de Vcc. O valor da tensão de saída depende do tempo de “Ligar (Ton)” e do tempo de “Desligar (Toff)”, que pode ser calculado pela função fornecida abaixo
Ciclo de trabalho = Ton / (Ton + Toff) Vout = Ciclo de Trabalho * Vcc
O Arduino Nano tem seis pinos PWM, todos de 8 bits. Em outras palavras, podemos alterar o valor de saída de 0 a 255, onde 0 é baixo e 255 é alto.
Dois LEDs também são usados no circuito, eles indicam a hora, o LED VERMELHO acende quando o LDR ultrapassa o valor limite, no meu caso eu suponho que são 17h, neste momento nossa luz de rua (LED de energia) também acende, mas a intensidade é baixo. A intensidade está aumentando gradualmente e funcionará com intensidade total às 20h. Agora, a intensidade não é alterada até às 12h.
Após 12h, o LED verde é ligado e a intensidade do LED de energia torna-se baixa, esta intensidade não é alterada até as 4h. Após as 4 da manhã, a intensidade da luz começa a diminuir gradualmente. Além disso, ele se desliga totalmente às 6h.
Componentes
Componentes | Especificações | Quantidade |
---|---|---|
Arduino | Nano | 1 |
Power Source | Adaptador DC 12 volts | 1 |
LDR (Resistor dependente de luz) | 1 | |
LED | Verde, Vermelho | 2 |
LED de força | 12 Volt | 1 |
Transistor | BC 547 | 1 |
Resistor | 330 Ohm | 2 |
Resistor | 10K | 1 |
Resistor | 1K | 1 |
Diodo | 1N4007/ 1N4004 | 1 |
O circuito
O circuito é muito simples, você pode fazer este circuito na placa de ensaio ou ZERO PCB usando o circuito abaixo.
Se você for bom no PCB Etching, use as imagens abaixo.
No circuito que o Arduino Nano é usado, o pino PWM D9 é conectado ao pino base do transistor (2N2222), o pino emissor é conectado ao GND. O pino catódico do LED de energia é conectado ao pino do coletor do transistor e o pino do ânodo é conectado a 12 volts. Um diodo é conectado em paralelo ao LED de energia na polarização reversa.
O LDR é conectado ao Vcc e o GND através de uma resistência de 10k ohm, o ponto de junção do LDR e a Resistência é conectado ao pino A5 do Arduino.
Dois LEDs são conectados aos pinos A4 e A3 do Arduino por meio de resistência de 330 ohms. O circuito é alimentado por um adaptador de 12 volts e a linha de 12 volts também é conectada ao pino Vin do Arduino por meio de um switch.
Código
int sensor = A5; int LED1 = A4; int LED2 = A3; int OUT = 9; int del = 3000; void setup() { pinMode(sensor, INPUT); pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(OUT, OUTPUT); } void loop() { if (analogRead(sensor)<50){ analogWrite(OUT, 100); // 5:00 PM digitalWrite(LED1, HIGH); delay(del); analogWrite(OUT, 150); // 6:00PM delay(del); analogWrite(OUT, 200); // 7:00 PM delay(del); analogWrite(OUT, 255); // 8:00 PM delay(del); analogWrite(OUT, 255); // 9:00 PM delay(del); analogWrite(OUT, 255); // 10:00 PM delay(del); analogWrite(OUT, 255); // 11:00 PM delay(del); analogWrite(OUT, 200); // 12:00 AM digitalWrite(LED2, HIGH); delay(del); analogWrite(OUT, 200); // 1:00 AM delay(del); analogWrite(OUT, 150); // 2:00 AM delay(del); analogWrite(OUT, 150); // 3:00 AM delay(del); analogWrite(OUT, 100); // 4:00 AM delay(del); analogWrite(OUT, 100); // 5:00 AM delay(del); analogWrite(OUT, 0); digitalWrite(LED1, LOW); digitalWrite(LED2, LOW); } }
No código, alguns inteiros são declarados, “sensor” inteiro é usado para o pino LDR, LED1 e LED2 são usados para o LED “VERMELHO” e “VERDE” e o inteiro “OUT” é declarado para o LED de energia. O número inteiro “del” é usado para dar o atraso de 1 hora (3 segundos).
Em “void setup()” o sensor é declarado como INPUT e LED1, LED2 e OUT são declarados como OUTPUT, usando a função “pinMode”.