Cruce por cero con PIC
Con este circuito podremos controlar la fase de disparo del TRIAC. de esta forma logramos variar el voltaje de corriente alterna o la potencia que llega a la carga. La señal AC monofasica viene en forma de onda sinusoidal, de esta señal obtendremos un pulso mediante el circuito detector de cruce por cero, justo en el instante que toma el valor cero de la señal AC se dispara un pulso que sera procesado por el microcontrolador y finalmente también se encargara de dispara el TRIAC.
circuito detector de cruce por cero:
Existen en el mercado el H11AA1, este integrado es lo que extrae el pulso de cruce por cero de la señal alterna, sin embargo nosotros vamos implementarlo con componentes pasivos( resistencias, capacitores, transistores, diodo y optocoplador).
Este diseño acepta una tensión de entrada Alterna de 220V. Los capacitores deben de tolerar una tensión superior a los 50v, la resistencia de R2 y R6 van a la tensión de 5v DC, en el Transistor Q2 es la salida de la señal cruce por cero.
Debo aclarar que la señal entrante de 220V AC en la imagen se ve que esta conectada a tierra, pero esto no es necesario al momento de armarlo en lo físico, esta conexión a tierra es solo para simulación. También podemos apreciar un aislamiento la parte AC con DC utilizando el componente 4N28.

Señal Cruce por Cero
Al simular el circuito en proteus vamos obtener una señal como se ve la imagen, esta señal de niveles TTL son procesadas por el microcontrolador.
Programa para PIC16F628
Lo que realiza el programa básicamente es atender esta señal TTL de pulsos cuadrados mediante una interrupción. Luego de esto el micro espera un tiempo de lapso mínimo especificada en la hoja de datos del TRIAC, sumada al tiempo puesto por el usuario, sumando estos dos tiempos se manipula la potencia que entrega el TRIAC. el tiempo lo pones mediante dos botones, uno de ellos es para subir y el otro para bajar.

programa en CCS para pic16f628a
Otro dato a tener en cuenta es la frecuencia de la señal del cruce por cero, como esta se obtuvo de la red eléctrica, en mi país es de 60Hz que vendría ser la frecuencia del cruce por cero. Con este dato puedes obtener los tiempos máximos y mínimos de disparo.
Estos tiempos vendrían hacer nuestros parámetros para programar el microcontrolador, por otro lado, si no respetamos los tiempos de disparo mínimo, simplemente el TRIAC no entrara en conducción.

cruce por cero en CCS para pic16f628a
En mi caso le puse 100 micro segundos el mínimo tiempo de disparo para mi TRIAC. El resto de variables son para atender las entradas como el puerto uart, comunicación infrarroja y botones. Mediante estos puertos el usuario podría manipular la potencia. En este caso es solo por botones.
PRUEBAS Y RESULTADOS
La señal de color amarillo, es obtenido en la salida del puente de diodos, y el de color celeste es la señal de cruce por cero y finalmente la de color verde es la señal obtenido en el TRIAC, claramente se puede apreciar que la señal alterna AC esta recortada, básicamente lo que hicimos es recortar la señal mediante los botones UP y DOWN, al recortar esta señal variamos la potencia entrada por el TRIAC.

resultado de señales cruce por cero
FOTO y DOCUMENTACIÓN
El circuito detector de cruce por cero hay que tener en cuenta que estamos tratando con señales ac de 220v que puede ocasionarnos daños graves. por favor al ensamblar este tipo de circuitos utilizar zapatos dieléctricos y antejos de protección, valoremos nuestra vida !

Detector de cruce por cero.
Este proyecto es GRATIS ! lo puede descargar la simulación y la programación en esta dirección:
https://mega.nz/#!H4REnATY!tB2kFkJNlZLUPVdcIrnpgbPi9Y-e2U8BtSnsBFoSOrQ