Microcontrolador, PIC, PROGRAMAÇÃO

[PIC] Gerar onda senoidal

Nesse post irei demonstrar como gerar uma senoide a partir do PWM do PIC, nesse  exemplo foi utilizado o MikroC PRO, mas poucas adaptações pode-se utilizá-lo em qualquer outro compilador e/ou tipo de microcontrolador.

Para que a saída seja uma senoide é necessário colocar um capacitor eletrolítico de pelo menos 100uF/16V na saída PWM.

Código Fonte

[member]
// ************************************************************
// oscilador senoidal
//
// Data: 08/09/2011
// Autores: Fabio Perkowitsch Mulero
// Descrição: oscilador senoidal de 60Hz  saída no pino CCP1
//
// ************************************************************

const char Senoide_Pura[]={//passos de 5 graus
127,
149,
170,
191,
209,
224,
237,
246,
252,
254,
252,
246,
237,
224,
209,
191,
170,
149,
127,
105,
84,
64,
45,
30,
17,
8,
2,
0,
2,
8,
17,
30,
45,
63,
84,
105,
127
};

void main()
{
   unsigned long a=0,b;
   TRISA = 0; // Saida
   TRISB = 0; // Saida
   TRISC = 0; // Saida

   PWM1_Init(2000);
   PWM1_Start();

   while(1)
   {
      for(a=0;a<sizeof(Senoide_Pura);a++)
      {
         PWM1_Set_Duty(Senoide_Pura[a]);
         Delay_us(400); // para passos de 5 graus em 60 Hz, calculo para 90 graus
      }
   }
}
[/member]

Comente e até o próximo post...

DATEK Tecnologia Eletrônica

Compartilhando o conhecimento de uma forma simples e objetiva.

Visite nossa loja: webloja.datek.com.br
Visite nosso forum: forum.datek.com.br
Visite nosso EAD: ead.datek.com.br

Ajude-nos a manter o blog fazendo uma doação: