TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: cignacio6 en 02 de Noviembre de 2014, 01:51:34

Título: Generar señal cuadrada 50Hz
Publicado por: cignacio6 en 02 de Noviembre de 2014, 01:51:34
Hola amigos, estoy haciendo un inversor y necesito generar una señal cuadrada que tenga una frecuencia de 50 Hz y que cuente con un desfase de 90º para poder enviarla a un transistor y amplificar la corriente luego.

¿De qué forma podría programarla para que salga como la necesito?

Muchas gracias a todos!
Título: Re: Generar señal cuadrada 50Hz
Publicado por: KILLERJC en 02 de Noviembre de 2014, 02:52:05
Por software, a través de los Timers o del CCP.

Si supongo que es la linea, entonces usaría la linea (220v) conectarlo al PIC con un par de diodos, así tener los 50Hz y la referencia, de ahí es solo contar tiempo desde que detectas un flanco de subida o bajada.
Es decir, detectas el flanco de subida, esperas 5ms ( con un timer ) y activas tu salida. Luego esperas el flanco de bajada, otros 5ms y desactivas tu salida.

Si necesitas generar 2 señales, desfazadas entre si por 90º, podrias hacer 2 cosas.
Con un timer lograr los 10ms de retardo y otro timer para el tiempo luego de esos 10mS asi desfazas a 90º. ( o usar uno con 5ms y llevar la cuenta para ver cual es la que le toca subir/bajar)
O tomar los 50Hz de la linea, usar el flancos para activar una salida y usar un timer para el desfase a 90º para la otra señal.

Si algun otro posee otra idea mejor, es todo lo que se me ocurre ahora
Título: Re: Generar señal cuadrada 50Hz
Publicado por: chicodita03 en 16 de Noviembre de 2014, 02:59:35
Lo que yo entiendo es que debes generar con el pic una señal cuadrada de 50 Hz que luego usas para conmutar un transistor. Si es solo eso, lo que debes hacer es obtener el período T de esa señal, encender y apagar el puerto cada T

Código: [Seleccionar]
while(true)
{
   output_low(pin_b0);
   delay_ms(T);
   output_high(pin_b0);
   delay_ms(T);
}

Y ya con eso tienes tu señal a 50 Hz, ¿para que aplicación la estás usando?
Espero haber ayudado