He diseñado arrancadores suaves con 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 CPU. Utilizaría un par de diodos shottky para aumentar los diodos de protección interna solo por 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 con 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 cometas 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 de maldad humeante cuando el procesador intente lidiar con miles de interrupciones. (Hablo por experiencia). Lanzar un RC o un filtro de paso bajo más avanzado en la línea solo introducirá el cambio de fase. Si puedes trabajar con eso, genial. Si no (tuve que lidiar con sistemas 50/60 y 400Hz), entonces tienes que probar otros medios.
En mi propio diseño, me ocupé de ello en el software sondeando la línea y esencialmente haciendo una rutina de votación que ignoraba a los transitorios. El cambio de fase estuvo dentro de lo que pude manejar, fue rápido y no funcionaría incluso 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ñarla, creo que podría probar una solución externa que implicara un disparo único que " bloquear "el cruce por cero y luego el microcontrolador lo reconocerá antes de que se pueda establecer la próxima interrupción.
Dicho todo esto, creo que encontrar confiablemente el cruce por cero real en cualquier situación práctica fue una de las partes más complicadas del diseño de arranque suave. Cerrar el bucle de control fue secundario, pero en su mayoría fue solo un ajuste. Parece algo muy simple de hacer, pero aprendí bastante sobre la diferencia entre teoría y práctica durante ese tiempo. :-)
editar para describir la rutina de "votación":
Si recuerdo correctamente, 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 cero. Es muy similar al circuito de votación de UART para detectar marcas y espacios. El beneficio de un circuito como este es que su cambio de fase es fijo (frecuencia de muestreo de 2 *) y puede ajustarlo para el tipo de ruido que está experimentando. No recuerdo de antemano lo rápido que fue el sondeo, pero si tuviera que adivinar, diría 8kHz, ya que ese número se me viene a la mente.
¿Por qué no usar un optoacoplador? El SFH6206 de Vishay tiene dos LED en antiparalelo, por lo que funciona durante todo el ciclo 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.
fuente
La Nota de aplicación de este Microchip en la página 3 sugiere una resistencia de 20 MOhms.
Creo que puede usar el MOC3061 que tiene un detector de cruce por cero.
Pero hay muchos modelos de dispositivos como puedes ver aquí .
fuente
He tenido éxito con la siguiente cadena de procesamiento:
fuente
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 aconsejable conectar la red 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 puede usar una combinación de ambos.
Si no desea usar un microcontrolador, siempre puede usar un comparador y hacer que se pruebe el voltaje contra 0v. El pulso del comparador será corto, pero también hay formas de lidiar con eso.
fuente