Autor Tema: Fasimetro (secuencia de fases)  (Leído 3066 veces)

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

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Fasimetro (secuencia de fases)
« Respuesta #15 en: 28 de Agosto de 2021, 17:31:58 »
DominusDRR

Como hacer el hardware para detectar los cambios de las fases?. Con cruce por cero?.

Puedes usar transformadores para un aislamiento del sistema.



Pero es posible construir un circuito en Y con divisores de voltaje para evitar el tamaño voluminoso de los transformadores.

También debes usar un filtro pasabajos para eliminar cualquier tipo de interferencia de alta frecuencia.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Fasimetro (secuencia de fases)
« Respuesta #16 en: 28 de Agosto de 2021, 17:43:25 »
DominusDRR

Como hacer el hardware para detectar los cambios de las fases?. Con cruce por cero?.

Con resistencias.

Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Robert76

  • PIC24F
  • *****
  • Mensajes: 571
Re:Fasimetro (secuencia de fases)
« Respuesta #17 en: 28 de Agosto de 2021, 18:21:04 »
Otra opción de detección es, usando optoacopladores.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Fasimetro (secuencia de fases)
« Respuesta #18 en: 29 de Agosto de 2021, 11:04:03 »
DominusDRR

Como hacer el hardware para detectar los cambios de las fases?. Con cruce por cero?.

Hola. Recordé que hay OP que cuando se los utiliza como comparadores tienen un problema cuando se los compara con 0V y la alimentación no es una fuente simétrica. Es decir que para valores iguales a cero pueden ser considerados como valores indeterminados y la salidas pueden generar cualquier valor, como la imagen adjunta. La solución es desplazar la referencia.

« Última modificación: 29 de Agosto de 2021, 11:07:35 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Fasimetro (secuencia de fases)
« Respuesta #19 en: 29 de Agosto de 2021, 11:33:52 »
DominusDRR

Como hacer el hardware para detectar los cambios de las fases?. Con cruce por cero?.

En el nuevo circuito, se compara con 2.5V en lugar de 0V. El OP U1A se utiliza como acoplador de impedancias. También nótese que no se necesita conectar el neutro a la tierra del circuito, ya que las resistencias son iguales y es una carga simétrica.

Se puso capacitores de 0,1 uF en paralelo a las resistencias de 10K para formar un filtro RC entre la resistencia de 330k y los mencionados capacitores para intentar eliminar señales de alta frecuencia.



Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Fasimetro (secuencia de fases)
« Respuesta #20 en: 29 de Agosto de 2021, 11:47:10 »
Un saludo mis hermanos del foro TodoPic.

Mi intensión es hacer un fasimetro con pic para conocer la secuencia en una red trifásica. Se que cada una de las fases están desplazadas 120° una de la otra. Ahora como lo plasmó en ccs c para saber cuál fase es primero, cual es segunda y cuál es tercera.

Gracias por su ayuda...

Respecto al código inicial que compartí, la función denominada proceso podría convertirse en un deadlock o punto muerto, ya que es un while infinito que se apropia del procesador del CPU y si necesitas realizar otros procesos, no lo podrías hacer.

Así que mejor, en la misma tarea que intenta determinar si el Terminal A pasa de 0 a 1 lógico, se realiza el proceso para determinar cual de los terminales B y C pasan primero a 1 lógico.


Código: C
  1. #define INICIO                                                          0
  2. #define ESPERAR_QUE_A_PASE_A_0                          1
  3. #define ESPERAR_QUE_A_PASE_A_1                          2
  4. #defien ESPERAR_QUE_B_o_C_PASEN_A_1_LOGICO      3
  5. estadoTarea = INICIO;
  6. while(1) // super bucle principal, generalmente esta en main
  7.  
  8. {
  9.        switch (estadoTarea)
  10.        {
  11.              case INICIO:
  12.              {
  13.                   if (TerminalA == 1) // Si terminal A está en 1 lógico, se debe esperar a que pase a cero lógico
  14.                   {
  15.                          estadoTarea = ESPERAR_QUE_A_PASE_A_0;
  16.                   }
  17.                   else // Si terminal A está en 0 lógico, se debe esperar a que pase a 1 lógico
  18.                   {
  19.                          estadoTarea = ESPERAR_QUE_A_PASE_A_1;
  20.                   }
  21.                    break;
  22.              }
  23.              case ESPERAR_QUE_A_PASE_A_0:
  24.              {
  25.                  if (TerminalA == 0)
  26.                  {
  27.                          estadoTarea = ESPERAR_QUE_A_PASE_A_1;
  28.                  }
  29.                  break;
  30.              }
  31.              case ESPERAR_QUE_A_PASE_A_1;
  32.              {
  33.                   if (TerminalA == 1)
  34.                   {
  35.                           estadoTarea = ESPERAR_QUE_B_o_C_PASEN_A_1_LOGICO;
  36.                   }
  37.                   break;
  38.             }
  39.             default: // Equeivale a case ESPERAR_QUE_B_o_C_PASEN_A_1_LOGICO;
  40.            {
  41.                 if (TerminalB == 1)
  42.                 {
  43.                         LED1 = 1;//opcion 1
  44.                         LED2 = 0;
  45.                         estadoTarea = INICIO;// para que retorne al estado inicial de la tarea
  46.                 }
  47.                 if (TerminalC == 1)
  48.                 {
  49.                         LED2 = 1;//opcion 2
  50.                         LED1 = 0;
  51.                         estadoTarea = INICIO;; // para que retorne al estado inicial de la tarea
  52.                 }
  53.          }
  54.     }
  55.        
  56.        
  57. }

« Última modificación: 30 de Agosto de 2021, 22:20:03 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Ruco

  • PIC12
  • **
  • Mensajes: 62
Re:Fasimetro (secuencia de fases)
« Respuesta #21 en: 01 de Septiembre de 2021, 22:38:41 »
Amigo DominuDRR, dame un poco de teoría y explícame por qué comentas esto en tu código...

En el proceso para determinar cual de los terminales B y C pasan primero a 1 lógico.


           
Código: C++
  1. default: // Equeivale a case ESPERAR_QUE_B_o_C_PASEN_A_1_LOGICO;

Por que no importa la secuencia entre B y C?.
« Última modificación: 01 de Septiembre de 2021, 22:41:25 por Ruco »

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Fasimetro (secuencia de fases)
« Respuesta #22 en: 01 de Septiembre de 2021, 22:45:55 »
Amigo DominuDRR, dame un poco de teoría y explícame por qué comentas esto en tu código...

co, se realiza el proceso para determinar cual de los terminales B y C pasan primero a 1 lógico.


           
Código: C++
  1. default: // Equeivale a case ESPERAR_QUE_B_o_C_PASEN_A_1_LOGICO;

Cuando la tarea está en el case ESPERAR_QUE_A_PASE_A_1 y cuando TerminalA pasa a uno lógico, estadoTarea cambia a ESPERAR_QUE_B_o_C_PASEN_A_1_LOGICO;

¿Hasta ese punto si lo entiendes? (1)

Si es así, si estadoTarea es igual a ESPERAR_QUE_B_o_C_PASEN_A_1_LOGICO que es lo mismo que si tuviera estadoTarea el valor de 3 (#define ESPERAR_QUE_B_o_C_PASEN_A_1_LOGICO      3)

Cuando se ejecute nuevamente el switch evaluando la variable estadoTarea, el siguiente y último estado sería así:

case ESPERAR_QUE_B_o_C_PASEN_A_1_LOGICO:
{
 .....
}

¿Si entiendes hasta aquí? (2)

Pero como es el ultimo estado de todas las opciones que puede tener la variable estadoTarea, entonces la escribo así:

default:
{
 .....
}

¿Si lo captas? (3)
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Ruco

  • PIC12
  • **
  • Mensajes: 62
Re:Fasimetro (secuencia de fases)
« Respuesta #23 en: 28 de Septiembre de 2021, 18:55:51 »
Gracias la la ayuda a DominusDRR. Aquí pongo el código a como lo explicas.