O Dimmer Shield é um dispositivo criado para controlar a potência de determinadas cargas domésticas, por exemplo lâmpadas incandescentes ou fluorescentes dimerizáveis, um ventilador de mesa, entre outros. 

       O princípio de funcionamento desse dispositivo é detectar o ponto zero da onda senoidal da rede elétrica doméstica, e a ativação do Triac. Com uma lógica de programação inserida no microcontrolador Arduino e o Dimmer Shield encaixado, é possível controlar a potência de uma carga.

       Quando é detectado o ponto zero, o pino D2 do Dimmer Shield ficará em nível alto (5 volts). De acordo com a programação, a porta digital D3 (pino D3) do microcontrolador é colocado em nível alto (ativado) para disparar o Triac por um determinado tempo, e desativado (nível baixo – 0 volt) posteriormente. Reativando novamente quando detecta o ponto zero.

       A Figura 1 mostra os pontos zeros da senoide, representada pela “bolinha” verde.

Figura 1 – Onda senoidal com a representação do ponto zero

       A Figura 2 mostra a onda sendo cortada em 50% do meio ciclo, representada pela cor verde, ou seja, será aplicado 50% de potência para a carga.

Figura 2 – Onda senoidal sendo cortada em 50% do meio ciclo

CUIDADO AO MANUSEAR O DIMMER SHIELD NA REDE ELÉTRICA, POIS PODE LEVAR CHOQUE, CUIDADO! Toda vez que for fazer alguma alteração no Dimmer Shield, retire-o da tomada.

       Abaixo está o código utilizado no vídeo tutorial.

//André Kuhn - Automation
//Código para o Dimmer ser controlado pelos botões

int loadR = 3;
volatile int power = 100;

void setup()
{
       pinMode(loadR, OUTPUT);

       //Inicializa interrupção. O número zero indica a porta 2 do Arduino,
       //zero_cross_int é a função que será chamada toda vez que pino 2 do Arduino,
       //"subir" (RISING) de valor de 0 para 1.
       attachInterrupt(0, zero_cross_int, RISING);

       pinMode(4, INPUT);
       pinMode(5, INPUT);
       digitalWrite(4, LOW);
       digitalWrite(5, LOW);
}

void loop()
{

       if(digitalRead(4) == HIGH)
       {
              if(power <= 300)
              {
                     power += 20;
              }
              delay(200);
       }

       if(digitalRead(5) == HIGH)

       {
             if(power >= 20)
             {
                     power -= 20;
             }
             delay(200);
        }
}

void zero_cross_int()
{

       //Cálculo do ângulo de disparo: 60Hz -> 8,33ms (1/2 ciclo)

       //(8333us - 8,33us) / 333 = 25 (aproximadamente)
       int powertime = (25*(333-power));

       if(powertime <= 325)
       {
               digitalWrite(loadR, HIGH);
        }

        else if(powertime >= 8325)
        {
               digitalWrite(loadR, LOW);
         }

         else if((powertime > 0) && (powertime < 8325))
         {
                //Mantém o circuito desligado por powertime microssegundos
                delayMicroseconds(powertime);

                 

                 //Envia sinal ao TRIAC para que ele passe a conduzir
                 digitalWrite(loadR, HIGH);

                 

                 //Espera alguns microssegundos para que o TRIAC perceba o pulso
                 delayMicroseconds(8.33);

                 

                   //Desliga o pulso
                   digitalWrite(loadR, LOW);
           }
}

       Com essa programação é possível ter 15 faixas de potências aplicadas na carga, as faixas são selecionadas pelas duas chaves tácteis inseridas na placa, que são os pinos digitais D4 e D5. 

CUIDADO AO MANUSEAR O DIMMER SHIELD NA REDE ELÉTRICA, POIS PODE LEVAR CHOQUE, CUIDADO! Toda vez que for fazer alguma alteração no Dimmer Shield, retire-o da tomada.

       

       O Vídeo 1 mostra o tutorial.

       Segue abaixo o código para download: Dimmer_Arduino.zipDimmer_Arduino.ino

Exibições: 10655

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Leandro Chamiso em 31 agosto 2015 às 13:21

Vc saberia me dizer se eu consigo utilizar este dimmer sem a necessidade de colocá-lo por cima do arduino? Tipo o arduino em um lugar e o dimmer em outro...

Comentário de André Araújo Kuhn Pereira em 31 agosto 2015 às 13:19

Boa tarde Leandro! Segue o link da loja do Dimmer Shield: Dimmer Shield. O link é

http://www.labdegaragem.org/loja/48-ldg/dimmer-shield.html

Comentário de Leandro Chamiso em 31 agosto 2015 às 12:21

Pessoal, onde encontro este dimmer shield pra vender?

Comentário de André Araújo Kuhn Pereira em 14 julho 2015 às 2:38

Boa noite Hugo Rocha!

O Dimmer Shield funciona em corrente alternada com tensão de 127 a 220  Volts.

A lâmpada LED que pretende controlar, provavelmente é de corrente contínua, com tensão máxima de 12 Volts.

Em breve postarei um tutorial, utilizando lâmpadas Fluorescente e LED Dimerizáveis, com tensão de funcionamento de 127 ou 220 Volts de corrente alternada.

Att.

André Kuhn.

Comentário de Hugo Rocha em 3 julho 2015 às 21:11

Olá gostaria de saber se com esse shield posso controlar lâmpadas,led de 12v ou mais.

Qual é a voltagem de operação? Ex: 12~220v

Comentário de ALINE HUBNER em 16 junho 2015 às 8:40
Eu ja tinha imaginado, porém acho um gasto um tanto elevado para isso, acredito que seria mais simples fazer o circuito completo e fazer uma placa especifica para controlar as lampadas, pois não quero que todas tenham a mesma luminosidade, vou verificar o circuito completo de portas lógicas, se tudo estiver ok eu posto aqui no site.Talvez trabalhar com mux e demux em uma placa especifica para esta função.
Obrigada.
Comentário de André Araújo Kuhn Pereira em 15 junho 2015 às 22:32

Boa noite Aline Hubner!

Se você deseja controlar a luminosidade  das 8 lâmpadas independentemente, terá que utilizar um Dimmer Shield com um Arduino para cada lâmpada.

Mas se deseja controlar a luminosidade das 8 lâmpadas por igual, é possível utilizar apenas um Dimmer Shield com um Arduino. Por exemplo, a saída do Dimmer Shield (Load), de vez conectar em apenas uma lâmpada, colocaria mais lâmpadas em ligação paralela.

Lembrando que tem que tomar cuidado, pois o triac do Dimmer Shield suporta corrente de até 4 Amperes!!!

Sobre a limitação do Arduino em utilizar apenas para controlar o Dimmer, não procede! Eu fiz um projeto de automação residencial do meu quarto, onde utilizei o Dimmer Shield, o Ethernet Shield e um relês (para ligar e desligar o som), onde controlava pelo meu celular via WiFi (ethernet local) e também pelos dois botões.

Em breve vou fazer mais um tutorial, sobre a automação do meu quarto!

Comentário de ALINE HUBNER em 11 junho 2015 às 10:47
Bom dia,

Estou fazendo um projeto de automação residencial basico para uso próprio, tenho diversas lampadas no ap e gostaria de controlar cada uma delas.
Como cada uma precisa de um relé para ser controlada pelo sistema e estou fazendo por partes, gostaria de ja ter essa parte completa para que não precise instalar os relés e após ter que modificar novamente para os dimmers.
Situação hipotética:
São 8 lampadas, cada uma tem uma chave, ja sei como controlo elas "liga/desliga", mas como são muito fortes, quero controlar a luminosidade.
Preciso de um Dimmer Shiel pra cada uma como comentou abaixo? (devido o chaveamento do triac)
Posso usar ele como central e colocar relés e dimmers comuns em cada uma das lampadas e apos isso controlar pelo programa desenvolvido( por mim, neste caso) para o arduino?

Em outro comentário mencionaram que o arduino deveria controlar apenas o dimmer por causa de sua capacidade, isso seria real?
Comentário de André Araújo Kuhn Pereira em 14 março 2015 às 16:38

Caro Roger Celestino, não é possível usar dois Dimmer Shield em um Arduino, pois a porta digital responsável pelo chaveamento do Triac não muda. Infelizmente será necessário utilizar dois Arduino.

Comentário de Roger Celestino de Melo em 10 março 2015 às 9:38
Bom dia!
Será que eu consigo usar 2 Dimmers Shield em somente um arduino ?
Quero controlar a luminosidade 2 lampadas incandescentes independentes.
Obrigado.

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço