Ir ao conteúdo
  • Cadastre-se

Pwm do pic


Ir à solução Resolvido por Pedro Caio França,

Posts recomendados

Estou querendo controlar a entrega de potência média a uma carga através do PWM do PIC 16f877. Para isso, pensei em igualar o período do PWM ao período da rede elétrica de 16,67 ms (na verdade ao semiciclo que é de 8,33ms), e a partir daí controlar o tempo do pulso em nível alto controlando assim a tensão gerada. No entanto, o PWM é controlado pelo timer 2. Estou usando um cristal de 4 MHz, e com isso consigo um período máximo de 4,096 ms [Tpwm = (PR2+1)*Tosc*PrescalerTMR2, com PR2 = 255, Tosc = 250ns e PrescalerTMR2 = 16]. Não quero por hora trocar o cristal para um de frequência maior. Gostaria de saber se tem algum outro modo de aumentar esse período máximo do timer 2 sem trocar o cristal e sem outros prejuízos. Ou alguma outra forma de fazer esse controle sem necessariamente igualar ao período da rede elétrica.

Desde já muito obrigado.

Link para o comentário
Compartilhar em outros sites

@Pedro Caio França ,

 

Acho que o mais importante é você sincronizar o controle via PWM a partir da passagem por zero da tensão na carga.

 

Quanto à igualar o período, talvez não seja necessário.

 

Por exemplo, se voce usar um TRIAC, o que você estará fazendo na verdade é enviar um sinal de acionamento a ele, esperando um tempo a partir da transição por zero, e a potência entregue será controlada justamente por essa diferença de tempo. Neste caso nem é PWM....

 

Se fosse usar algum circuito com Mosfet, então sim, nada te impede de usar um tempo do PWM que seja múltiplo da frequência da rede. Pode ser desde 1 até qualquer múltiplo que permita a geração da frequência de uma maneira mais precisa, assim você pode manter o seu cristal.

 

Paulo

Link para o comentário
Compartilhar em outros sites

@aphawk Essa sincronização já está feita no programa. Então acho que não entendi muito bem como usar o PWM nesse caso. Eu tô tentando igualar os períodos e só alterar o tempo de nível alto pra controlar. É o controle de velocidade de um motor de indução monofásico. Esse pensamento tá errado?

Já tentei utilizar esse pelo disparo do triac, usando o modo captura do pic e fazendo a subtração entre registradores, mas não deu muito certo e por isso tô tentando implementar via PWM.

Não entendi bem essa explicação final "pode ser desde 1 até qualquer múltiplo(...)". :/

Obrigado.

Link para o comentário
Compartilhar em outros sites

@Pedro Caio França ,

 

Opa, tranquilo, vou tentar explicar melhor :

 

Usamos a modulação PWM no controle de potência, quando a saída PWM é utilizada para CHAVEAR a tensão entregue à carga, algo como quando a saída estiver em nível alto o elemento chateado deixa passar a tensão, e quando estiver em nível baixo, bloqueia a tensão. 

 

Por exemplo , isso ocorre quando usamos transistores MOSFET no chaveamento em amplificadores de áudio classe D.

 

Mas quando usamos um TRIAC, a coisa é muito diferente, pois quando o TRIAC começa a conduzir, não adianta mais mudar o nível aplicado em seu Gate, ele só vai parar de conduzir quando a tensão entre o Anodo e o Catodo chega a zero, entendeu ?

 

Resumindo, um TRIAC pode conduzir nos dois semi-ciclos da tensão de rede, a única coisa que podemos controlar é justamente o instante onde vai COMEÇAR essa condução, e a partir daí o Triac vai conduzir até o final do semi-ciclo, quando a tensão chegar a zero.

 

Assim, você vai controlar a potência entregue à carga, variando o instante ( após a passagem por zero ! ) em que você manda o Triac conduzir !

 

Por exemplo, se voce esperar exatamente o tempo correspondente a meio semi-ciclo, ( 60 Hz = 16,7 milisegundos, então um semi-ciclo = 8,3 milisegundos, certo ? ) que no caso seria de 4,17 milisegundos, o TRIAC vai conduzir durante a metade do tempo, e então a potência entregue na carga será a metade !

 

O que que você tem de fazer : imagine que o tempo para acionar o Triac varia entre 0 e 8,3 milisegundos ( claro que para cada um dos semi-ciclos ok ? ), o que você tem de fazer é justamente variar esse tempo : quanto menor o tempo decorrido após a passagem por zero, maior a potência entregue à carga !

 

Existem muitos posts aqui no Fórum sobre esse assunto, pesquise no próprio Fórum, usando a ferramenta  PESQUISA acima à direita na tela, ok ?

 

Paulo

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@aphawk Cara, muito obrigado pela excelente explicação! Mas eu que me expressei errado. Essa parte do disparo funcionou corretamente. 

O meu programa é pra controlar a velocidade do motor e simultaneamente medi-la. Separadamente, os dois funcionam normalmente. Consigo com um programa controlar a velocidade, e com outro medi-la. Mas quando junto os dois programas que dá pau. Eu consigo controlar a velocidade, mas não medir. Tava usando o pic 16f628a. Então mudei a ideia pra controlar a velocidade usando o pwm e medi-la usando o capture. Pra isso troquei pro pic 16f877 que possui dois modos CCPs. Mas o que eu queria mesmo era continuar com o 628a, mas já bati muita cabeça e não consegui. O pior é que sei é que é algum problema besta. Então voltando pro 877, me surgiu essa dúvida sobre como usar o pwm pra controlar corretamente.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...