Hola a todos.
Estoy construyendo un dimmer con un pic16f84. Adjunto el diagrama esquemático del circuito.
Explico brevemente el circuito: En la parte superior se encuentra una fuente de 5 volts sin transformador. En la parte inferior se encuentran 3 (tres) botones, uno para encender y apagar el dimmer, otro para subir intensidad y otro para disminuirla; hay 5 (cinco) leds que indican el nivel de intensidad en que está el bombillo (los 5 leds encendidos indican máxima y uno encendido indica mínima). En la esquina inferior derecha se encuentra el circuito de encendido del bombillo de 100W a 120VAC 60Hz, que está hecho a base de un optotriac (en el diagrama aparece un moc3041 pero en realidad estoy usando un moc3011... lo que pasa es que en proteus 6.9 no existe la librería del 3011 y tuve que usar el único moc que existe allí) y un triac. Por último, en el pin RB0 del pic, está conectada una resistencia de 1M que a su vez se conecta a la fase de 120VAC 60Hz.
Explico brevemente el programa: Estoy haciendo un programa de prueba en el cual al presionar el botón ON/OFF enciendo el bombillo a intesidad media. Si vuelvo a presionar el botón ON/OFF, se apaga el bombillo y vuelvo a esperar a que se presione el botón ON/OFF y así continua el ciclo.
Con la interrupción del RB0 detecto el cruce por cero de la fase 120 VAC 60Hz. En el servicio de interrupciones de RB0, activo el contador TMR0 y lo pongo a correr por 4 ms. Pasados los 4ms, se genera la interrupción del TMR0, en el servicio de interrupciones del TMR0, enciendo el pin RB2 del pic por 20 us para que active el optotriac que a su vez encenderá al triac, al terminar esto, vuelve a esperar que se genere una interrupción del RB0 y así vuelve e inicia el ciclo.
Ahora les cuento lo que sucede cuando pongo en marcha el circuito. Sucede que cuando presiono el botón de ON/OFF para encender el bombillo a veces enciende bien y a veces no, a veces enciende de modo correcto 10 veces y luego deja de enceder bien, o a veces enciende bien 2 veces y luego no enciende por 3 veces, etc. Los leds se encienden SIEMPRE y me indican que se encuentra en intensidad media, pero el bombillo sólo se enciende a veces.
Me explico: Encender bien significa que el bombillo se encendió a intensidad media y que de los leds indicadores se encendieron 3 de los 5.
Encender mal significa que el bombillo no se encendió, pero que sin embargo los 3 led si se encendieron.
¿Qué puede estar sucediendo? ¿Puede ser porque tengo el montaje en protoboard, y esto haga que le entre ruido al circuito? ¿Hay algo malo en el hardware (una conexión o un componente)?
Gracias de antemano a quién pueda colaborarme.
Estoy construyendo un dimmer con un pic16f84. Adjunto el diagrama esquemático del circuito.
Explico brevemente el circuito: En la parte superior se encuentra una fuente de 5 volts sin transformador. En la parte inferior se encuentran 3 (tres) botones, uno para encender y apagar el dimmer, otro para subir intensidad y otro para disminuirla; hay 5 (cinco) leds que indican el nivel de intensidad en que está el bombillo (los 5 leds encendidos indican máxima y uno encendido indica mínima). En la esquina inferior derecha se encuentra el circuito de encendido del bombillo de 100W a 120VAC 60Hz, que está hecho a base de un optotriac (en el diagrama aparece un moc3041 pero en realidad estoy usando un moc3011... lo que pasa es que en proteus 6.9 no existe la librería del 3011 y tuve que usar el único moc que existe allí) y un triac. Por último, en el pin RB0 del pic, está conectada una resistencia de 1M que a su vez se conecta a la fase de 120VAC 60Hz.
Explico brevemente el programa: Estoy haciendo un programa de prueba en el cual al presionar el botón ON/OFF enciendo el bombillo a intesidad media. Si vuelvo a presionar el botón ON/OFF, se apaga el bombillo y vuelvo a esperar a que se presione el botón ON/OFF y así continua el ciclo.
Con la interrupción del RB0 detecto el cruce por cero de la fase 120 VAC 60Hz. En el servicio de interrupciones de RB0, activo el contador TMR0 y lo pongo a correr por 4 ms. Pasados los 4ms, se genera la interrupción del TMR0, en el servicio de interrupciones del TMR0, enciendo el pin RB2 del pic por 20 us para que active el optotriac que a su vez encenderá al triac, al terminar esto, vuelve a esperar que se genere una interrupción del RB0 y así vuelve e inicia el ciclo.
Ahora les cuento lo que sucede cuando pongo en marcha el circuito. Sucede que cuando presiono el botón de ON/OFF para encender el bombillo a veces enciende bien y a veces no, a veces enciende de modo correcto 10 veces y luego deja de enceder bien, o a veces enciende bien 2 veces y luego no enciende por 3 veces, etc. Los leds se encienden SIEMPRE y me indican que se encuentra en intensidad media, pero el bombillo sólo se enciende a veces.
Me explico: Encender bien significa que el bombillo se encendió a intensidad media y que de los leds indicadores se encendieron 3 de los 5.
Encender mal significa que el bombillo no se encendió, pero que sin embargo los 3 led si se encendieron.
¿Qué puede estar sucediendo? ¿Puede ser porque tengo el montaje en protoboard, y esto haga que le entre ruido al circuito? ¿Hay algo malo en el hardware (una conexión o un componente)?
Gracias de antemano a quién pueda colaborarme.