Autor Tema: Pulsos a ciertos grados de una senoide  (Leído 4992 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Pulsos a ciertos grados de una senoide
« en: 16 de Mayo de 2010, 20:40:04 »
Que tal colegas, espero alguien pueda ayudarme ya que me enrede un poco con mi programa.

Les explico estoy trabajando en un envio de señales a ciertos angulos de una onda Senoidal, ya tengo mi circuito para detectar el cruce por cero y el micro con las pequeñas pruebas que le eh realizado trabaja justo como lo espero, ahora entro a la parte de realizar las maniobras para que pueda yo mover este pulso solo a cierto angulo.

Un ejemplo si quiero que el pulso se trabaje cada 90 grados, al detectar el cruce por cero haria un delay de aproximadamente 4.16x10-3S.

Ponga uno que el calculo sea lo de menos mi problema es el querer hacerlo con delay que por el momento es la idea que se me ah ocurrido claro.

Código: C
  1. #include <12F675.h>
  2. #use delay(clock=4000000)
  3. #fuses INTRC_IO,NOWDT,NOPUT,NOPROTECT,NOCPD,NOMCLR
  4. #use standard_io (a)
  5. int i;
  6. void main(void)
  7. {
  8.    for(;;)
  9.     {
  10.   if(input(PIN_a0)){
  11.     output_high(PIN_a4);
  12.     delay_us(10);
  13.     output_low(PIN_a4);
  14.     while(input(PIN_a0));}  
  15.        
  16.       if(input(pin_a0)==0)
  17.        output_low( PIN_A4 );
  18.     }
  19. }

este es mi programita de ejemplo.

como yo lo pensaba era realizar dos Delay, el primero determinaría hasta que punto se prendiera y el segundo el tiempo de encendido, el cual seria mas o menos de 10 a 20 us.

Si alguien puede aportar alguna otra idea le agradezco, mientras continuo con el programa, espero tambien que a alguien le sirva.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Pulsos a ciertos grados de una senoide
« Respuesta #1 en: 16 de Mayo de 2010, 20:48:31 »
Es para algun control de fase?

Puedes usar un timer tambien no?

Saludos
El papel lo aguanta todo

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Pulsos a ciertos grados de una senoide
« Respuesta #2 en: 16 de Mayo de 2010, 21:14:56 »
Estoy buscando la manera de controlar el disparo de un SCR, pero sin la necesidad de usar potenciómetros ni capacitores, por mucho un optoacoplador, y también mas que nada para que el disparo de este sea en algun angulo deseado, como comente arriba por decir ah 10º, 90º, 160º, etc.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Pulsos a ciertos grados de una senoide
« Respuesta #3 en: 16 de Mayo de 2010, 23:23:59 »
Hola, en la última sección de mi semitesis puedes encontrar un ejemplo de control de iluminación con triac, pic y lcd.

http://www.migsantiago.com/index.php?option=com_content&view=article&id=4&Itemid=5

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Pulsos a ciertos grados de una senoide
« Respuesta #4 en: 20 de Mayo de 2010, 21:15:42 »
Que tal colegas aqui les traigo un avance.


Esto es lo que esto haciendo con el pulso, como veran estoy moviendo el pulzo Azul dentro de toda la senoide amarilla.

El detalle ahora dentro de mi codigo es que no me permite trabajar con la Lcd de 3 pines, al parecer tengo problemas con mi Mclr, aun que ya lo declare como puerto de salida aqui les muesto mi codigo.

Código: C
  1. #include <12F675.h>
  2. #use delay(clock=4M)
  3. #fuses INTRC_IO,NOWDT,NOPUT,NOPROTECT,NOCPD,NOMCLR
  4. #define GP0 PIN_A0
  5. #define GP1 PIN_A1
  6. #define GP2 PIN_A2
  7. #define GP4 PIN_A4
  8. #define GP5 PIN_A5
  9. #use standard_io (a)
  10. #define LCD_E     PIN_A2
  11. #define LCD_CK    PIN_A3  
  12. #define LCD_DAT   PIN_A4
  13. #include "lcd3.c"
  14. int s;
  15. void pulsos()
  16. {
  17.   if(input(PIN_a0)==1)
  18.       {
  19.     s=s*100;  
  20.     delay_us(s);
  21.     output_high(PIN_a1);
  22.     delay_us(10);
  23.     output_low(PIN_a1);
  24.     while(input(PIN_a0));
  25.       }
  26. }
  27.  
  28. void tiempo()
  29. {
  30.    if(input(pin_a5)==1);
  31.    s=s+10;
  32.    printf(lcd_putc,"Incrementando %d",s);
  33. }
  34.  
  35. void main()
  36. {
  37. s=s*0;
  38. lcd_init();
  39. delay_ms(100);
  40.    for(;;)
  41.    {
  42.       tiempo();
  43.       pulsos();
  44.    }
  45. }

Otra cosa, estoy usando el detector de Cruce por cero que muestras en tu tesis Santiago, mas que jeje lo tengo simulado ya que solo corrígeme, la gnd de mi circuito la conectaría a la corriente alterna o seria mediante o como aqui muestro mi simulación



Claro que en Simulacion no pasa nada pero ya en el potro puedo hacer lumbre

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Pulsos a ciertos grados de una senoide
« Respuesta #5 en: 20 de Mayo de 2010, 21:40:41 »
Usa fusibles para prevenir accidentes.

La tierra del circuito se une al NEUTRO de la pared. Asegúrate de identificar plenamente cuál es LINEA y cuál es NEUTRO.

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Pulsos a ciertos grados de una senoide
« Respuesta #6 en: 20 de Mayo de 2010, 22:10:25 »
Usa fusibles para prevenir accidentes.

La tierra del circuito se une al NEUTRO de la pared. Asegúrate de identificar plenamente cuál es LINEA y cuál es NEUTRO.

Ok Por esa parte no habra problema, sobre mi codigo, no sabes por que el Mclr no me lo detecta como salida?

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Pulsos a ciertos grados de una senoide
« Respuesta #7 en: 20 de Mayo de 2010, 22:37:10 »
GP3 sólo funciona como entrada en los PIC12.

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1086
Re: Pulsos a ciertos grados de una senoide
« Respuesta #8 en: 20 de Mayo de 2010, 22:59:45 »
Hola darck_khronos, para mis aplicaciones yo utilizo lo siguiente, mira si te sirve algo.

saludos.


Acá te dejo el ejemplo completo.

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Pulsos a ciertos grados de una senoide
« Respuesta #9 en: 21 de Mayo de 2010, 00:06:59 »
Gracias por el Aporte Diego, Mañana en la escuela checare un detalle que me pareció interesante dentro de la simulación



y también con esto me ayudas a ver mi error y corroborar lo que dice Santiago.



 

anything