Neste projeto vamos construir um Abajur com temporizador e desta forma a luz não fica acesa a noite toda.
Materiais:
- Arduino pró mini
- Leds da cor de sua preferência
- Resistores de 330
- Módulo Rele
- Fios/Jumpers
- Fonte de alimentação
- Módulo USB para comunicação
- Abajur
Para Comprar
Arduino Pró Mini
https://shopee.com.br/arduino-Pro-Mini-Atmega-modelo-2-ref-010-ardu%C3%ADno-i.258729162.6653637657?position=8
Módulo Rele
https://shopee.com.br/M%C3%B3dulo-Rele-1-Canal-5v-Shield-Arduino-ESP32-Raspberry-i.324440633.9250429907
LED Fio de Fada
https://shopee.com.br/Fio-De-Fada-Led-Cord%C3%A3o-5-Metros-50-Leds-Branco-Quente-Pilha-USB-i.329646135.9889174523?position=9
Caixa Patola
https://shopee.com.br/Caixa-Plastica-Montagem-PB202-50-X-70-X-97-Patola-i.545727148.11754636140?position=14
Códigos usados no vídeo
/* *************************
* Projeto Bacana - 10/2021
* www.projetobacana.com.br
* Júlio Vansan Gonçalves
* *************************/
const int saidaAbajur=12;
const int btUp=2;
const int btDown=3;
const int ledS1=10;
const int ledS2=9;
const int ledS3=8;
int contadorBotoes=0;
int estadoSaida=0;
unsigned long tempoBase=5000;
//horas*3600000; // 3600000 = 1h
unsigned long tempoMaximo= 0;
unsigned long tempoAtual=0;
unsigned long tempoInicioAbajur=0;
void setup() {
Serial.begin(9600);
pinMode(saidaAbajur,OUTPUT);
pinMode(ledS1,OUTPUT);
pinMode(ledS2,OUTPUT);
pinMode(ledS3,OUTPUT);
pinMode(btUp,INPUT_PULLUP);
pinMode(btDown,INPUT_PULLUP);
delay(1000);
digitalWrite(ledS1,LOW);
digitalWrite(ledS2,LOW);
digitalWrite(ledS3,LOW);
digitalWrite(saidaAbajur,LOW);
} // Setup
void loop() {
//######### Botão UP Pressionado
if (digitalRead(btUp)==!HIGH){
Serial.print(" Botao UP pressionado ");
contadorBotoes++;
if (contadorBotoes>3){
contadorBotoes=3;
} // if Maximo 3
tempoInicioAbajur=millis();
tempoMaximo=contadorBotoes*tempoBase;
Serial.println(contadorBotoes);
monitorLed();
while (digitalRead(btUp)==!HIGH){
delay(50);
} //while
} //if UP
//######### Botão DOWN Pressionado
if (digitalRead(btDown)==!HIGH){
Serial.print(" Botao DOWN pressionado ");
contadorBotoes--;
if (contadorBotoes<0){
contadorBotoes=0;
} // if Mínimo 0
tempoMaximo=contadorBotoes*tempoBase;
Serial.println(contadorBotoes);
monitorLed();
while (digitalRead(btDown)==!HIGH){
delay(50);
} //while
} //if Down
monitorLed();
// (millis()-tempoInicioAbajur) > tempoMaximo))
tempoAtual= millis()-tempoInicioAbajur;
Serial.print(" Cont Botao= ");
Serial.print(contadorBotoes);
Serial.print(" Maximo= ");
Serial.print(tempoMaximo);
Serial.print(" Atual= ");
Serial.print(tempoAtual);
if (tempoAtual > tempoMaximo){
contadorBotoes=0;
tempoMaximo=0;
} // if parada TEMPO
if (contadorBotoes>=1){
Serial.print(" LEDS Acessos= ");
int controleTempo=((tempoMaximo - tempoAtual) / tempoBase )+1;
Serial.print(controleTempo);
contadorBotoes=controleTempo;
} // if >1
Serial.println();
delay(50);
} // loop
void monitorLed(){
switch(contadorBotoes){
case 0:
digitalWrite(ledS1,LOW);
digitalWrite(ledS2,LOW);
digitalWrite(ledS3,LOW);
digitalWrite(saidaAbajur,LOW);
break;
case 1:
digitalWrite(ledS1,HIGH);
digitalWrite(ledS2,LOW);
digitalWrite(ledS3,LOW);
digitalWrite(saidaAbajur,HIGH);
break;
case 2:
digitalWrite(ledS1,HIGH);
digitalWrite(ledS2,HIGH);
digitalWrite(ledS3,LOW);
digitalWrite(saidaAbajur,HIGH);
break;
case 3:
digitalWrite(ledS1,HIGH);
digitalWrite(ledS2,HIGH);
digitalWrite(ledS3,HIGH);
digitalWrite(saidaAbajur,HIGH);
break;
} // switch
} // Monitor LED
Vídeo:
#Projeto #arduino #abajur #temporizado #DIY #maker #microcontrolador #façavocemesmo
—
Curta, compartilhe e inscreva-se para ficar atualizado com os nossos conteúdos!
Para saber mais sobre o Canal Projeto Bacana:
E-mail: contato@projetobacana.com.br
Site: https://www.projetobacana.com.br/
Facebook: https://www.facebook.com/projetobacana.com.br
Instagram: https://www.instagram.com/projetobacana.com.br/
Youtube: https://www.youtube.com/channel/UC0e1bfaL0-gnAP2KQA5vxqQ