detectando el cruce por cero en ac?

Necesito detectar el cruce por cero para un arrancador suave. Hace mucho tiempo, lo hice usando una resistencia de 1 Mega ohm directamente conectada al microcontrolador en un lado y energía viva en el otro lado. Tuve éxito, pero ¿es recomendable? ¿De qué otra forma puedo hacerlo de forma económica y fiable?

Respuestas (5)

He diseñado arrancadores suaves utilizando los procesadores PIC16C74A/F77. El cruce por cero puede ser complicado si también tiene que trabajar en entornos ruidosos.

Si no necesita que el procesador esté aislado de la línea, no hay nada de malo en que un par de resistencias de alto valor alimenten un pin de la CPU. Usaría un par de diodos shottky para aumentar los diodos de protección internos solo por una cuestión de robustez, pero funcionará bien. Si necesita aislamiento, use un optoaislador de salida de transistor. Preste atención a la velocidad de conmutación del opto y minimice la corriente del colector del transistor para maximizar la velocidad de conmutación.

Dicho esto, pasemos al ruido. Si está controlando la fase de otra cosa que no sea el calentamiento resistivo, tendrá que lidiar con el ruido, lo que significa que es muy probable que tenga que lidiar con el ruido de cruce por cero. No cometa el error de novato de alimentar la entrada de cruce por cero a un pin de interrupción; eso convertirá su software en una masa humeante de maldad cuando el procesador intente lidiar con un montón de interrupciones. (Hablo por experiencia). Lanzar un RC o un filtro de paso bajo más avanzado en la línea solo introducirá un cambio de fase. Si puedes trabajar con eso, genial. Si no (tuve que lidiar con sistemas de 50/60 y 400 Hz), entonces debe probar otros medios.

En mi propio diseño, me encargué de ello en el software sondeando la línea y esencialmente haciendo una rutina de votación que ignoraba los transitorios. El cambio de fase estaba dentro de lo que podía manejar, era rápido y no fallaba ni siquiera con mucho ruido. (Probado en una instalación donde quitaron las tapas de los filtros de un horno de inducción, ¡nunca antes había visto una línea tan ruidosa!) Si tuviera que rediseñarlo, creo que podría probar una solución externa que involucre un paso único que " latch" el cruce por cero y luego el microcontrolador lo reconocería antes de que se pudiera establecer la siguiente interrupción.

Dicho todo esto, creo que encontrar de forma fiable el cruce por cero real en cualquier situación práctica fue una de las partes más complicadas del diseño del arrancador suave. Cerrar el circuito de control era secundario, pero en su mayor parte era solo sintonizar. Parece algo muy simple de hacer, pero aprendí bastante sobre la diferencia entre la teoría y la práctica durante ese tiempo. :-)

editar para describir la rutina de "votación":

Si no recuerdo mal, tenía una línea de E/S que era alta cuando la línea estaba por encima de cero y baja cuando la línea estaba por debajo de cero. La rutina de votación simplemente sondeó esa línea y si 2 de las últimas 3 muestras eran iguales, acepté el hecho de que la línea había cruzado el cero. Es muy similar al circuito de votación de un UART para detectar marcas y espacios. El beneficio de un circuito como este es que su cambio de fase es fijo (frecuencia de muestreo 2*) y puede ajustarlo para el tipo de ruido que está experimentando. No recuerdo de antemano qué tan rápido fue el sondeo, pero si tuviera que adivinar, diría 8kHz, ya que ese número sobresale en mi mente.

Usé el temporizador para medir la frecuencia (en caso de retraso, tablas de Excel y de búsqueda) ... pero creo que usaré un paso bajo y un optoacoplador. gracias por la respuesta.
¿Puede dar más detalles sobre la rutina de votación? ¿Fue solo para ignorar muestras individuales diferentes de las circundantes? ¿Con qué frecuencia sondeaste?

¿Por qué no usar un optoacoplador? El SFH6206 de Vishay tiene dos LED en antiparalelo, por lo que funciona durante el ciclo completo de la tensión de red. Si el voltaje de entrada es lo suficientemente alto, el transistor de salida se enciende y el colector está en un nivel bajo. Sin embargo, alrededor del cruce por cero, el voltaje de entrada es demasiado bajo para activar el transistor de salida y su colector se elevará. Entonces obtienes un pulso positivo en cada cruce por cero.

Para más detalle: aquí

La nota de aplicación de este Microchip en la página 3 sugiere una resistencia de 20 MOhms.

Creo que puedes usar el MOC3061 que tiene un detector de cruce por cero.

Pero hay muchos modelos de dispositivos como puedes ver aquí .

gracias un chip siempre es bienvenido en lugar de resistencias y tapas.
Incluso si pudiera encontrar un estándar de 20 M Ω en 1/4 W, tendrías que usar unos pocos (con menor resistencia) en serie. IIRC, una resistencia de 1/4 W tiene un voltaje de ruptura de 160 V, lo que significa que necesitaría 3 resistencias de 6,8 M Ω en un circuito de 230 V.

He tenido éxito con la siguiente cadena de procesamiento:

  1. Red divisora ​​de resistencias (utilizando resistencias de valor MOhm) y optoacoplador para acoplar y aislar la señal de la fuente
  2. Un comparador de amplificador operacional para transmitir la señal del optoacoplador a un rango de voltaje conocido
  3. Un filtro de paso de banda de múltiples etapas extremadamente ajustado que usa amplificadores operacionales (también podría necesitar algo de ganancia aquí para tener en cuenta la pérdida del filtro)
  4. Un circuito de cambio de fase opamp para ajustar cualquier compensación de fase introducida en el filtrado (+/-360 grados es una buena cantidad de tolerancia para diseñar, el cambio de fase deseado se puede calibrar con un potenciómetro y un osciloscopio)
  5. Un comparador más para llevar la señal a una salida digital limpia para un microcontrolador

Probablemente hay MUCHAS maneras de hacer esto... pero si lo estuviera haciendo, usaría un pequeño transformador de aislamiento por si acaso. Nunca es recomendable conectar la red eléctrica a un microcontrolador directamente, incluso a través de una resistencia grande.

Supongo que sus opciones son usar un divisor de resistencia grande en un micro, o un pequeño transformador que empuje los voltajes de nivel de red hasta el rango de su micro. Por supuesto, también puedes usar una combinación de ambos.

Si no quiere usar un microcontrolador, siempre puede usar un comparador y probar el voltaje contra 0v. El pulso del comparador será corto, pero también hay formas de lidiar con eso.

¿Usar un transformador de aislamiento induce algún retraso?
No. (quince caracteres)
Si va a comparar con un voltaje, compare con un pequeño % de la línea completa, no con cero. Lo aleja de la mayoría del ruido que encontrará y el cambio de fase es fijo y, por lo tanto, fácil de explicar.
buena llamada Andrés :-)
@andrew, :D ¡buena idea!