Autor Tema: Generar señal cuadrada 50Hz  (Leído 1404 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado cignacio6

  • PIC10
  • *
  • Mensajes: 6
Generar señal cuadrada 50Hz
« 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!

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Generar señal cuadrada 50Hz
« Respuesta #1 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

Desconectado chicodita03

  • PIC10
  • *
  • Mensajes: 9
Re: Generar señal cuadrada 50Hz
« Respuesta #2 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


 

anything