Ir ao conteúdo
  • Cadastre-se
Morfeu Morfeu

Controlador de potência com arduino

Recommended Posts

Bom dia meus caros amigos! 

Estou desenvolvendo um projeto para poder controlar uma carga de 8A e com aproximadamente 1000W, pois bem fuçando na internet consegui um esquema do circuito que poderia ser útil para o que iria usar, é um DIMMER que é controlado com o ARDUINO, ele funciona muito bem para a lâmpada de 220V com 40W de potência  claro que ao terminar a montagem do mesmo fui fazer o teste em um alimentador vibratório aqueles que tem uma bobina, e adivinhem funcionou também porém muito fraco.

 

Amigos acho que o esquema na parte de potência deverá ser mais forte porém não sei como fazer isso, será que alguém poderia me ajudar ???? 

 

Obrigado e abaixo o esquema do circuito e a programação usada no ARDUINO.

 

 

layout controlador.jpg

 

 

 

 

 

Sketch 

 

 

//Pinos de Entrada/Saida
int sync = 7;                   //sinal de sincronismo com a rede eletrica (entrada)
int trigger = 4;                //pino que aciona o MOC3020 (saida)
int incButton = 12;              //botao de incremento da potencia (entrada)
int decButton = 10;              //botao de decremento da potencia (entrada)

 

//Variaveis

 

unsigned int timeToWait;  //tempo de espera apos a passagem pelo zero para disparar o TRIAC (em microssegundos)
int pulseWidth;                  //tempo de duracao do pulso de disparo
int state = 0;                   //status do sinal de sincronismo
int previousState = 0;           //estado anterior do sinal de sincronismo
const int halfCycle = 8333;      //tempo em microssegundos de um semiciclo da rede eletrica (constante)
float increment;                 //variavel utilizada para variar mais lentamente a potencia quando o botao e mantido pressionado

void setup(){
    pinMode(trigger, OUTPUT);
    pinMode(sync, INPUT);
    pinMode(incButton, INPUT);
    pinMode(decButton, INPUT);
    
    timeToWait = 8333;           //para lampada iniciar apagada
    increment = 8333.0;          //nessa condicao nao ocorrera disparo do TRIAC
    
    digitalWrite(trigger, LOW);  //assegura que a saida ira iniciar em zero
}


void loop(){
 boolean turnOff = 0;            //flag para indicar quando deve-se desligar a lampada
 boolean maxPower = 0;           //flag para indicar quando deve-se transmitir potencia maxima para a lampada
 
  /*Testa botões e valores limite para a variavel timeToWait*/
  if( (digitalRead(incButton) == LOW)&&(increment >= 200) )
      increment -= 0.22;
  else if( (digitalRead(decButton) == LOW)&&(increment <= 6000) )
      increment += 0.22;
  
  /*timeToWait recebe somente a parte inteira de increment*/
  timeToWait = (int)increment;
  
  /*Habilita flags de acordo com o valor de timeToWait*/
  if(timeToWait <= 200)
      maxPower = 1;
  else if(timeToWait >= 6000)
      turnOff = 1;
  
  /*Calcula tempo de duracao do pulso de disparo*/
  if( (!maxPower)&&(!turnOff) ){
      pulseWidth = halfCycle - timeToWait - 1000;
      if(pulseWidth < 0) 
          pulseWidth = 0;
  }

  /*Le estado do sinal de sincronismo*/
  state = digitalRead(sync);

  /*Se a potencia for maxima, deixa o trigger acionado direto*/
  if(maxPower)
      digitalWrite(trigger, HIGH);
  /*Se o estado do sinal de sincronismo mudou e a lampada nao deve ficar apagada*/
  else if( (turnOff == 0)&&(state != previousState) ){
      previousState = state;                                //armazena estado atual
      delayMicroseconds(timeToWait);                        //espera tempo para disparo
      digitalWrite(trigger, HIGH);                          //aciona sinal de disparo (trigger)
      delayMicroseconds(pulseWidth);                        //aguarda largura de pulso
      digitalWrite(trigger, LOW);                           //desliga pulso de disparo (trigger)
  }//end if
}//end void lo

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Isadora Ferraz observei que você está presente em vários tópicos do site, estou observando também que você conhece de eletrônica.Em um outro tópico 

você esclareceu uma dúvida interessante, tenho quase certeza que a dificuldade do Pedro seja parecida com a minha, como disse a lâmpada é uma carga resistiva e deve ser por esse motivo que funciona porém sem força, entendo que até a saída de controle do Arduino esteja normal o circuito e na parte de potência que deve estarmal desenvolvido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×