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 12 julho 2016 às 16:19

André, no começo eu fiz um HTML embutido no código do arduino, mas fica meio pesado e lerdo... não gostei.

Depois desenvolvi uma web pra colocar no Micro SD, assim fica melhor, mas ainda não me agradou pois pra automação residencial eu esbarrei em alguns problemas como por exemplo o retorno de status dos equipamentos de "campo", eles não existiam e pra existir isso seria algo não muito profissional de se fazer. Foi quando descobri dois programas que me agradaram, um deles é o TouchOsc e o outro é o Blynk, ambos rodam em IOs e Android e ambos fazem a leitura da dos pinos do arduino, me possibilitando sabe remotamente qual o verdadeiro estado dos dispositivos, mesmo que eles tenham sido manipulados localmente

Comentário de André Araújo Kuhn Pereira em 12 julho 2016 às 16:04

Leandro! Estou fazendo um tutorial para controlar o dimmer shield pelo módulo Ethernet Shield W5100.

Eu tentei inserir uma página web junto com o código do arduino. Porém tive problemas, as vezes a página não carrega por completo. Mas funciona recebendo comandos! Por exemplo, no navegador (google chrome) coloco o endereço IP do w5100 mais a barra e o comando.

Exemplo: "http://192.168.0.177/?Aumentar", aumenta o dimmer; "http://192.168.0.177/?Diminuir", diminui o dimmer. 

Então estou desenvolvendo um aplicativo para android, para quando pressionar um botão, ele solicitar uma página com o endereço citado acima. Vou colocar o aplicativo no Play Store! Com o nome de "Dimmer Shield Ethernet"

Desta forma, funciona normalmente! Já tem um bom tempo que estou testando, e não percebi alguma anomalia!

Daqui para o fim de semana eu coloco o tutorial!

Não sei como funciona o cc3000. A página html coloca no shield? Ou no arduino junto com o código?

O teu projeto com o módulo bluetooth não seria melhor e mais prático?

Comentário de Leandro Chamiso em 12 julho 2016 às 15:07

Exato Andre. Deixei o Dimmer jumpeado no canal 6. Infelizmente estou com problema na placa cc3000... até semana passada está tudo ok, hoje eu fui testar e ela não está conectando mais a rede, desconfio que esteja com algum problema.

Com relação ao meu projeto, não irei usar pino analógico, mas como existe a possibilidade de eu precisar de mais sinais, eu desenvolvi uma placa I2C capaz de de fornecer mais 16 sinais digitais através dos pinos A4 e A5, o que solucionaria um eventual problema.

Em princípio apenas irei desenvolver comunicação via Xbee, usando a serial do arduino... mas ainda não comecei esta configuração.

Comentário de André Araújo Kuhn Pereira em 12 julho 2016 às 0:53

Boa noite Leandro! Desculpe a demora em responder, não recebi o e-mail com a atualização de comentários.

No antigo Dimmer Shield, só é possível dimerizar um canal apenas!

No novo Dimmer Shield, desenvolvi com a possibilidade de usar até três canais! Ou seja, iria utilizar 3 portas digitais para o disparo do TRIAC, um de detecção, e 6 portas digitais de leitura dos botões, totalizando 10 portas digitais. Sobrando apenas 4 para utilizar em outras funções.

Como o objetivo era também ser possível utilizar três canais com Ethernet Shield e Bluetooth ao mesmo tempo, projetei utilizando as portas analógicas para a leitura dos botões.

Muito legal o Shield CC3000, vai colocar o Dimmer com este shield na caixa do interruptor?

Dei uma olhada rápida no tutorial do CC3000, ele usa o D2 ou D3 para a interrupção, no Dimmer utiliza o pino D2 para a detecção do ponto zero, e de disparo do TRIAC D3, D5 e D6, neste caso seleciona com o jumper o D5 ou D6.

Você vai utilizar algum pino analógico?

Abraço.

Att.

André Kuhn.

Comentário de Leandro Chamiso em 7 julho 2016 às 16:41

André, boa tarde. Estive pensando a respeito de usares as portas analógicas para os botões B0 e B1. Tem algum motivo pra não usares as digitais para a função da intensidade?

Comentário de Leandro Chamiso em 6 julho 2016 às 15:51

Olá andré, ainda não testei. Preciso elaborar um steck para fazê-lo funcionar junto com o Shield CC3000 e tbm irei modificar os botões, vou soltá-los da placa e deixá-los fixados em outro lygar

Comentário de André Araújo Kuhn Pereira em 6 julho 2016 às 15:20
Boa tarde Leandro! Já testou o novo Dimmer Shield?!? Abraço.
Comentário de André Araújo Kuhn Pereira em 28 junho 2016 às 23:36

Boa noite Leandro! 

Segue meu e-mail: andrekuhn.automacao@gmail.com

Enviarei amanhã pela manhã.

Aguardo os seus dados!

Obrigado!

Comentário de Leandro Chamiso em 28 junho 2016 às 19:27

André, qual teu email particular pra eu te enviar os dados de entrega?

Comentário de André Araújo Kuhn Pereira em 28 junho 2016 às 14:31
É sim Leandro! Pode usar até três Dimmer Shield! Empilhando em cima do outro sobre um Arduíno! A seleção do pino de disparo do triac é feito pelo código e pelo jumper na placa!

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço