Autor Tema: Frecuencia de red  (Leído 10123 veces)

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

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5610
    • Picuino
Frecuencia de red
« en: 02 de Mayo de 2012, 07:57:49 »
Hace tiempo que estoy interesado en medir con mucha precisión la frecuencia de la red eléctrica.
Todas las centrales eléctricas de un pais están interconectadas, incluso las centrales de diferentes países entre sí.
Esto hace que la frecuencia deba ser muy precisa.
He programado un frecuencímetro de precisión para bajas frecuencias.

Código: C
  1. /****************************************************************************
  2.   Precission Frequency meter
  3.  
  4.   PIC 18F2550
  5.  
  6.   Input Pin = Pin11 / RC0 / T1CKI
  7.  
  8.  ****************************************************************************/
  9.  
  10. #include <p18cxxx.h>
  11. #include <stdlib.h>
  12. #include <stdio.h>
  13. #include <delays.h>
  14. #include "main.h"
  15.  
  16. /****************************************************************************
  17.       GLOBAL VARS AND DEFINITIONS
  18.  ****************************************************************************/
  19. #pragma udata
  20. char str_buf[20];
  21. static unsigned char sys_clk, cent_second;
  22. static unsigned short timer1_carry;  // Timer1 extended counter
  23.  
  24.  
  25. #define TMR0_COUNT      (FOSC/((unsigned long)4*250*100))      // Number of carrys per second
  26. #define FOSC 20000000    // clock oscillator
  27. #define BAUD 57600       // usart baud speed
  28.  
  29. #pragma code
  30.  
  31. /****************************************************************************
  32.       STRING ROUTINES
  33.  ****************************************************************************/
  34. /*
  35.    Return string lenght
  36. */
  37. unsigned char str_len(char *str) {
  38.    unsigned char len;
  39.    len = 0;
  40.    while(*str!=0) {
  41.       len++;
  42.       str++;
  43.    }
  44.    return len;
  45. }
  46.  
  47. /*
  48.    Shift string to right
  49. */
  50. void str_shift_right(char *str) {
  51.    unsigned char c1, c2;
  52.    c1 = *str++;
  53.    while(c1!=0) {
  54.       c2 = *str;
  55.       *str = c1;
  56.       c1 = c2;
  57.       str++;
  58.    }
  59.    *str = c1;
  60. }
  61.    
  62.  
  63. /*
  64.    Add '.' character at position 'dot' of string 'str'
  65.    digit:     0  0 1 2 3 4 5 6
  66.    position:   -1 0 1 2 3 4 5 6
  67. */
  68. void str_dot(char *str, char dot) {
  69.    if (*str==0) return;
  70.    while(dot<1) {
  71.       str_shift_right(str);
  72.       *str = '0';
  73.       dot++;
  74.    }
  75.    while(dot>1) {
  76.       str++;
  77.       dot--;
  78.       if (*str==0) break;
  79.    }
  80.    if (*str!=0) {
  81.       str++;
  82.       str_shift_right(str);
  83.       *str = '.';
  84.    }
  85. }
  86.  
  87.  
  88. /*
  89.    Convert float to string number in engineering format
  90. */
  91. void ftos(float fnum, long *str) {
  92.    char exp10;
  93.    exp10 = 0;
  94.    if (fnum<0.0) fnum = -fnum;
  95.    while(fnum<10000000.0) {
  96.       fnum *= 10.0;
  97.       exp10++;
  98.       if (exp10>38) break;
  99.    };
  100.    ltoa((long)fnum, str);
  101.    str_dot(str, 8-exp10);
  102. }
  103.  
  104.  
  105. /****************************************************************************
  106.       INTERRUPT SERVICE ROUTINE
  107.  ****************************************************************************/
  108.  
  109. #pragma interrupt isr_main
  110. void isr_main(void) {
  111.    if (INTCONbits.TMR0IF==1)  {        // if TIMER0 overflow interrupt
  112.       INTCONbits.TMR0IF = 0;           // Clear Timer0 interrupt flag
  113.       TMR0L += 6+3;
  114.       sys_clk--;
  115.       if (sys_clk==0) {
  116.          sys_clk = TMR0_COUNT;
  117.          cent_second++;
  118.       }
  119.    }
  120. }
  121.  
  122. #pragma code high_vector=0x08
  123. void isr_high(void) {
  124.    _asm GOTO isr_main  _endasm
  125. }
  126.  
  127.  
  128.  
  129. /****************************************************************************
  130.       TIMER 0
  131.  ****************************************************************************/
  132. /*
  133.    Initialize Timer0
  134. */
  135. void timer0_init(void) {
  136.    INTCON = 0b11100000;  // Enable interrupts
  137.    T0CON =  0b01001000;
  138.    sys_clk = TMR0_COUNT;
  139.    TMR0L = 6;
  140.    cent_second = 0;
  141. }
  142.  
  143.  
  144.  
  145. /****************************************************************************
  146.       TIMER 1
  147.  ****************************************************************************/
  148.  
  149. /*
  150.    Initialize Timer1
  151. */
  152. void timer1_init(void) {
  153.    T1CON = (unsigned char)
  154.        (1<<7)    // RD16: 1 = 16-Bit Read/Write Mode Enable bit
  155.       +(0<<6)    // T1RUN: 0 = Device clock is derived from another source
  156.       +(0b00<<4) // T1CKPS: Timer1 Input Clock Prescale Select bits
  157.                  // 11 = 1:8 Prescale value
  158.                  // 10 = 1:4 Prescale value
  159.                  // 01 = 1:2 Prescale value
  160.                  // 00 = 1:1 Prescale value
  161.       +(0<<3)    // T1OSCEN: 0 = Timer1 oscillator is shut off
  162.       +(1<<2)    // T1SYNC: 1 = Do not synchronize external clock input
  163.       +(1<<1)    // TMR1CS: 1 = External clock from RC0 pin
  164.       +(0<<0);   // TMR1ON: 0 = Stops Timer1
  165.    TMR1H = 0;
  166.    TMR1L = 0;
  167.    timer1_carry = 0;
  168.    PIR1bits.TMR1IF = 0;
  169.    PIE1bits.TMR1IE = 0;
  170. }
  171.  
  172.  
  173. /*
  174.    Count Timer1 carry
  175. */
  176. void timer1_addcarry(void) {
  177.    if (PIR1bits.TMR1IF == 1) {
  178.       PIR1bits.TMR1IF = 0;
  179.       timer1_carry++;
  180.    }
  181.    else {
  182.       Nop(); Nop();
  183.       Nop(); Nop();
  184.       Nop(); Nop();
  185.    }
  186. }
  187.  
  188.  
  189. /*
  190.    Read Timer1 counter
  191. */
  192. unsigned long timer1_read(void) {
  193.    union {
  194.       unsigned long dword;
  195.       unsigned int word[2];
  196.       unsigned char byte[4];
  197.    } timer;
  198.  
  199.    do {
  200.       timer1_addcarry();
  201.       timer.byte[0] = TMR1L;
  202.       timer.byte[1] = TMR1H;
  203.       timer.word[1] = timer1_carry;
  204.    } while(PIR1bits.TMR1IF==1);
  205.    
  206.    return timer.dword;
  207. }
  208.  
  209.  
  210. /****************************************************************************
  211.       TIMER 1 FREQUENCY METER
  212.  ****************************************************************************/
  213.  
  214. /*
  215.    Run Timer1 count 1 second with interrupts
  216. */
  217. unsigned long freqmeter_int(unsigned char sampletime) {
  218.    timer1_init();
  219.    timer0_init();
  220.    cent_second = 1-sampletime;
  221.  
  222.    T0CONbits.TMR0ON = 1;
  223.    Delay10TCYx(3);
  224.    Nop();  Nop(); Nop();  Nop();
  225.    T1CONbits.TMR1ON = 1;
  226.  
  227.    while(cent_second != 0) {
  228.       timer1_addcarry();
  229.    }
  230.    while(sys_clk > 1) {
  231.       timer1_addcarry();
  232.    }
  233.    while(cent_second==0);
  234.  
  235.    T1CONbits.TMR1ON = 0;
  236.    T0CONbits.TMR0ON = 0;
  237.    
  238.    return timer1_read();
  239. }
  240.  
  241.  
  242. #define FREQMETER_IN  PORTCbits.RC0
  243. /*
  244.    Returns measure of low frequency on RC0
  245.    Max accurate frequency: f<500kHz Ton>1us
  246. */
  247. float freqmeter_real(unsigned char sample_time) {
  248.    unsigned long time;
  249.    float freq;
  250.    char str_buf[20];
  251.    
  252.    // Reset timers
  253.    timer1_init();
  254.    timer0_init();
  255.    cent_second = 0-sample_time;
  256.  
  257.    // Start counters
  258.    while(FREQMETER_IN==1);
  259.    while(FREQMETER_IN==0);
  260.    T1CONbits.TMR1ON = 1;
  261.    T0CONbits.TMR0ON = 1;
  262.    
  263.    // Counting
  264.    while(cent_second!=0) {
  265.       timer1_addcarry();
  266.    };
  267.    Delay10TCYx(30);
  268.  
  269.    // Stop counters
  270.    while(FREQMETER_IN==1);
  271.    while(FREQMETER_IN==0);
  272.    T1CONbits.TMR1ON = 0;
  273.    T0CONbits.TMR0ON = 0;
  274.    timer1_addcarry();
  275.  
  276.    // Compute frequency
  277.    time = (unsigned long)TMR0L - 6;
  278.    time += ((unsigned long)sample_time + cent_second)*(250*TMR0_COUNT);
  279.    time += (TMR0_COUNT-sys_clk)*250;
  280.    freq = (float) timer1_read() / time * ((float)FOSC/4);
  281.  
  282.    return  freq;
  283. }
  284.  
  285.  
  286. /****************************************************************************
  287.       USART AND RS232 FUNCTIONS
  288.  ****************************************************************************/
  289.  
  290. /*
  291.   Initialize USART for RS232 comunications
  292. */
  293.  
  294. void rs232_init(void) {
  295.    BAUDCONbits.BRG16 = 0;             // BRG16: 16-Bit Baud Rate Register Enable bit
  296.    SPBRGH = 0;
  297.    SPBRG = (FOSC/(16*BAUD))-1;   // Real Baud = FOSC/(16*(SPBRG+1))
  298.  
  299.    TXSTA = (char)
  300.            (0<<7)    // CSRC:  1 = Syncronous Master mode
  301.          + (0<<6)    // TX9:   1 = Selects 9-bit transmission
  302.          + (1<<5)    // TXEN:  1 = Transmit enabled
  303.          + (0<<4)    // SYNC:  1 = Synchronous mode
  304.          + (0<<3)    // SENDB: 1 = Asynchronous mode: Send Sync Break on next transmission (cleared by hardware upon completion)
  305.          + (1<<2)    // BRGH:  1 = Asynchronous mode: High speed
  306.          + (1<<1)    // TRMT:  1 = TSR empty
  307.          + (0<<0);   // TX9D:  Ninth bit of Transmit Data
  308.  
  309.    RCSTA = (char)
  310.            (1<<7)    // SPEN:  1 = Serial port enabled
  311.          + (0<<6)    // RX9:   1 = Selects 9-bit reception
  312.          + (0<<5)    // SREN:  1 = Enables single receive in Master Synchronous mode
  313.          + (1<<4)    // CREN:  1 = Enables Continuous Receive
  314.          + (0<<3)    // ADDEN: 1 = Enables address detection (RX9 = 1)
  315.          + (0<<2)    // FERR:  1 = Framing error
  316.          + (0<<1)    // OERR:  1 = Overrun error (can be cleared by clearing bit CREN)
  317.          + (0<<0);   // RX9D:  Ninth bit of Received Data
  318.  
  319.    TRISCbits.TRISC6 = 0;      // Enable TX output
  320.    PIE1bits.TXIE = 0;         // Disable RS232 interrupts
  321.    PIR1bits.TXIF = 0;
  322.    //TXREG = 0;
  323. }
  324.  
  325.  
  326. /*
  327.    Puts rom buffer to usart
  328. */
  329. void rs232_puts(char const rom *str) {
  330.    while(*str) {
  331.       if (*str == '\n')
  332.          rs232_putc('\r');
  333.       rs232_putc(*str);
  334.       str++;
  335.    }
  336. }
  337.  
  338.  
  339. /*
  340.    Puts ram buffer to usart
  341. */
  342. void rs232_puts_ram(char *str) {
  343.    while(*str) {
  344.       if (*str == '\n')
  345.          rs232_putc('\r');
  346.       rs232_putc(*str);
  347.       str++;
  348.    }
  349. }
  350.  
  351.  
  352. /*
  353.    Send char to USART with pooling
  354. */
  355. void rs232_putc(char c) {
  356.    while (PIR1bits.TXIF == 0);
  357.    TXREG = c;
  358. }
  359.  
  360.  
  361. /****************************************************************************
  362.       MAIN PROGRAM
  363.  ****************************************************************************/
  364. #pragma code
  365.  
  366. //#define PPM_ERROR  (11)
  367. #define PPB_ERROR  (10300+0*12.5)
  368.  
  369. /*
  370.    MAIN ROUTINE
  371. */
  372. void main(void) {
  373.    unsigned long lfreq;
  374.    float freq;
  375.  
  376.    // Initialize subsystems
  377.    rs232_init();
  378.    rs232_puts("\nSystem OK.\n");
  379.    
  380.    // Freqmeter
  381.    while(1) {
  382.       rs232_puts("F = ");
  383.       lfreq = freqmeter_int(1);
  384.       if (lfreq>10000) {
  385.          lfreq = freqmeter_int(100);
  386.          lfreq += ((lfreq/10000) * PPB_ERROR)/100000.0;
  387.          ltoa(lfreq, str_buf);
  388.       }
  389.       else {
  390.          freq = freqmeter_real(100)*(1.0+PPB_ERROR/1000000000.0);
  391.          ftos(freq, str_buf);
  392.       }
  393.       rs232_puts_ram(str_buf);
  394.       rs232_puts("Hz\n");
  395.    }
  396. }
  397.  
  398.  
  399.  


Luego he montado un detector de paso por cero de precisión:



El circuito anterior tiene el peligro de estar conectado directamente a la red eléctrica.
Para evitar este inconveniente se puede modificar cambiando R1 = R2 = 22K y conectar los extremos a un transformador de 12v.
Con esta modificación se evita el peligro de manejar directamente la tensión de red y el riesgo que conlleva.




El resultado es:
F = 99.967048Hz
F = 99.963792Hz
F = 99.960120Hz
F = 99.956288Hz
F = 99.959160Hz
F = 99.959520Hz
F = 99.957424Hz
F = 99.960120Hz
F = 99.965480Hz
F = 99.961824Hz
F = 99.951888Hz
F = 99.952608Hz
F = 99.958192Hz
F = 99.955000Hz
F = 99.945192Hz
F = 99.948088Hz
F = 99.963080Hz
F = 99.961512Hz
F = 99.953440Hz
F = 99.953680Hz
F = 99.954408Hz
F = 99.962816Hz
F = 99.967472Hz
F = 99.960472Hz
F = 99.966576Hz
F = 99.977216Hz
F = 99.963376Hz
F = 99.955560Hz
F = 99.969264Hz
F = 99.968968Hz
F = 99.961992Hz
F = 99.963440Hz

La frecuencia de red es de 50Hz (En España y resto de Europa)
Como puede verse, al contar pasos por cero la frecuencia medida es el doble que la frecuencia de red.

El error promedio es de -398ppm

El cuarzo empleado tiene una precisión de 100ppm y está calibrado con un condensador para que tenga un error menor de 50ppm
Estoy esperando que me llegue un frecuencímetro de precisión para calibrar con más precisión el cuarzo, pero ya se pueden sacar conclusiones.

La frecuencia de red no es exacta y varía a lo largo del día.

Saludos.
« Última modificación: 03 de Mayo de 2012, 19:47:29 por Picuino »

Desconectado samshiel_pic

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 777
    • Electrónica·Ingenia
Re: Frecuencia de red
« Respuesta #1 en: 02 de Mayo de 2012, 10:41:00 »
Muy interesante Picuino  ((:-)) ((:-)) ((:-)) es curioso ver la diferencia de frecuencia que hay aunque es bastante poca.

PD: Aunque no se si es realmente poca o no  :?

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5610
    • Picuino
Re: Frecuencia de red
« Respuesta #2 en: 02 de Mayo de 2012, 12:33:56 »
Es un error muy grande. Para un reloj no serviría.

Un error de 400ppm (partes por millón) se convierte en:

Segundos al día =  24*60*60 = 86400 s/dia

Error de 400ppm = 86400 * 400/1000000 = 34.6 segundos / día

Esto es igual a 17 minutos de error al mes.


Es demasiado. Algunos relojes con toma en la red tenían su base de tiempos en la frecuencia de red y no tenían tanto error.
Creo que a otras horas del día la frecuencia aumenta para compensar.

Aprovecho para dejar una lectura actual:

Código: [Seleccionar]
F=  [Hz];Error [ppm]
99,959696;-403
99,95392;-461
99,95832;-417
99,966448;-336
99,964512;-355
99,96356;-364
99,964448;-356
99,959936;-401
99,962304;-377
99,96772;-323
99,967592;-324
99,968248;-318
99,964208;-358
99,958008;-420
99,959216;-408
99,960048;-400
99,955;-450
99,95332;-467
99,956808;-432
99,955072;-449
99,945008;-550
99,945504;-545
99,950488;-495
99,950384;-496
99,947552;-524
99,946176;-538
99,942736;-573
99,938224;-618
99,942864;-571
99,94148;-585
99,942016;-580
99,946176;-538
99,948576;-514
99,95148;-485
99,95652;-435
99,957248;-428
99,95832;-417
99,96212;-379
99,96012;-399
99,953616;-464
99,956944;-431
99,95652;-435
99,945312;-547
99,94676;-532
99,955192;-448
99,950488;-495
99,946;-540
99,949824;-502
99,940496;-595
99,934192;-658
99,947072;-529
99,950488;-495
99,947968;-520
99,956336;-437
99,962064;-379
99,954408;-456
99,96012;-399
99,970472;-295
99,968008;-320
99,968608;-314
99,972544;-275
99,974808;-252
99,98156;-184
99,985472;-145
99,987032;-130
99,98528;-147
99,983368;-166
99,985472;-145
99,988592;-114
99,987776;-122
99,984016;-160
99,980048;-200
99,977648;-224
99,974152;-258
99,968008;-320
99,962352;-376
99,96548;-345
99,968656;-313
99,9664;-336
99,960472;-395
99,957824;-422
99,959216;-408
99,958608;-414
99,955984;-440
99,95548;-445
99,95676;-432
99,954576;-454
99,948992;-510
99,955072;-449
99,966944;-331
99,968656;-313
99,96832;-317
99,97884;-212
99,98384;-162
99,975984;-240
99,973248;-268
99,97812;-219
99,986496;-135
99,98764;-124
99,985112;-149
99,985664;-143
100,00531;53
99,984688;-153
99,978312;-217
99,987344;-127
99,989616;-104
99,989504;-105
99,98788;-121
100,00543;54
99,990608;-94
100,00793;79
99,98944;-106
100,00616;62
99,991936;-81
99,993184;-68
99,991136;-89
99,988912;-111
99,986688;-133
99,989616;-104
99,985472;-145
99,974624;-254
99,976496;-235
99,982048;-180
99,976392;-236
99,97432;-257
99,979752;-202
99,979376;-206
99,975472;-245
99,979568;-204
99,987344;-127
99,989616;-104
99,986144;-139
100,00226;23
99,994608;-54
100,00692;69
99,988472;-115
100,01282;128
99,997104;-29
100,01038;104
100,00162;16
100,01908;191
100,00043;4
100,02076;208
100,01038;104
100,02899;290
100,01725;173
100,03181;318
100,01636;164
100,04009;401
100,02858;286
100,04881;488
100,0312;312
100,04361;436
100,02941;294
100,04398;440
100,02668;267
100,04337;434
100,02668;267
100,03611;361
100,01931;193
100,04124;412
100,02028;203
100,03991;399
100,02811;281
100,03938;394
100,0185;185
100,0398;398
100,03019;302
100,04278;428
100,02524;252
100,04296;430
100,03418;342
100,05245;524
100,03019;302
100,04999;500
100,03855;386
100,04774;477
100,03204;320
100,05209;521
100,03628;363
100,04749;475
100,02595;259
100,03514;351
100,01532;153
100,02851;285
100,01038;104
100,02858;286
100,01401;140
100,03293;329
100,02219;222
100,03658;366
100,01837;184
100,04303;430
100,02584;258
100,03574;357
100,02215;221
100,03944;394
100,01449;145
100,03241;324
100,0228;228
100,03019;302
100,00876;88
100,02416;242
100,00906;91
100,0284;284
100,01478;148
100,02524;252
100,01224;122
100,02524;252
100,00311;31
100,01766;177
100,00543;54
100,02101;210
99,99616;-38
100,0097;97
99,99376;-62
100,00392;39
99,98728;-127
100,00853;85
99,988944;-111
99,985112;-149
99,985472;-145
100,00251;25
99,989296;-107
99,992408;-76
100,00634;63
99,990608;-94
99,989808;-102
99,986088;-139
99,98992;-101
100,0065;65
99,994544;-55
100,0022;22
99,985472;-145
99,982528;-175
99,980472;-195
99,984384;-156
99,986808;-132
100,00889;89
99,986808;-132
99,990472;-95
99,986992;-130
99,985472;-145
100,00351;35
99,992952;-70
100,00358;36
99,98824;-118
99,98408;-159
99,978912;-211
99,977408;-226
99,986736;-133
99,988528;-115
99,991264;-87
99,989912;-101
99,99204;-80
99,984016;-160
99,987112;-129
99,985536;-145
99,979152;-208
99,97728;-227
99,978792;-212
99,975472;-245
99,966088;-339
99,962592;-374
99,967408;-326
99,976872;-231
99,983056;-169
99,980112;-199
99,969928;-301
99,972408;-276
99,977888;-221
99,975472;-245
99,978736;-213
99,982472;-175
99,979376;-206
99,979616;-204
99,984312;-157
99,985472;-145
99,98872;-113
99,988432;-116
99,98228;-177
99,98228;-177
99,990472;-95
99,99168;-83
99,98812;-119
99,98884;-112
99,988528;-115
99,989504;-105
99,989264;-107
100,00245;24
99,988048;-120
99,99168;-83
100,00251;25
99,98644;-136
100,00197;20
99,993664;-63
100,01938;194
100,00239;24
100,01671;167
100,00662;66
100,01689;169
99,994128;-59
100,01684;168
100,01001;100
100,02756;276
100,00835;83
100,01684;168
99,99716;-28
100,01897;190
100,00482;48
100,01997;200
100,00109;11
100,01501;150
99,991344;-87
100,00288;29
99,988592;-114
100,01111;111
100,00256;26
100,02142;214
100,00543;54
100,01861;186
99,9996;-4
100,01676;168
100,00984;98
100,02716;272
100,00882;88
100,02493;249
100,00209;21
100,01019;102
99,994072;-59
100,01318;132
99,995032;-50
100,00543;54
99,98644;-136
99,986208;-138
99,971872;-281
99,967408;-326
99,967472;-325
99,958912;-411
99,950488;-495
99,948808;-512
99,946888;-531
99,942912;-571
99,94184;-582
99,944784;-552
99,940496;-595
99,93352;-665
99,936248;-638
99,940496;-595
99,938944;-611
99,937504;-625
99,940496;-595
99,942144;-579
99,94256;-574
99,944888;-551
99,953616;-464
99,958736;-413
99,950488;-495
99,952656;-473
99,963264;-367
99,969568;-304
99,97728;-227
99,981392;-186
99,980472;-195
99,974032;-260
99,978792;-212
99,986736;-133
99,988952;-110
99,990472;-95
100,00519;52
99,991632;-84
99,99312;-69
99,990472;-95
99,987184;-128
99,984624;-154
99,980472;-195
99,979208;-208
99,974088;-259
99,970472;-295
99,974992;-250
99,975472;-245
99,967296;-327
99,9664;-336
99,96368;-363
99,958992;-410
99,958384;-416
99,95916;-408
99,963856;-361
99,966448;-336
99,96368;-363
99,955;-450
99,95368;-463
99,964808;-352
99,96988;-301
99,96548;-345
99,957248;-428
99,951888;-481
99,948808;-512
99,951344;-487
99,953872;-461
99,961584;-384
99,96464;-354
99,959288;-407
99,961696;-383
99,969264;-307
99,972784;-272
99,980048;-200
99,989264;-107
100,0015;15
99,990472;-95
99,992576;-74
99,995552;-44
100,01366;137
100,00043;4
100,02499;250
100,01141;114
100,02451;245
100,00341;34
100,02202;220
100,0123;123
100,03019;302
100,01382;138
100,02834;283
100,01038;104
100,02851;285
100,01038;104
100,02834;283
100,01444;144
100,02439;244
100,00245;24
100,02094;209
100,01431;143
100,02804;280
100,01111;111
100,02505;250
100,01301;130
100,02649;265
100,00866;87
100,03216;322
100,02602;260
100,03772;377
100,01259;126
100,03204;320
100,02274;227
100,034;340
100,01461;146
100,03175;318
100,01742;174
100,0367;367
100,0228;228
100,03288;329
100,01038;104
100,0192;192
99,998944;-11
100,005;50
99,988288;-117
99,992224;-78
99,990472;-95
99,980112;-199
99,975472;-245
99,977648;-224
99,97428;-257
99,96628;-337
99,963264;-367
99,960472;-395
99,964392;-356
99,970552;-294
99,96892;-311
99,961824;-382
99,96012;-399
99,962592;-374
99,967296;-327
99,970472;-295
99,971808;-282
99,974152;-258
99,976808;-232
99,972888;-271
99,97224;-278
99,975472;-245
99,974992;-250
99,969392;-306
99,970472;-295
99,970976;-290
99,96548;-345
99,962544;-375
99,966704;-333
99,966704;-333
99,96;-400
99,96272;-373
99,966992;-330
99,964928;-351
99,964096;-359
99,969152;-308
99,971344;-287
99,96632;-337
99,96344;-366
99,973912;-261
99,977592;-224
99,976624;-234
99,979024;-210
99,975472;-245
99,975472;-245
99,975552;-244
99,97824;-218
99,978736;-213
99,976256;-237
99,972352;-276
99,969992;-300
99,97772;-223
99,981136;-189
99,980472;-195
99,98956;-104
99,983424;-166
99,97992;-201
99,98692;-131
99,988304;-117
99,986992;-130
99,988488;-115
99,98956;-104
99,989856;-101
99,99336;-66
99,990472;-95
99,987936;-121
99,989024;-110
100,00251;25
99,990472;-95
99,98644;-136
99,991992;-80
99,99336;-66
99,986688;-133
99,984624;-154
99,98312;-169
99,976624;-234
99,972592;-274
99,973608;-264
99,97812;-219
99,976992;-230
99,968496;-315
99,970472;-295
99,97224;-278
99,978736;-213
99,979208;-208
99,976752;-232
99,982888;-171
99,972656;-273
99,96808;-319
99,97908;-209
99,989744;-103
99,987216;-128
99,987696;-123
99,990472;-95
99,980048;-200
99,981264;-187
99,987456;-125
99,989992;-100
99,9912;-88
99,989024;-110
99,982704;-173
99,972816;-272
99,96548;-345
99,969264;-307
99,976808;-232
99,972544;-275
99,96988;-301
99,970472;-295
99,967592;-324
99,96548;-345
99,965296;-347
99,967112;-329
99,96772;-323
99,964208;-358
99,959696;-403
99,96688;-331
99,974032;-260
99,96964;-304
99,96476;-352
99,971568;-284
99,970472;-295
99,963264;-367
99,965352;-346
99,970552;-294
99,969928;-301
99,96772;-323
99,960472;-395
99,956336;-437
99,95868;-413
99,9688;-312
99,969152;-308




Saludos.
« Última modificación: 02 de Mayo de 2012, 12:38:26 por Picuino »

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5610
    • Picuino
Re: Frecuencia de red
« Respuesta #3 en: 02 de Mayo de 2012, 13:17:16 »
Otra serie tomada a las 18h durante 15 minutos. Ahora el error acumulado es de 5ppm:

Código: [Seleccionar]
99,99312
99,99312
99,9936
99,983712
99,984256
99,986752
99,990472
99,981872
99,988488
99,98644
99,97644
99,981872
99,99144
99,988592
99,984448
99,978496
99,973192
99,97632
99,97632
99,966704
99,964808
99,962304
99,965056
99,962544
99,96548
99,97176
99,970552
99,960976
99,96464
99,977456
99,974032
99,96476
99,975472
99,981752
99,969568
99,973792
99,98644
99,990472
99,982576
99,975472
99,985472
99,99144
99,985472
99,979752
99,98156
99,98276
99,987216
100,0065
99,998592
100,00728
99,99116
100,00239
99,990472
99,98824
100,01038
99,996808
100,00859
99,99288
99,989744
99,987456
100,00191
99,988592
99,988528
99,983488
99,975344
99,973792
99,975472
99,977216
99,973056
99,96176
99,961344
99,967952
99,970304
99,966752
99,97016
99,97476
99,9688
99,965056
99,97772
99,991936
99,98528
99,977184
99,979856
99,989808
99,98872
99,979504
99,985472
99,992816
99,982472
99,978736
99,986632
99,989024
99,99336
99,984384
99,977112
99,976872
99,97016
99,961936
99,961824
99,969152
99,964688
99,956704
99,959936
99,961696
99,956472
99,953512
99,963376
99,971808
99,967528
99,96368
99,960312
99,959584
99,960472
99,97116
99,97728
99,976144
99,977528
99,980472
99,972592
99,971088
99,98192
99,978736
99,973968
99,972656
99,96932
99,96548
99,96632
99,973488
99,976688
99,974392
99,969032
99,96024
99,958912
99,965
99,971872
99,97772
99,97476
99,972408
99,969088
99,966944
99,972112
99,982112
99,98144
99,972888
99,973792
99,976944
99,975344
99,975472
99,981136
99,987296
99,985472
99,981504
99,987696
99,988888
99,993424
99,993184
100,01188
99,998656
100,01038
99,996808
100,01414
99,999528
100,017
99,997216
100,00639
99,994256
100,00995
99,990608
100,01038
100,00411
100,01491
99,995552
100,00835
99,9964
100,01419
100,00453
100,01778
99,997992
100,00592
99,987032
100,00626
99,990608
100,00699
99,987456
99,983792
99,983296
99,988432
99,989808
99,985472
99,97908
99,975472
99,97384
99,973912
99,976992
99,976624
99,96772
99,96056
99,967184
99,979992
99,975472
99,970472
99,970472
99,969512
99,962408
99,96344
99,967888
99,967664
99,964336
99,95952
99,95548
99,957312
99,964448
99,95712
99,957424
99,95652
99,953032
99,957904
99,963608
99,965184
99,96356
99,961216
99,960472
99,96464
99,961112
99,961112
99,96548
99,964512
99,959696
99,961448
99,967472
99,969032
99,964928
99,959288
99,96164
99,966624
99,966576
99,96548
99,968656
99,97224
99,967352
99,966224
99,974864
99,974808
99,97812
99,988784
99,99228
100,00692
99,995552
100,00829
99,987808
99,991936
99,990472
100,00186
99,990608
100,00245
99,987512
99,982656
99,97868
99,982576
99,985352
99,980472
99,980472
99,974992
99,963264
99,966752
99,973008
99,96464
99,95548
99,957248
99,94676
99,943208
99,949888
99,953616
99,949952
99,94136
99,937376
99,939952
99,944224
99,951288
99,952552
99,95356
99,954464
99,950488
99,959344
99,970472
99,976624
99,971808
99,969568
99,98132
99,987296
99,9812
99,98276
99,98028
99,966624
99,962488
99,96964
99,97428
99,982472
99,972176
99,962064
99,958992
99,958384
99,95488
99,965
99,983424
99,97296
99,9588
99,963744
99,96988
99,96164
99,96548
99,973608
99,969512
99,958512
99,955296
99,964208
99,973608
99,973008
99,971568
99,978912
99,978792
99,974808
99,970472
99,974208
99,986736
99,991752
99,985472
99,984752
99,985472
99,976688
99,968496
99,973968
99,98824
99,988064
99,978496
99,979344
99,97884
99,973296
99,970472
99,97884
99,988432
99,98812
99,985968
99,986992
100,01141
99,991808
100,00488
99,99632
100,02035
100,00692
100,02243
100,00734
100,0228
100,00043
100,00788
99,994912
100,01868
99,9964
100,00191
99,988784
99,99156
99,98992
99,982952
99,984624
99,986992
99,980472
99,979344
99,987184
99,989616
99,9786
99,96988
99,971088
99,9664
99,966224
99,975344
99,984144
99,984624
99,971808
99,96
99,96548
99,97144
99,967824
99,966944
99,970976
99,96632
99,95676
99,95664
99,96688
99,969512
99,957824
99,955072
99,963264
99,96548
99,959456
99,967592
99,97372
99,96932
99,968496
99,963984
99,967824
99,974032
99,967824
99,969808
99,982816
99,987592
99,977824
99,971504
99,9688
99,96036
99,96024
99,966512
99,96856
99,963912
99,955296
99,947776
99,951648
99,957664
99,960472
99,958192
99,95688
99,948208
99,950192
99,96344
99,975344
99,975472
99,97492
99,973432
99,981632
99,988528
99,992336
99,9936
99,992816
99,987696
99,985472
99,987296
99,990472
99,990608
100,00369
99,993528
100,01038
99,988472
99,991936
100,00494
99,98692
99,988952
100,00416
99,989912
100,00138
99,994384
100,01484
99,993056
100,00675
99,997752
100,00866
99,991808
100,00812
99,994256
100,00469
99,98936
99,991616
100,00144
99,991512
99,992648
99,981136
99,980552
99,985048
99,981872
99,975472
99,975472
99,98156
99,983712
99,982408
99,985472
99,987592
99,991392
100,01099
99,997568
100,01519
100,00406
100,017
99,998816
100,01766
100,00494
100,0232
100,00995
100,02268
100,01038
100,03449
100,01903
100,03019
100,01855
100,02869
100,00138
100,01128
100,00008
100,01689
99,99128
99,99228
100,00043
99,992576
99,98632
100,00543
99,993952
100,01496
99,999528
100,01532
100,01205
100,03472
100,02304
100,03895
100,03514
100,05658
100,04089
100,05931
100,04918
100,05801
100,03341
100,06153
100,05914
100,07545
100,05718
100,06959
100,04881
100,05824
100,04272
100,0607
100,04881
100,05496
100,03514
100,05394
100,03611
100,05484
100,04649
100,06178
100,04009
100,05382
100,04851
100,06259
100,04844
100,06769
100,04999
100,06106
100,04601
100,06059
100,04608
100,05658
100,02887
100,0435
100,03376
100,0432
100,01359
100,02863
100,01532
100,02638
100,00989
100,03097
100,01134
100,01519
99,997104
100,02642
100,01636
100,02398
100,00453
100,01944
99,99668
100,01444
100,005
100,02703
100,00924
100,01778
100,00162
100,02374
100,01194
100,02929
100,01749
100,03168
100,00955
100,02381
100,01874
100,04009
100,02405
100,0367
100,02076
100,03586
100,02101
100,03882
100,0241
100,04259
100,01532
100,02524
100,02309
100,04009
100,02028
100,03919
100,02405
100,03299
100,01282
100,03359
100,02524
100,04184
100,02249
100,03949
100,02697
100,03961
100,02656
100,04009
100,02716
100,05418
100,04059
100,04875
100,02936
100,04512
100,04009
100,06259
100,04768
100,05884
100,03437
100,03855
100,02028
100,04905
100,04101
100,0491
100,03019
100,04613
100,03126
100,04957
100,04089
100,0604
100,04272
100,0543
100,04438
100,06421
100,05228
100,06715
100,05907
100,06619
100,04009
100,06439
100,05222
100,06088
100,04249
100,05389
100,03144
100,03288
100,01594
100,03514
100,0185
100,02732
100,00959
100,02368
100,00316
100,01241
100,00634
100,03109
100,00715
100,01001
99,996208
100,01249
99,988944
99,99348
100,01407
100,00138
100,00687
99,992816
100,00043
100,01766
99,990608
100,01038
100,01438
100,02274
99,991136
99,985472
99,99484
100,00966
99,992512
99,992048
100,01819
99,995552
100,00322
99,993664
100,02756
100,01324
100,0241
100,01671
100,03996
100,0185
100,02638
100,02142
100,04881
100,02726
100,03694
100,01984
100,03514
100,01808
100,03514
100,02368
100,04566
100,02231
100,02524
100,01659
100,03634
100,01742
100,0343
100,02398
100,03741
100,01349
100,02524
100,01725
100,03288
100,01419
100,02924
100,02028
100,03501
100,01038
100,02249
100,00506
100,01731
100,00543
100,02524
100,00543
100,01264
99,991632
100,00434
99,99116
100,00882
99,99176
100,00859
99,99236
100,00543
99,988288
100,00531
99,98936
100,00121
99,991264
99,990048
99,986992
100,00675
99,990008
100,01128
100,00197
100,01532
100,00251
100,02238
100,00882
100,02619
100,01324
100,02911
100,01676
100,02684
100,01532
100,04003
100,02674
100,03484
100,01915
100,03514
100,01725
100,02684
100,01612
100,03593
100,01122
100,02016
100,01778
100,04438
100,01974
100,03019
100,0259
100,04009
100,02028
100,04504
100,04009
100,05228
100,02457
100,0346
100,02125
100,04231
100,0315
100,04999
100,03891
100,05389
100,03216
100,04571
100,03437
100,05609
100,04326
100,06112
100,04768
100,0607
100,04709
100,06793
100,05569
100,06798
100,04332
100,05658
100,04858
100,06572
100,0435
100,06486
100,05616
100,06486
100,04242
100,0629
100,05162
100,05853
100,03441
100,04999
100,0321
100,04965
100,03351
100,05162
100,03586
100,03694
100,01038
100,02626
100,00942
100,02386
100,01224
100,02631
100,01038
100,01926
99,998592
100,01694
100,00912
100,01908
99,998656
100,00634
99,98776
100,01134
100,00465
100,02296
100,0127
100,03258
100,01038
100,02524
100,02196
100,03996
100,01684
100,02959
100,01425
100,02524
100,00453
100,02231
100,01294
100,02649
100,00043
100,01725
100,01038
100,02416
100,00764
100,03622
100,02732
100,03514
100,00995
100,02638
100,01731
100,03778
100,02304
100,04374
100,02314
100,0337
100,01897
100,04212
100,03772
100,05789
100,03341
100,04601
100,03741
100,05545
100,03901
100,0537
100,03275
100,04554
100,03514
100,04999
100,03824
100,05694
100,03651
100,0478
100,02781
100,04601
100,03139
100,04469
100,02911
100,04504
100,02368
100,03514
100,02869
100,04868
100,02863
100,04082
100,02398
100,03514
100,02457
100,04332
100,02255
100,0321



Saludos


Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17909
    • MicroPIC
Re: Frecuencia de red
« Respuesta #4 en: 02 de Mayo de 2012, 13:22:19 »
Interesante tu proyecto. ¿Has mirado en el osciloscopio si ese detector del paso por cero va "clavao" a la alterna?
Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Frecuencia de red
« Respuesta #5 en: 02 de Mayo de 2012, 13:32:41 »
Pues yo no entiendo cómo has calculado el error si no tienes ningún valor de referencia por lo que has mencionado.

Si tu mísmo dices que "La frecuencia de red no es exacta y varía a lo largo del día.", ¿cómo puedes saber que tus mediciones están bien o no lo están?.

"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5610
    • Picuino
Re: Frecuencia de red
« Respuesta #6 en: 02 de Mayo de 2012, 13:43:36 »
Hola BrunoF,
La medición la realizo con un frecuencímetro que tiene un cuarzo calibrado con un error menor de 50ppm (20ppm a 20ºC).

La frecuencia nominal de la red son 50Hz, lo cual me da 100 cruces por cero por segundo (100Hz)
La frecuencia medida la comparo con 100Hz y calculo el error.

Por ejemplo:
Medición         = 99.9653 Hz
Valor nominal = 100Hz
Error              = 99.9653-100 = -0.0347 Hz
Error relativo% = Error / 100 Hz = -0.000347 = -347ppm


Saludos.
« Última modificación: 02 de Mayo de 2012, 14:47:32 por Picuino »

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5610
    • Picuino
Re: Frecuencia de red
« Respuesta #7 en: 02 de Mayo de 2012, 13:52:09 »
Interesante tu proyecto. ¿Has mirado en el osciloscopio si ese detector del paso por cero va "clavao" a la alterna?

Tiene un error muy pequeño. Me sale como en la página de la que he tomado el cto:
http://www.dextrel.net/diyzerocrosser.htm



De todas formas voy a reprogramar el frecuencímetro.
Por ahora estoy haciendo mediciones separadas de pulsos y de tiempo, calculo los Hz y vuelvo a empezar con los contadores a cero cada segundo.
Voy a cambiar el programa para que me envíe valores acumulados:  Tiempo acumulado, Pulsos acumulados.

De esta forma si hay errores en el detector se pueden corregir con los valores acumulados. Así sólo me queda el error del oscilador que pienso corregir esta semana en cuanto me llegue el frecuencímetro digital con 0.01ppm de error.


Saludos.
« Última modificación: 02 de Mayo de 2012, 14:48:06 por Picuino »

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5610
    • Picuino
Re: Frecuencia de red
« Respuesta #8 en: 02 de Mayo de 2012, 13:57:56 »
Algo de documentación (iré añadiendo según encuentre documentos) :

http://ocw.uc3m.es/ingenieria-electrica/operacion-y-control-de-sistemas-electricos/regulacion-de-frecuencia-potencia



Saludos.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Frecuencia de red
« Respuesta #9 en: 02 de Mayo de 2012, 14:40:42 »
Si te da siempre esa desviacion, tienes una corriente muy buena.

