TODOPIC

Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: marvicdigital en 07 de Octubre de 2008, 01:06:35

Título: Como funciona un dimmer?
Publicado por: marvicdigital en 07 de Octubre de 2008, 01:06:35
Quiero hacer una consulta, lo primero es que quiero hacer un dimmer automático para hacer una iluminación del pesebre(belen) navideño que simule el cambio de dia a la noche y viceversa..he leído algunos proyectos de microchip, y otros por los foros, pero algunos están en lenguaje C y la verdad de "C"  no "SE"   :D(soy de la vieja guardia del Assembler). Quería saber que tramo de la onda senosoidal es la que se deja pasar al triac para aumentar y disminuir le itensidad lúminica? he visto algunas gráficas y veo que solo es la mitad de un semiciclo positivo y la otra mmitad del semiciclo negativo.....ese rango es el que se varía ? y por que no variar todo el semiciclo?

De verdad me perdonan el que no halla entendido los datasheets pero estoy algo confundido y quiero entender bien el funcionanmiento para hacerlo desde cero.

Muchas gracias por la ayuda y la guía que me puedan brindar.

Saludos
Título: Re: Como funciona un dimmer?
Publicado por: Nocturno en 07 de Octubre de 2008, 01:14:40
Quizás convenga que le eches un vistazo a este hilo. Si luego sigues con dudas las vamos viendo
http://www.todopic.com.ar/foros/index.php?topic=19120.0;topicseen
Título: Re: Como funciona un dimmer?
Publicado por: marvicdigital en 08 de Octubre de 2008, 11:29:31
Quizás convenga que le eches un vistazo a este hilo. Si luego sigues con dudas las vamos viendo
http://www.todopic.com.ar/foros/index.php?topic=19120.0;topicseen


Gracias.
He leído algunos mensajes, pero no tengo claro aún la teoría, o bueno quiero estar más seguro de haberla entendido:
Un dimmer lo que hace es dejar pasar un ancho de cada semiciclo, este ancho es el que variamos para darle mayor o menor intensidad a la bombilla; esto se puede gracias al detector de cruce por cero, cuando es detectado el cruce por cero del semiciclo positivo comienza los ms donde estará activado el triac; (estos ms son los que variamos) antes de que llegue le próximo cruce por cero, cuando llegue de nuevo estaremos en el semiciclo negativo y volvemos hacer la misma operación que con el semiciclo positivo y asi se repite una y otra vez.

Esto es correcto?  que concideraciones debo tener en cuenta a la hora de hacer el codigo? el triac juega un papel importante para que funcione bien, o cualquiera da igual? tambien sirve un SCR?

Muchas gracias, por la guía que me puedan dar.

Saludos
Título: Re: Como funciona un dimmer?
Publicado por: MLO__ en 08 de Octubre de 2008, 11:43:44
Hola.

En el dimmer se usa el llamado control de fase, el cual se fundamenta en el valor de voltaje RMS que se deja caer a la carga. Hay muuuchas consideraciones en funcion de la carga, la mas importante es si es altamente inductiva o si solo es resistiva.

Lo del detector de cruce por cero es para sincronizar la senal de disparo del triac, ya que de no hacerlo estariamos enviando pulsos de activacion si saber cuando!!! y no se tendria el control sobre el manejo de la potencia.

Elegir el triac si que es importante, y se hace en funcion de la potencia a manejar en la carga, otra cosa fundamental es saber que tan inductiva es la carga que se va a conectar al dimmer, ya que cargas inductivas generan transcientes de voltaje y corriente los cuales pueden ser daninos ( y se convierten en verdaderos dolores de cabeza ).

No se puede tener un control en todo el rango de tiempo que abarca la onda de AC, uno escoje un intervalo que va desde un 10% - 20% del inicio de la senal a un 75% - 80% del final de la misma. Intentar correr estos rangos involucran tener problemas en el control ( se mueve el pulso de disparo y se obtienen curvas erraticas en el control ). Para verificarlo siempre es bueno tener un osciloscopio a mano.

Saludos
Título: Re: Como funciona un dimmer?
Publicado por: marvicdigital en 08 de Octubre de 2008, 12:09:24
Muchas gracias por tu buen texto, osea que mi teoría estaría bien si fuera lo ideal?..entonces entiendo que lo mejor es empezar entre un 10% y un 20% los intervalos hasta un 80%, me imagino que es debido a la tolerancia de los componentes..

Si estoy errado te agradecería enormemente una corrección.
Sobre los triacs pues te cuendo que  lo que voy a controlar no pasa de los 100W y es para unas bombillas de 15w.
Mil gracias

Saludos
Título: Re: Como funciona un dimmer?
Publicado por: MLO__ en 08 de Octubre de 2008, 12:57:08
Hola.

Ok.

Ahora debes definir si tu dimmer los vas a hacer digital o analogico.

Para hacerlo analogico, debes usar una red RC (hay muchos disenos en internet). El problema con este tipo de dimmer es que debes elegir muy bien los componentes y estas limitado a trabajar sobre un rango determinado sin poder elegir los limites minimo y maximo por separdo (ya que si cambias algun valor del componente te cambia el valor de disparo del valor minimo y al mismo tiempo el valor de disparo del valor maximo). Las ventajas: menos hardware.

Para hacerlo digital (que seria mi recomendacion), lo que necesitas es hacerte un buen detector de flanco y dedicarte a la programacion del microcontrolador, ya que sera justamente este el que se encarga de enviar el valor de disparo al triac. Obviamente en este caso tendras mucho mas control sobre el tiempo de disparo y podras elegir los valores que tu quieres con las escalas de cambio que tu quieras con ..... etc, etc (es la gran ventaja de hacerlo digital). Deventajas: mas hardware, debes usar optotriacs, un micro, una fuente.

Por la referencia del triac, te recomendaria el BT136 (yo lo he usado y me ha ido muy bien con el). Si es una bombilla la que vas a controlar puedes iniciar tu disparo desde los 256uS despues del cruce y puedes llegar hasta los 7.9mS antes del cruce, lo que te puede llegar a dar rendimientos de un poquito mas del 90% de la potencia.

Con respecto los intervalos, tiene que ver con muchas cosas, entre ellas los componentes, pero tambien esta que la frecuencia real de la red no siempre son 60Hz, cambia con el tiempo, ademas hay tiempos de respuesta (histeresis) diferentes en la activacion y desactivacion, y muchas cosas mas .... asi que es mejor darle un margen de error amplio para evitar inconvenientes.

Saludos
Título: Re: Como funciona un dimmer?
Publicado por: marvicdigital en 08 de Octubre de 2008, 13:58:30
 :lol: :lol: :) muchas gracias, lo pienso hacer digital, voy a usar el PIC12F508 que es  lo que más tengo en mis cosas....no se si te moleste que te pida un último favor, en este hilo (http://www.todopic.com.ar/foros/index.php?topic=23338.0) hago una pregunta de el código que estoy intentando comprender y poner a funcionar a 60Hz, viene original para 50hz, hice las modificaciones, pero no me funciona.....ojala me puedas dar una mano.

De nuevo muchas gracias creo que con esta información ya es mucho  lo que puedo hacer hoy en la noche,...bueno si mi hija me da tiempo  :g)

Saludos
Título: Re: Como funciona un dimmer?
Publicado por: MLO__ en 08 de Octubre de 2008, 14:09:28
Hola.

 :( :( Esta en ASM y yo programo en C, asi que la ayuda que puedo darte seria muy poca ( digamos nula  :D ), pero ya entrados en gastos, podriamos iniciar tu proyecto en C si te parece, ahi podria darte una mano.

Saludos
Título: Re: Como funciona un dimmer?
Publicado por: marvicdigital en 08 de Octubre de 2008, 14:37:15
Hola.

 :( :( Esta en ASM y yo programo en C, asi que la ayuda que puedo darte seria muy poca ( digamos nula  :D ), pero ya entrados en gastos, podriamos iniciar tu proyecto en C si te parece, ahi podria darte una mano.

Saludos

De verdad muchas gracias por tu ayuda, y quisiera poder aceptar tu ofrecimiento pero lo que deseo es poder entender bien como funciona para hacerlo desde cero, si entendiera bien el C ten por seguro que empezaríamos de una.
Muchas gracias y si tengo alguna duda te  la consultaré, popr ahora me voy al PC para empezar a depurar el codigo.

Saludos
Título: Re: Como funciona un dimmer?
Publicado por: DATAGENIUS en 12 de Octubre de 2008, 17:38:18
Hola marvicdigital, me gustaría saber si te interesa esta otra alternativa antes de ponerme a programar su funcionamiento... (al menos en parte o lo que te falte a ti)

Estamos al habla...  8)
Título: Re: Como funciona un dimmer?
Publicado por: Nocturno en 13 de Octubre de 2008, 00:35:57
Cuidado con el MOC3041 que tiene detección del cruce por 0 y no podrás enviar tensión a la lámpara en un punto del ciclo de la onda que no sea 0.
Título: Re: Como funciona un dimmer?
Publicado por: DATAGENIUS en 13 de Octubre de 2008, 01:13:00
 :-/ Correcto nocturno, no fue puesto al azar. Agregué una ilustración al final de la guía respecto a la influencia del del Dutycicle del pulso se salida del puerto B en el "uso" del período de cada ciclo de la corriente alterna. Intencionalmente se utiliza el MOC para que todo el trabajo comience a partir del cruce por 0.

Saludos.  8)
Título: Re: Como funciona un dimmer?
Publicado por: sansanoloko en 13 de Octubre de 2008, 02:18:16
Holas a todos!

La propuesta de datagenius es interesante, pero por lo que veo no funcionaría :(
La detección del cruce por cero podría funcionar, pero el control del triac se está asumiendo como un transistor, es decir por corte y saturación, por eso no va a funcionar.

Pero si analizamos bien como funciona el triac, podemos ver que a ese mismo circuito hay que cambiar el optoacoplador MOC3041 por un MOC3021 y corregir el programa.

Recordemos que el triac no funciona por corte y saturación, sino por enganche. Esto quiere decir que se dispara al recibir un pulso por el gate, y queda enganchado (conduciendo corriente entre M1 y M2) hasta que se desconecte del circuito, y eso ocurre cuando la tensión de la fuente cae a cero, es decir, en cada cruce por cero de la sinusoide.

Entonces, lo que debe hacer el pic es detectar el cruce por cero, y cuando lo detecta debe esperar un tiempo antes de disparar el triac, y repetir esto por cada semiciclo, ya sea positivo o negativo. De este modo la forma de onda en la carga es inversa a la estimada en el documento publicado, y concuerda con la forma de onda en la carga de un dimmer común y silvestre.

Espero sirva de algo mi aporte, y saludos a quienes nos leen.
Título: Re: Como funciona un dimmer?
Publicado por: DATAGENIUS en 13 de Octubre de 2008, 03:12:55
 :mrgreen: mmm tienes razón san.... y nocturno... consideré mal el punto de partida del triac por el uso del MOC3041 en vez del 21 y por ende realicé los ajustes y modificaciones a la guía.. yo creo que esta es la versión 3.0   :lol:
Título: Re: Como funciona un dimmer?
Publicado por: marvicdigital en 15 de Octubre de 2008, 07:53:30
Muchas gracias a todos por las ideas, experiencias y comentarios sobre este proyecto.
Bueno por fín el Autodimmer está funcionando, después de leer mucha documentación, leer las respuestas de este maravilloso foro hice el código en ASM, voy a dar una breve explicación para que todos puedan hacerlo más fácil en el lenguaje que mejor sepan.
 Lo primero que hay que determinar es el tiempo del periodo de la onda senosoidal, tanto para los 60Hz como para los 50Hz:

Para los 50Hz :
1/50 = 20ms

Para los 60Hz:
1/60 = 16.666 ms

Para el caso de los 60Hz podemos dejar el periodo en 16.6ms

Nuestro dimmer no debe superar este periodo y para eso debemos tener nuestro detector de cruce por cero, que es el que informa a nuestro microcontrolador cuando comienza el periodo y tambien en que semiciclo nos encontramos; para este detector use solo una resistencia de 1Mohm para los 115Vac (para los 220Vac recomiendo 5Mohms(, entre la entrada de AC y uno de los puertos que no sea el GP3; tal y como recomienda Microchip  en su documento AN521 (http://ww1.microchip.com/downloads/en/AppNotes/00521c.pdf); no se preocupen o no tengan temor, he hecho pruebas desde el viernes dejando encendido el autodimmer por más de 13 horas continuas y no he tenido ningún problema  :mrgreen:  ...
Bueno, luego que nuestro detector nos informe de que ha pasado por cero y que comienza el semiciclo positivo,llamamos a una rutina de tiempo que no debe superar los 8.3ms para los 60HZ y de 10ms para 50Hz; este tiempo es el que determina el brillo de nuestra bombilla; luego de que pase el tiempo encendemos nuestra lámpara o activamos el puerto que controla el triac. En este punto tuve varios altercados con el triac, las primeras pruebas hechas daban malos resultados, no encendía la bombilla, o si lo hacía era al 100% de su brillo en fín...luego investigue un poco y mirando datasheets encontré que la mejor opción era el BT137 que tiene un gate muy sensible y responde en 1us y la corriente que puede controlar era más que suficiente para una bombilla de 100W. Bueno luego de que pase el tiempo activamos el puerto por 1us osea una instrucción:

BSF GPIO,4
BCF GPIO,4

Esto hizo encender nuestra bombilla por un microsegundo en el semiccilo positivo luego de que pasara el tiempo que nos dará la intensidad de nuestra bombilla; ahora debemos hacer lo mismo para el semicilo negativo con el mismo tiempo, quedando asi en nuestro código:

Código: [Seleccionar]
btfss GPIO,Sync   ;Detecta cruce por cero antes de comenzar el semiciclo positivo
goto $-1
call tiempo       ;llamamos el tiempo que no sobre pase los 8.3ms(60Hz) o 10ms(50Hz)
bsf GPIO,Out    ;encendemos el triac
bcf GPIO,Out      ;después de 1us apagamos
btfsc GPIO,Sync ;De nuevo esperamos el cruce por cero y el semiciclo negativo
goto $-1
call tiempo    ;llamamos el tiempo que no sobre pase los 8.3ms(60Hz) o 10ms(50Hz)
bsf GPIO,Out     ;encendemos el triac
bcf GPIO,Out     ;después de 1us apagamos

Esta es la base del funcionamiento de un dimmer microcontrolado, para que se vuelva autoDimmer debemos crear una rutina que haga incrementar y disminuir el tiempo y para que sea más prolongado el tiempo le sumamos otra rutina que haga repetir más de una vez el tiempo, osea si en ese momento el tiempo es de 3ms hacer que lo repita unas 10 veces esto nos servirá para el pesebre o belen simule el cambio de dia a la noche. 
Tambien pueden servir otro tipo de triac por ejemplo el Q4015, el tiempo para este debe ser superior a los 4us osea hacer 4 veces el BSF GPIO,Out antes de apagarlo.
Otro detalle es que use una resistencia y un transistor para controlar el triac, debo suponer que para usar un optoacoplador debemos tener encuanta el tiempo que necesita este para funcionar.

Espero que esto sea de mucha ayuda y de guía para los novatos como yo y que si existe otra forma de hacerlo pues sería bueno conocerla.

Dejo un video en este caso controlo una manguera de luces de 2 canales: 


Saludos
Título: Re: Como funciona un dimmer?
Publicado por: samshiel_pic en 25 de Octubre de 2008, 10:38:43
Hola chicos que tal?? estoy intentado hacer lo del dimmer para despues meterlo en otro proyecto. Lo que estoy haciendo es lo siguiente:
Código: C
  1. #include <18f4550.h>
  2. #FUSES   HS,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOPBADEN,NOLVP,NOCPD,NODEBUG,NOWRT,NOVREGEN
  3. #FUSES   CPUDIV1,NOIESO,NOLVP,NODEBUG,PLL1,NOMCLR
  4. #USE     delay(clock=20000000)
  5. #USE     rs232(baud=19200, xmit=PIN_C6, rcv=PIN_C7)
  6. #USE     fast_io(B)
  7. #BYTE    port_b               = 6
  8.  
  9. INT x=0,y=0,VECES=0,CRUCE=70;
  10.  
  11. #INT_TIMER0
  12. VOID TIMER0()
  13.    {
  14.    output_bit(PIN_B1,1);
  15.   // delay_us(1);
  16.    #asm
  17.    nop
  18.    nop
  19.    nop
  20.    nop
  21.    NOP
  22.    NOP
  23.    NOP
  24.    NOP
  25.    #endasm
  26.    //printf("estoy dentro");
  27.    output_bit(PIN_B1,0);
  28.    }
  29.  
  30.  
  31. #INT_EXT
  32. VOID Cruce_Por_0()
  33.    {
  34.    VECES++;
  35.    IF(y<1){
  36.       set_timer0(CRUCE);
  37.       ext_int_edge(0,H_TO_L);
  38.       y=2;
  39.       }
  40.      
  41.    ELSE{
  42.       set_timer0(CRUCE);
  43.       ext_int_edge(0,l_TO_H);
  44.       y=0;
  45.       }
  46.        
  47.    IF (VECES>50){
  48.       CRUCE++;
  49.       VECES=0;}
  50.      
  51.    IF (CRUCE>150){
  52.       CRUCE=70;
  53.       }
  54.    }
  55.  
  56.  
  57. VOID main() {
  58.    set_tris_B(0b00000001);
  59.    enable_interrupts(GLOBAL);
  60.    enable_interrupts(INT_TIMER0);
  61.    enable_interrupts(INT_EXT);
  62.    setup_timer_0(RTCC_INTERNAL | RTCC_8_BIT | RTCC_DIV_256);
  63.    ext_int_edge(0,L_TO_H);
  64.    set_timer0(CRUCE);
  65.    WHILE(1){
  66.   }
  67. }

con esto estoy haciendo un bucle en el cual enpieza a encender la bombilla  hasta su valor maximo. Y a groso modo lo hace pero le dan picos en los que ilumina al maximo en rachas. Haber si me explico mejor, cuando esta iluminando al 5% o 10% empieza a dar picos de intensidad pero no siempre al momento va mejor a los dos minutos va horrible despues bien, vamos que no se que puede estar fallando.
Aqui os dejo como tengo conectado el pic

(http://i108.photobucket.com/albums/n18/sasmshiel/Dibujo-2.jpg)
Título: Re: Como funciona un dimmer?
Publicado por: Nocturno en 25 de Octubre de 2008, 13:28:30
Sospecho que te puede hacer algo raro si estando dentro de la rutina de detección de flanco te desborda el Timer.
Se me ocurre que deberías desactivar la interrupción del timer al entrar en la interrupción externa, y activarlo al salir.
Además, podrías optimizar alguna cosa en la interrupción externa, tal que así:
Código: C
  1. #INT_EXT
  2. VOID Cruce_Por_0()
  3.    {
  4.    disable_interrupts(INT_TIMER0);
  5.    VECES++;
  6.    set_timer0(CRUCE);
  7.    bit_set (RegistroIntExt,!bit_test(RegistroIntExt,BitFlanco));
  8.    IF (VECES>50){
  9.       CRUCE++;
  10.       VECES=0;}
  11.      
  12.    IF (CRUCE>150){
  13.       CRUCE=70;
  14.       }
  15.    enable_interrupts(INT_TIMER0);
  16. }

Donde RegistroIntExt es la dirección del registro donde se almacena la configuración de la Interrupción Externa, y BitFlanco es el nº del bit que gestiona el flanco ascendente o descendente.
Título: Re: Como funciona un dimmer?
Publicado por: samshiel_pic en 25 de Octubre de 2008, 14:23:03
Gracias Manolo por tu respuesta. Ya lo habia solucionado haciendo lo que tu me has dicho de cambiar la rutina de la interrupcion del timer a la interrupcion externa. Y ya mas o menos me daba menos destellos y cambiando la conexion de la lampara y el triac ya no me destella nada de nada.
GRACIASSSSSSSS
 
Título: Re: Como funciona un dimmer?
Publicado por: samshiel_pic en 02 de Noviembre de 2008, 08:27:08
Hola chicos os coloco aqui el programa en el que corre el dimmer en mi PIC18F4550

Código: C
  1. #include <18f4550.h>
  2. #FUSES   HS,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOPBADEN,NOLVP,NOCPD,NODEBUG,NOWRT,NOVREGEN
  3. #FUSES   CPUDIV1,NOIESO,NOLVP,NODEBUG,PLL1,NOMCLR
  4. #USE     delay(clock=20000000)
  5. #USE     rs232(baud=19200, xmit=PIN_C6, rcv=PIN_C7)
  6. #USE     fast_io(B)
  7. #BYTE    port_b= 6
  8.  
  9. INT x=0,y=0,VECES=0,CRUCE=65;
  10.  
  11. #INT_TIMER0
  12. VOID TIMER0()
  13.    {
  14.    output_HIGH(PIN_B1);
  15.    IF (VECES>10){
  16.       CRUCE++;
  17.       VECES=0;}
  18.  
  19.    IF (CRUCE>254){
  20.       CRUCE=65;
  21.       }
  22.    output_LOW(PIN_B1);
  23.    }
  24.  
  25.  
  26. #INT_EXT
  27. VOID Cruce_Por_0()
  28.    {
  29.     VECES++;
  30.    IF(y==1){
  31.       ext_int_edge(H_TO_L);
  32.       y=0;
  33.       set_timer0(cruce);}
  34.  
  35.    ELSE{
  36.       ext_int_edge(L_TO_H);
  37.       y=1;
  38.       set_timer0(CRUCE);}
  39.    }
  40.  
  41.  
  42. VOID main() {
  43.    set_tris_B(0b00000001);
  44.    enable_interrupts(GLOBAL);
  45.    enable_interrupts(INT_TIMER0);
  46.    enable_interrupts(INT_EXT);
  47.    setup_timer_0(RTCC_INTERNAL | RTCC_8_BIT | RTCC_DIV_8);
  48.    ext_int_edge(L_TO_H);
  49.    set_timer0(CRUCE);
  50.    WHILE(1){
  51.   }
  52. }

Ahora me gustaria cambiar el TIMER0 por el TIMER1 pero no se porque no me cuenta. Haber si me pudierais orientar un poco. GRACIAS.
Título: Re: Como funciona un dimmer?
Publicado por: Andreufr en 05 de Noviembre de 2008, 18:13:42
Hola amigos,

Yo también intentando montar un dimmer, pero el mio me gustaría que tuviera 4 canales.

He estado mirando el condigo de samshiel_pic  y me parece genial (voy a usar el mismo pic), tenéis alguna idea brillante de como controlar cuatro tiempos de delay distintos (uno para cada bombilla)? cual sería una forma óptima para hacerlo y no saturar demasiado la interrupción?

Yo he pensado hacerlo de forma sucesiva, así es cargar primero al timer el tiempo mas pequeño luego la diferencia entre este y el siguiente y así sucesivamente hasta el mas grande. Pero no se si es la mejor idea...

Saludos,

 
Título: Re: Como funciona un dimmer?
Publicado por: Nocturno en 05 de Noviembre de 2008, 19:43:58
Esa idea que indicas es buena, aunque algo compleja porque tendrás que mantenerlos siempre ordenado y descontar los tiempos de carga del valor del timer y de entrada en la interrupción.
Si son sólo 4 yo haría que la interrupción fuera incrementando un contador, como el código de Samshield, y pondría cuatro "IF", uno por cada salida.
La frecuencia del PIC es tan alta comparada con la de red que ni se notará el posible desfase que se produzca con los IF.
Título: Re: Como funciona un dimmer?
Publicado por: Andreufr en 06 de Noviembre de 2008, 09:16:08
Muchas gracias Noctuno, voy a intentar lo que dices y ya diré que tal los resultados!
Título: Re: Como funciona un dimmer?
Publicado por: sansanoloko en 06 de Noviembre de 2008, 11:20:37
Hola amigos del foro!!

Les cuento que el año pasado me propuse un proyecto similar, para presentarlo en una exposición de mi universidad, y resultó lo que considero mi obra de arte más preciada (por ahora....).

Lo que me propuse fue un dimmer digital de 8 canales de salida, controlado por un computador. El proyecto resultó con las siguientes características:
- 32 niveles de intensidad por canal.
- comunicación con el computador via RS232 a 9600 bps
- software de control amigable al usuario (hecho en Visual Basic)

En la electrónica de este proyecto se cuenta con lo siguiente:
- PIC16F648A corriendo a 4 MHz (oscilador RC interno)
- Programación del pic hecha en assembler
- Detección de cruce por cero en la fuente de alimentación.
- Salida por optoacoplador y triac

Para el programa que corre en el pic la clave son las interrupciones:
TIMER0: genera una interrupción cada 313 microsegundos (10ms / 32) y determina el angulo de disparo para el triac.
TIMER1: este timer primero se sincroniza con los cruces por cero y despues interrumpe cada 10 milisegundos, como precaución.
RB0: interrumpe en cada cruce por cero.
USART: genera una interrupción al recibir un byte desde el computador, y lo almacena en un buffer, hasta recibir la trama completa.

Al momento de probar me dio muy buenos resultados, ya que desde el computador podía generar secuencias de encendido muy interesantes. El gran problema que tuve fue con la resolución, que resultó se muy baja, ademas de asumir linealidad del control me dio como resultado cambios muy bruscos en intensidades bajas, asi que como verán es una obra de arte inconclusa, asi que espero me puedan colaborar con pulir esos detalles, al igual que yo pueda ayudarles en base a mi modesta experiencia.

Aqui presente y dipuesto a colaborar.
Saludos a quienes nos leen.
Título: Re: Como funciona un dimmer?
Publicado por: Nocturno en 06 de Noviembre de 2008, 13:48:38
¿32 niveles es poca resolución?
Yo creo que el problema debería ser de otra índole; un salto de 1/32 del nivel de luminosidad en una bombilla es casi imperceptible.
Título: Re: Como funciona un dimmer?
Publicado por: martincnc en 07 de Noviembre de 2008, 02:31:42
Hola sansanoloco.

TIMER0: genera una interrupción cada 313 microsegundos (10ms / 32) y determina el angulo de disparo para el triac.

..ademas de asumir linealidad del control me dio como resultado cambios muy bruscos en intensidades bajas..

Por lo que tengo entendido, al realizar una interrupcion cada una cantidad de tiempo uniforme, sobre una señal senoidal, el angulo de disparo no se mantiene constante y provoca estos saltos bruscos de tension en intensidades bajas. La verdad es que no estoy del todo seguro, pero lo comento para ver si alguien me puede confirmar esto.

Saludos
Título: Re: Como funciona un dimmer?
Publicado por: sansanoloko en 07 de Noviembre de 2008, 10:58:12
Hola amigos foreros, gracias por responder tan pronto!

martincnc, si no te interpreto mal, debiera verse un parpadeo en las luces al momento de conectarlas. Eso realmente ocurre, de hecho a mi me pasó en una etapa del proyecto, pero lo solucioné sincronizando las interrupciones del TIMER0 con los cruces por cero. De esta forma se mantiene constante el ángulo de disparo generado en el pic.


¿32 niveles es poca resolución?
Yo creo que el problema debería ser de otra índole; un salto de 1/32 del nivel de luminosidad en una bombilla es casi imperceptible.

El problema es que asumí una variación lineal de la luminosidad en función del ángulo de disparo, por eso el semiperíodo (10 ms) lo divido en 32 partes iguales para generar los ángulos de disparo, pero no me resulta en 32 niveles de luminosidad....

Asumo entonces que la variación depende de una forma no lineal, un logaritmo podría ser?? en esta parte necesito consejos.

Saludos a quienes nos leen (y responden).
Título: Re: Como funciona un dimmer?
Publicado por: undertech en 11 de Noviembre de 2008, 21:50:51
Hola sansanoloko, yo tengo un dimer de 4 "canales" para belenes. Es analógicoy siempre he querido convertirlo en digital.
El funcionamiento del analogico es como sigue:

Se dectecta el paso por 0 como es lógico para sincronizar los pulsos y luego y con 4 redes RC, se controlan unos 555 en monostable que van alargando y disminuyendo el ancho del pulso para asi aumentar o disminuir la intensidad de las bombillas. Por lo tanto, el ancho del pulso y por ende la iluminacion de las bombillas sigue una curva de la carga y descarga de un condensador.

El circuito ofrece ajustes pero hasta cierto límite, por eso mi idea de pasarlo a digital y poder controlar mas parametros. Por ejemplo el tiempo global es controlado por otro oscilador que hace que un 4011 vaya dando salidas a los "canales" y va independiente de los RC que controlan las bombillas.

Te sirve de algo esto??

No he probado que ocurriria si la linea de carga y descarga fuera una linea recta, no se como se comportaria, pero en principio 32 niveles me parecen pocos, los cambios deben ser lo mas lineales posibles para un buen efecto.

La idea es buena y podriamos profundizar en ella.


Saludos


Título: Re: Como funciona un dimmer?
Publicado por: sansanoloko en 16 de Noviembre de 2008, 01:34:57
Hola undertech!

Si logras hacer los cambios de intensidad de forma "lineal" con tu método, entonces la curva que estoy buscando la describe una función exponencial (no se me había ocurrido  :shock:). De no ser así, estoy pensando dos vías de trabajo:

Primer camino: obtener de forma empírica los valores de ángulos de disparo útiles, contrastando el nivel de luminosidad de una ampolleta con la forma de onda de la tensión en ella con un osciloscopio.

Segundo camino: de forma matemática llegar a una función y = f(x), o mejor dicho "luminosidad = f(ángulo de disparo)". Para ello estoy pensando empezar desde un supuesto: "la luminosidad de una ampolleta (incandescente) varía de forma lineal respecto al valor RMS de la tensión presente en ella".

El primer camino me gusta, ya que se pueden obtener tablas de datos, y a partir de ellos buscar una curva que mejor describa esos datos, por aproximación lineal o alguna otra que mejor se ajuste. El problema que tengo es que no dispongo de osciloscopio ni de tiempo y espacio para realizar esas mediciones  :?

Entonces, por el momento voy a seguir el segundo camino. Asi que por favor, si alguien lee esto y opina que estoy bien encaminado o estoy disvariando, por favor no dude en comentarlo.

Saludos a quienes nos leen.
Título: Re: Como funciona un dimmer?
Publicado por: tuxandres en 17 de Noviembre de 2008, 00:49:23
que mas amigos del foro. Me parece genia el ciruito, la duda que tengo es como conectar la fase al PIC por lo que es de alta tensio para el PIC ademas, si esta es para dectectar el cruce por cero o para que es? y en que es el programa CCS o C18.
Título: Re: Como funciona un dimmer?
Publicado por: aviarioejsv en 12 de Febrero de 2011, 16:45:19
Hola:
soy un criador de aves y ocupo un dimmer que me haga lo siguiente, que le ponga una hora de encendido a una lampara de filamento (digamos 6 de la mañana)pero que encienda gradualmente por un lapso de 30 minutos (para simular el amanecer), logrado esto permanesca encendida de 12 a 13 horas a su maxima potencia y a las 6:30 o 7:30 de la tarde empiece a apagarse gradualmente por un lapso de 30 minutos tambien, para simular el anochecer, y que esto lo haga todo los dias automaticamente, todos los dias sin que tenga que mover nada, lo unico no se que tenga opcion de escoger la hora de encendido y apagado de las lamparas. ojala me pudieran ayudar con el diagrama y programacion del pic, ya que de electronica y programacion se poco.
Título: Re: Como funciona un dimmer?
Publicado por: stk500 en 12 de Febrero de 2011, 17:47:04
Hola Aviariojsv! y Bienvenido a nuestros Foros todopic!
Pues si no sabe nada Electronica y Programacion, mejor date una Vuelta por Programacion paso a paso aqui en nuestros Foros, alli con muchos otros te puede orientar, primero en que lenguaje desea programar y con la electronica hirias aprendiendo.
Suerte y Saludos

Título: Re: Como funciona un dimmer?
Publicado por: MLO__ en 12 de Febrero de 2011, 21:37:49
Hola.

Y si tienes mucha prisa, puedes postear el hilo en la zona de EMPLEO (http://www.todopic.com.ar/foros/index.php?board=57.0).

Saludos