Dimmer com Arduino – Controle a Luminosidade de lâmpadas dimerizáveis

Neste vídeo vamos criar DIMMER para controlar a luminosidade de uma lâmpada (dimerizável) da sua casa, usando o Arduino.
Lâmpadas incandescentes e alógenas são dimerizáveis, existem também lâmpadas LED com essa função.

Apresentação: Júlio Vansan Gonçalves

Link para compra do módulo:
https://www.usinainfo.com.br/dimmer-arduino/modulo-dimmer-para-arduino-pic-mc-8a-com-sinal-zero-cross-220v-5915.html

Link blog BR-Arduino
https://br-arduino.org/2016/03/arduino-triac-dimmer.html

Principais Materiais:

  • Arduino
  • Módulo Dimmer
  • Potenciômetro
  • Botões

#define PINO_DIM    9

int controle=10;
long int tempoAnterior=0;
long int tempoAtual=0;

volatile long luminosidade = 10;  // 10 a 90 
 
void zeroCross()  {
  if (luminosidade>100) luminosidade=90;
  if (luminosidade<0) luminosidade=10;
  long t1 = 8200L * (100L - luminosidade) / 100L;      
  delayMicroseconds(t1);   
  digitalWrite(PINO_DIM, HIGH);  
  delayMicroseconds(6);      // t2
  digitalWrite(PINO_DIM, LOW);   
}

void setup() {
  Serial.begin(9600);
  Serial.println(" ");
  Serial.println("#### INICIANDO ####");
  pinMode(PINO_DIM, OUTPUT);
  attachInterrupt(0, zeroCross, RISING);
}

void loop() {
  //luminosidade = analogRead(A0);
  //luminosidade = map (luminosidade, 0,1023, 10, 90);

    tempoAtual=millis();
    if(tempoAtual - tempoAnterior >= 1000){
      tempoAnterior=tempoAtual;
      controle += 10;  
      if(controle>100){
        controle=10;
        Serial.println("Zerei");
      }
      Serial.print(controle);
      Serial.print(" || ");

      luminosidade=controle;
    }
            
  delay(10);

}
#define PINO_DIM    9

volatile long luminosidade = 10;  // 10 a 90 
 
void zeroCross()  {
  if (luminosidade>100) luminosidade=90;
  if (luminosidade<0) luminosidade=10;
  long t1 = 8200L * (100L - luminosidade) / 100L;      
  delayMicroseconds(t1);   
  digitalWrite(PINO_DIM, HIGH);  
  delayMicroseconds(6);      // t2
  digitalWrite(PINO_DIM, LOW);   
}

void setup() {
  Serial.begin(9600);
  pinMode(PINO_DIM, OUTPUT);
  attachInterrupt(0, zeroCross, RISING);
}

void loop() {
  luminosidade = analogRead(A0);
  luminosidade = map (luminosidade, 0,1023, 10, 90);
  Serial.println(luminosidade);
  delay(10);

}
const int botaoUP=6;
const int botaoDOWN=5;

int valorLuz=10;

#define PINO_DIM    9

volatile long luminosidade = 10;  // 10 a 90 
 
void zeroCross()  {
  if (luminosidade>100) luminosidade=90;
  if (luminosidade<0) luminosidade=10;
  long t1 = 8200L * (100L - luminosidade) / 100L;      
  delayMicroseconds(t1);   
  digitalWrite(PINO_DIM, HIGH);  
  delayMicroseconds(6);      // t2
  digitalWrite(PINO_DIM, LOW);   
}

void setup() {
  Serial.begin(9600);
  Serial.println(" ");
  Serial.println("#### INICIANDO ####");
  pinMode(PINO_DIM, OUTPUT);
  pinMode(botaoUP, INPUT_PULLUP);
  pinMode(botaoDOWN, INPUT_PULLUP);
  attachInterrupt(0, zeroCross, RISING);
}

void loop() {

   if(digitalRead(botaoUP)==LOW){
    valorLuz+=10;
    if (valorLuz>=90){
      valorLuz=90;
    }
    luminosidade=valorLuz;
    Serial.print("UP Pressionado ^^^^  || luminosidade= ");
    Serial.println(luminosidade);  
    while(digitalRead(botaoUP)==LOW){
      delay(50);
    }
   }

  if(digitalRead(botaoDOWN)==LOW){
    valorLuz-=10;
    if (valorLuz<=10){
      valorLuz=10;
    }
    luminosidade=valorLuz;
    Serial.print("DOWN Pressionado vvvv  || luminosidade= ");
    Serial.println(luminosidade);  
    while(digitalRead(botaoDOWN)==LOW){
      delay(50);
    }
 
   }

  
  
  
  delay(10);

}

#Arduino #dimmer #luminosidade #maker #automação #microcontrolador #DIY #façavocemesmo #tcc #sugestãoTCC #Projeto

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/vansanjulio
Youtube: https://www.youtube.com/ProjetoBacana