Hace unos años me dedique a vender e instalar SAIs, que aparte de sumunistrar electricidad cuando se va la corriente, otra de las cosas que hace es coger la corriente de la red, rectificarla y despues oscilarla a 50Hz, con desviaciones de +/-0.1% tanto en frec. como en V. Para demostrarles a los clientes lo mala que era su corriente y por tanto lo mucho que necesitaban los SAIs que yo vendia  :lol:, les dejaba un SAI instalado 24 o 48 horas midiendo tension y frecuencia y despues les mostraba los resultados. Te puedo decir que vi de todo, frecuencias entre 45 y 55 Hz de esos limites no solian pasar (creo que incluso esta prohibido por ley) y en V ya era la hostia habia sitios que en vez de 230V no pasaban de 180V ni de coña, en los poligonos industriales a cietas horas, cuando arrancan muchos motores al mismo tiempo, te puedes encontrar cualquier cosa tanto en frecuencia como en V.

Desconectado fram_22

  • PIC18
  • ****
  • Mensajes: 316
Re: Frecuencia de red
« Respuesta #10 en: 02 de Mayo de 2012, 15:16:01 »
Hola picuino:

Tu proyecto es sumamente interesante.
Sin embargo tengo un par de sugerencias que espero te sean de utilidad:

Es un hecho que la frecuencia de la red varia, esto se debe a las variaciones en la demanda, entre mayor demanda esta tiende a bajar un poco y al disminuir, la frecuencia subirá. Esto es causado por los cambios en la velocidad del eje de los generadores eléctricos.

Cuando una señal se encuentra contaminada por distorsión armónica (Lo cual es muy común el ámbitos urbanos), el cruce por cero de la señal tiende a desplazarse.
Esto indudablemente afectara tu medición de frecuencia. Mientras peor sea la contaminación, peor será la desviación del cruce y por lo tanto tendrás un mayor error en tus mediciones.
Es importante considerar también que la presencia de fallos tales como sag swells , notches y resonancias pueden afectar a tu circuito de cruce por cero.

>En aplicaciones conectadas a la red donde de necesita un seguimiento fiel de la frecuencia y una estimación correcta del angulo fase es común utilizar un lazo amarrado por fase o PLL. Estos tiene la propiedad de engancharse la frecuencia fundamental y dejan de lado la distorsión armónica. Además calculan con una precisión importante la frecuencia y el angulo de fase instantáneo de la señal que monitoreas. Es importante mencionar que un PLL no necesariamente es un circuito integrado o un embebido dentro de un micro-controlador. También existen algoritmos PLL que pueden ser programados en un procesador, particularmente el PLL basado en la transformada de park es utilizado en seguimiento de la red eléctrica por su alto rechazo a la contaminación armónica y buena respuesta ante transitorios de la linea.

Espero esta información te sea de utilidad.

saludos!

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5610
    • Picuino
Re: Frecuencia de red
« Respuesta #11 en: 02 de Mayo de 2012, 15:25:45 »
Muchas gracias fram,

Ya he considerado que el punto exacto de paso por cero podría cambiar de una onda a otra por la distorsión. Eso puede modificar la precisión de medida de la frecuencia, en especial cuando se toma en intervalos cortos (1 segundo/toma en mi caso).
Por eso la primera mejora que voy a realizar es tomar datos durante mucho tiempo (valores acumulados).

Si me meto más a fondo con el tema, tengo un dsPIC30 esperando para programarle. Podría realizar una FFT para convertir la forma de onda en sus frecuencias armónicas y el bucle de enganche de fase que me comentas. De todas formas ese es un tema avanzado y no creo que llegue a tanto con este proyecto.

Por ahora me interesaba conocer el error de frecuencia y el desfase del cruce por cero para disparar un triac por tiempo (sin medir el cruce por cero real) y ya he comprobado que eso es imposible.

Editado: También estaba interesado en comprobar la precisión del frecuencímetro que he programado para bajas frecuencias y, con algunos pequeños cambios que voy a realizar, estoy satisfecho con las medidas que hace.

Saludos.
« Última modificación: 02 de Mayo de 2012, 15:29:34 por Picuino »

Desconectado fram_22

  • PIC18
  • ****
  • Mensajes: 316
Re: Frecuencia de red
« Respuesta #12 en: 02 de Mayo de 2012, 15:31:50 »
Para disparar un triac, el cruce por cero es mas que suficiente como mencionas.
Si llegas a necesitar ayuda o decides adentrarte en el uso de un PLL o FFT no dude en preguntarme.

saludos!

Desconectado jansuini

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 560
Re: Frecuencia de red
« Respuesta #13 en: 02 de Mayo de 2012, 15:54:32 »
Buenas:
Les comento que en los sistemas eléctricos nacionales realmente existen protecciones contra bajas frecuencias ,pero por ejemplo en el caso de Argentina comenzan a actuar a los 49Hz. despejando carga para que la frecuencia no siga bajando .En el resto de paises seguramente tienen algún patrón similar .-
Picuino: realmente para medir bajas frecuencias lo que se trata es de medir el período de la frecuencia y luego invertir el valor.-
Por lo que yo veo de lo medido ,quizás hay menos de 1/2Hz de corrimiento en relación a 50Hz.
Otro comentario, con el tema de los relojes que se mantienen sincronizados con la linea eléctrica , en los despachos de carga nacionales ,aparte de algún reloj sincronizado por GPS y medidores de frecuencia ,existe algún instrumento que mide lo que se llama "hora eléctrica" y un instrumento que mide la diferencia entre la hora electrica y la hora oficial ,en función de esa diferencia se les pide a los generadores acelerar o frenar la frecuencia ,siempre en valores mínimos.-
Sds.
Jorge

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5610
    • Picuino
Re: Frecuencia de red
« Respuesta #14 en: 02 de Mayo de 2012, 16:08:52 »
Para disparar un triac, el cruce por cero es mas que suficiente como mencionas.
Si llegas a necesitar ayuda o decides adentrarte en el uso de un PLL o FFT no dude en preguntarme.

saludos!

Creo que voy a implementar un PLL, pero no en el micro. Voy a enviar al PC los datos de tiempo entre pulsos (en unidades de 0.2 microsegundos)
Cada 10ms enviaré al PC los us desde que comenzó la cuenta hasta el último cruce por cero.
Con estos datos puedo "fabricar" un PLL digital fuera de linea y aplicarlo para deducir las frecuencias.

¿Tienes algún esquema de un PLL digital?

Saludos.