Autor Tema: Dimmer 1 canal ,pic12F683.  (Leído 11222 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3192
Dimmer 1 canal ,pic12F683.
« en: 10 de Octubre de 2011, 05:47:22 »
Hola amigos!

Estoy retomando el proyecto del dimmer.
Se trata de un dimmer de 1 canal , se puede ajustar a 5 niveles de operación 0%,25%,50%,75% y 95% y se controla serialmente(4800bps,8bits,1stop,N).



Si envian 0x30H esta apagado
Si envian 0x31H " 1 " esta trabajando al 25%
Si envian 0x32H " 2 " esta trabajando al 50%
Si envian 0x33H " 3 " esta trabajando al 75%
Si envian 0x34H " 4 " esta trabajando al 95%

Código: C
  1. #include <12F683.h>
  2. #FUSES INTRC_IO,NOWDT,PUT,NOMCLR,BROWNOUT,PROTECT,CPD,NOIESO,NOFCMEN
  3. #use delay(internal=8MHZ)                                                                       //Oscilador interno 8MHz
  4. #use rs232(baud=4800,rcv=PIN_A3)                                                        //Velocidad limitada por receptor el receptor infrarrojo
  5. #use fast_io(A)
  6. #zero_ram
  7. #priority timer0,int_ra
  8. //************************************************************//
  9. #define debug     // Comment line out for no debug
  10.  
  11. #define Carga1          pin_A0
  12. #define Carga2          pin_A1
  13. #define Carga3          pin_A4
  14.  
  15. #define LED_status      pin_A5
  16. //************************************************************
  17. char intensidad[5]={0,159,191,224,254};                 //Equivale a 0%,25%,50%,75%,95%
  18. char nivel_intensidad;
  19. char desborde_T0;
  20. char cruce_detectado;
  21. char zero_HtoL;
  22. char dato_recibido;
  23. //************************************************************
  24. void main(){
  25.  
  26. //      setup_comparator(NC_NC_NC_NC);  //Comparadores desactivados
  27. //      SETUP_ADC_PORTS(NO_ANALOGS);
  28.  
  29.         output_a(0);                                    //Precargar Latch de Salida
  30.         set_tris_a(0b001100);                   //Configurción de pines
  31.                                                                         //A0=Out-Carga 1
  32.                                                                         //A1=Out-Carga 2
  33.                                                                         //A2=In -Cruce por Cero
  34.                                                                         //A3_MCLR=In -Detector Infrarrojo
  35.                                                                         //A4=Out-Carga 3
  36.                                                                         //A5=Out-LED de Estado
  37.  
  38.         SETUP_TIMER_0(T0_INTERNAL);
  39.         SETUP_TIMER_0(T0_DIV_128);                      //incremento cada 64us si Osc = 8MHz
  40.    
  41.         ENABLE_INTERRUPTS(INT_EXT);             //Initerrupcion externa por A2
  42.         EXT_INT_EDGE(H_TO_L);                   //flanco de bajada
  43.  
  44.         ENABLE_INTERRUPTS(INT_RA3);             //Interrupcion por cambio de estado usada para Recepción Serial
  45.  
  46.         ENABLE_INTERRUPTS(GLOBAL);              //Habilitar Interrupciones
  47.  
  48. //*********************************************************
  49. //*******        Programa Principal     **********************//
  50. //*********************************************************
  51. while(1){
  52.                
  53.         if(cruce_detectado==TRUE){
  54.                 cruce_detectado=FALSE;
  55.  
  56.                 if(nivel_intensidad!=0){                                                        //Si el nivel de intensidad es 0 entonces siempre apagado
  57.                         SET_TIMER0(intensidad[nivel_intensidad]);               //Se actualiza timer
  58.                         ENABLE_INTERRUPTS(INT_TIMER0);                                  //Habilitar Interrupción por desborde de Timer0
  59.                         while(desborde_T0==false);                                              //Esperar a que desborde el timer0
  60.                         DISABLE_INTERRUPTS(INT_TIMER0);                                 //Deshabilitar Interrupción por desborde de Timer0
  61.                         desborde_T0=FALSE;
  62.                         output_high(Carga1);                                                    //Disparo1= ON
  63.                         delay_us(50);
  64.                 }//if intensidad
  65.                 output_low(Carga1);                                                                     //Disparo1= OFF
  66.         }//if cruce detectado
  67.        
  68.         sleep();                                                                                                //
  69.        
  70.         }//end_while
  71.  
  72. }//end_main
  73.  
  74. //**********************************************************
  75. //******        Interrupciones  *******************************//
  76. //**********************************************************
  77.  
  78. #int_ext
  79. void z_cross(){
  80.  
  81.         if(zero_HtoL==TRUE){
  82.                 EXT_INT_EDGE(L_TO_H);                   //por flanco de subida
  83.                 zero_HtoL=FALSE;       
  84.                 }//if
  85.        
  86.         else{
  87.                 EXT_INT_EDGE(H_TO_L);                   //por flanco de bajada
  88.                 zero_HtoL=TRUE;
  89.                 }//else
  90.         cruce_detectado=TRUE;
  91.  
  92. #ifdef  DEBUG
  93.         output_toggle(LED_status);                      //Solo para pruebas
  94. #endif
  95.  
  96. }//int cruce por cero
  97.  
  98. //************************************************************
  99. #int_timer0
  100. void overflow_T0(){
  101.         desborde_T0=TRUE;                                       //Ocurrio desborde de timer0
  102. }//int desborde timer0
  103.  
  104.  
  105. //************************************************************
  106. #INT_RA
  107. void recepcion(){                       //Interrupcion por cambio de estado en pines
  108.         if(input(PIN_A3)==0){                   // Bit de inicio ??? pin A3 es 0 ?
  109.                 dato_recibido=getc();                   //Recibir dato
  110.                 nivel_intensidad=dato_recibido-0x30;    // Se resta 0x30 para pasar a decimal
  111.       }//if bit de inicio
  112. } //int_ra3 recepcion serial
  113.  
  114. //************************************************************
  115.  
  116.  
  117.  

Saludos!
« Última modificación: 10 de Octubre de 2011, 05:57:18 por AKENAFAB »

Desconectado hypnos00

  • PIC10
  • *
  • Mensajes: 21
Re: Dimmer 1 canal ,pic12F683.
« Respuesta #1 en: 22 de Mayo de 2012, 01:17:54 »
Hola amigos!

Estoy retomando el proyecto del dimmer.
Se trata de un dimmer de 1 canal , se puede ajustar a 5 niveles de operación 0%,25%,50%,75% y 95% y se controla serialmente(4800bps,8bits,1stop,N).



Si envian 0x30H esta apagado
Si envian 0x31H " 1 " esta trabajando al 25%
Si envian 0x32H " 2 " esta trabajando al 50%
Si envian 0x33H " 3 " esta trabajando al 75%
Si envian 0x34H " 4 " esta trabajando al 95%

Código: C
  1. #include <12F683.h>
  2. #FUSES INTRC_IO,NOWDT,PUT,NOMCLR,BROWNOUT,PROTECT,CPD,NOIESO,NOFCMEN
  3. #use delay(internal=8MHZ)                                                                       //Oscilador interno 8MHz
  4. #use rs232(baud=4800,rcv=PIN_A3)                                                        //Velocidad limitada por receptor el receptor infrarrojo
  5. #use fast_io(A)
  6. #zero_ram
  7. #priority timer0,int_ra
  8. //************************************************************//
  9. #define debug     // Comment line out for no debug
  10.  
  11. #define Carga1          pin_A0
  12. #define Carga2          pin_A1
  13. #define Carga3          pin_A4
  14.  
  15. #define LED_status      pin_A5
  16. //************************************************************
  17. char intensidad[5]={0,159,191,224,254};                 //Equivale a 0%,25%,50%,75%,95%
  18. char nivel_intensidad;
  19. char desborde_T0;
  20. char cruce_detectado;
  21. char zero_HtoL;
  22. char dato_recibido;
  23. //************************************************************
  24. void main(){
  25.  
  26. //      setup_comparator(NC_NC_NC_NC);  //Comparadores desactivados
  27. //      SETUP_ADC_PORTS(NO_ANALOGS);
  28.  
  29.         output_a(0);                                    //Precargar Latch de Salida
  30.         set_tris_a(0b001100);                   //Configurción de pines
  31.                                                                         //A0=Out-Carga 1
  32.                                                                         //A1=Out-Carga 2
  33.                                                                         //A2=In -Cruce por Cero
  34.                                                                         //A3_MCLR=In -Detector Infrarrojo
  35.                                                                         //A4=Out-Carga 3
  36.                                                                         //A5=Out-LED de Estado
  37.  
  38.         SETUP_TIMER_0(T0_INTERNAL);
  39.         SETUP_TIMER_0(T0_DIV_128);                      //incremento cada 64us si Osc = 8MHz
  40.    
  41.         ENABLE_INTERRUPTS(INT_EXT);             //Initerrupcion externa por A2
  42.         EXT_INT_EDGE(H_TO_L);                   //flanco de bajada
  43.  
  44.         ENABLE_INTERRUPTS(INT_RA3);             //Interrupcion por cambio de estado usada para Recepción Serial
  45.  
  46.         ENABLE_INTERRUPTS(GLOBAL);              //Habilitar Interrupciones
  47.  
  48. //*********************************************************
  49. //*******        Programa Principal     **********************//
  50. //*********************************************************
  51. while(1){
  52.                
  53.         if(cruce_detectado==TRUE){
  54.                 cruce_detectado=FALSE;
  55.  
  56.                 if(nivel_intensidad!=0){                                                        //Si el nivel de intensidad es 0 entonces siempre apagado
  57.                         SET_TIMER0(intensidad[nivel_intensidad]);               //Se actualiza timer
  58.                         ENABLE_INTERRUPTS(INT_TIMER0);                                  //Habilitar Interrupción por desborde de Timer0
  59.                         while(desborde_T0==false);                                              //Esperar a que desborde el timer0
  60.                         DISABLE_INTERRUPTS(INT_TIMER0);                                 //Deshabilitar Interrupción por desborde de Timer0
  61.                         desborde_T0=FALSE;
  62.                         output_high(Carga1);                                                    //Disparo1= ON
  63.                         delay_us(50);
  64.                 }//if intensidad
  65.                 output_low(Carga1);                                                                     //Disparo1= OFF
  66.         }//if cruce detectado
  67.        
  68.         sleep();                                                                                                //
  69.        
  70.         }//end_while
  71.  
  72. }//end_main
  73.  
  74. //**********************************************************
  75. //******        Interrupciones  *******************************//
  76. //**********************************************************
  77.  
  78. #int_ext
  79. void z_cross(){
  80.  
  81.         if(zero_HtoL==TRUE){
  82.                 EXT_INT_EDGE(L_TO_H);                   //por flanco de subida
  83.                 zero_HtoL=FALSE;       
  84.                 }//if
  85.        
  86.         else{
  87.                 EXT_INT_EDGE(H_TO_L);                   //por flanco de bajada
  88.                 zero_HtoL=TRUE;
  89.                 }//else
  90.         cruce_detectado=TRUE;
  91.  
  92. #ifdef  DEBUG
  93.         output_toggle(LED_status);                      //Solo para pruebas
  94. #endif
  95.  
  96. }//int cruce por cero
  97.  
  98. //************************************************************
  99. #int_timer0
  100. void overflow_T0(){
  101.         desborde_T0=TRUE;                                       //Ocurrio desborde de timer0
  102. }//int desborde timer0
  103.  
  104.  
  105. //************************************************************
  106. #INT_RA
  107. void recepcion(){                       //Interrupcion por cambio de estado en pines
  108.         if(input(PIN_A3)==0){                   // Bit de inicio ??? pin A3 es 0 ?
  109.                 dato_recibido=getc();                   //Recibir dato
  110.                 nivel_intensidad=dato_recibido-0x30;    // Se resta 0x30 para pasar a decimal
  111.       }//if bit de inicio
  112. } //int_ra3 recepcion serial
  113.  
  114. //************************************************************
  115.  
  116.  
  117.  

Saludos!


saludos que optocoplador usuarias??

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Dimmer 1 canal ,pic12F683.
« Respuesta #2 en: 22 de Mayo de 2012, 02:31:18 »
Debes utilizar un opto-acoplador sin detección de cruce por cero por ejemplo

MOC3011 o MOC3021

También puedes conectar directamente el PIC con la compuerta del TRIAC mediante un resistor, pero es muy peligroso. Una vez quemé un PIC por utilizar esta configuración y me decidí a hacerlo con optoacopladores. Mira la siguiente Nota de Aplicación de Microchip.

http://ww1.microchip.com/downloads/en/AppNotes/91094A.pdf
« Última modificación: 22 de Mayo de 2012, 02:38:41 por bigluis »
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado tannke

  • PIC16
  • ***
  • Mensajes: 176
Re: Dimmer 1 canal ,pic12F683.
« Respuesta #3 en: 22 de Mayo de 2012, 07:14:01 »
Debes utilizar un opto-acoplador sin detección de cruce por cero por ejemplo

MOC3011 o MOC3021

Tengo la sensación que está preguntando por el optoacoplador y no por el optotriac, al que no sabría contestarte, yo provaría con uno de los típicos tipo 4n25 o 26.

Un saludo

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Dimmer 1 canal ,pic12F683.
« Respuesta #4 en: 22 de Mayo de 2012, 16:08:31 »
 :oops: Lo siento, tienes razon.

En ese caso no se cual utilizar, pero tambien puedes utilizar un divisor de voltaje mediante resistencias. Es decir, puedes utilizar una resistencia de 10k conectada en serie con una de 2M. Esto hará que practicamente lleguen los 170Vp de la fuente al PIC, pero con muy poca cantidad de corriente, limitada por la resistencia de 10k.
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3192
Re: Dimmer 1 canal ,pic12F683.
« Respuesta #5 en: 23 de Mayo de 2012, 04:55:22 »


saludos que optocoplador usuarias??

Uso el 4n25
Esto esta probado a 120VCA , las resistencias son de 1/2 Watt.
« Última modificación: 23 de Mayo de 2012, 05:08:37 por AKENAFAB »

Desconectado hypnos00

  • PIC10
  • *
  • Mensajes: 21
Re: Dimmer 1 canal ,pic12F683.
« Respuesta #6 en: 23 de Mayo de 2012, 11:29:10 »
thx thx gracias a todos por sus respuestas  :lol: ((:-))

Desconectado hypnos00

  • PIC10
  • *
  • Mensajes: 21
Re: Dimmer 1 canal ,pic12F683.
« Respuesta #7 en: 24 de Mayo de 2012, 11:41:56 »


saludos que optocoplador usuarias??

Uso el 4n25
Esto esta probado a 120VCA , las resistencias son de 1/2 Watt.

me quede con la duda el opto-triac debe ser uno que no tenga cruce por zero??? y en que influye que sea con cruce???  saludos!

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Dimmer 1 canal ,pic12F683.
« Respuesta #8 en: 24 de Mayo de 2012, 13:37:51 »
Si el optotriac tiene detección de cruce por cero, no podrás entregarle voltaje a la carga, ya que esta solo podrá ser encendida cuando exista cruce por cero. Por ejemplo, si deseas encender el TRIAC al 50% de la onda, este no encenderá debido a que no es el cruce por cero.
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado hypnos00

  • PIC10
  • *
  • Mensajes: 21
Re: Dimmer 1 canal ,pic12F683.
« Respuesta #9 en: 24 de Mayo de 2012, 15:45:17 »
Hola amigos!

Estoy retomando el proyecto del dimmer.
Se trata de un dimmer de 1 canal , se puede ajustar a 5 niveles de operación 0%,25%,50%,75% y 95% y se controla serialmente(4800bps,8bits,1stop,N).



Si envian 0x30H esta apagado
Si envian 0x31H " 1 " esta trabajando al 25%
Si envian 0x32H " 2 " esta trabajando al 50%
Si envian 0x33H " 3 " esta trabajando al 75%
Si envian 0x34H " 4 " esta trabajando al 95%

Código: C
  1. #include <12F683.h>
  2. #FUSES INTRC_IO,NOWDT,PUT,NOMCLR,BROWNOUT,PROTECT,CPD,NOIESO,NOFCMEN
  3. #use delay(internal=8MHZ)                                                                       //Oscilador interno 8MHz
  4. #use rs232(baud=4800,rcv=PIN_A3)                                                        //Velocidad limitada por receptor el receptor infrarrojo
  5. #use fast_io(A)
  6. #zero_ram
  7. #priority timer0,int_ra
  8. //************************************************************//
  9. #define debug     // Comment line out for no debug
  10.  
  11. #define Carga1          pin_A0
  12. #define Carga2          pin_A1
  13. #define Carga3          pin_A4
  14.  
  15. #define LED_status      pin_A5
  16. //************************************************************
  17. char intensidad[5]={0,159,191,224,254};                 //Equivale a 0%,25%,50%,75%,95%
  18. char nivel_intensidad;
  19. char desborde_T0;
  20. char cruce_detectado;
  21. char zero_HtoL;
  22. char dato_recibido;
  23. //************************************************************
  24. void main(){
  25.  
  26. //      setup_comparator(NC_NC_NC_NC);  //Comparadores desactivados
  27. //      SETUP_ADC_PORTS(NO_ANALOGS);
  28.  
  29.         output_a(0);                                    //Precargar Latch de Salida
  30.         set_tris_a(0b001100);                   //Configurción de pines
  31.                                                                         //A0=Out-Carga 1
  32.                                                                         //A1=Out-Carga 2
  33.                                                                         //A2=In -Cruce por Cero
  34.                                                                         //A3_MCLR=In -Detector Infrarrojo
  35.                                                                         //A4=Out-Carga 3
  36.                                                                         //A5=Out-LED de Estado
  37.  
  38.         SETUP_TIMER_0(T0_INTERNAL);
  39.         SETUP_TIMER_0(T0_DIV_128);                      //incremento cada 64us si Osc = 8MHz
  40.    
  41.         ENABLE_INTERRUPTS(INT_EXT);             //Initerrupcion externa por A2
  42.         EXT_INT_EDGE(H_TO_L);                   //flanco de bajada
  43.  
  44.         ENABLE_INTERRUPTS(INT_RA3);             //Interrupcion por cambio de estado usada para Recepción Serial
  45.  
  46.         ENABLE_INTERRUPTS(GLOBAL);              //Habilitar Interrupciones
  47.  
  48. //*********************************************************
  49. //*******        Programa Principal     **********************//
  50. //*********************************************************
  51. while(1){
  52.                
  53.         if(cruce_detectado==TRUE){
  54.                 cruce_detectado=FALSE;
  55.  
  56.                 if(nivel_intensidad!=0){                                                        //Si el nivel de intensidad es 0 entonces siempre apagado
  57.                         SET_TIMER0(intensidad[nivel_intensidad]);               //Se actualiza timer
  58.                         ENABLE_INTERRUPTS(INT_TIMER0);                                  //Habilitar Interrupción por desborde de Timer0
  59.                         while(desborde_T0==false);                                              //Esperar a que desborde el timer0
  60.                         DISABLE_INTERRUPTS(INT_TIMER0);                                 //Deshabilitar Interrupción por desborde de Timer0
  61.                         desborde_T0=FALSE;
  62.                         output_high(Carga1);                                                    //Disparo1= ON
  63.                         delay_us(50);
  64.                 }//if intensidad
  65.                 output_low(Carga1);                                                                     //Disparo1= OFF
  66.         }//if cruce detectado
  67.        
  68.         sleep();                                                                                                //
  69.        
  70.         }//end_while
  71.  
  72. }//end_main
  73.  
  74. //**********************************************************
  75. //******        Interrupciones  *******************************//
  76. //**********************************************************
  77.  
  78. #int_ext
  79. void z_cross(){
  80.  
  81.         if(zero_HtoL==TRUE){
  82.                 EXT_INT_EDGE(L_TO_H);                   //por flanco de subida
  83.                 zero_HtoL=FALSE;       
  84.                 }//if
  85.        
  86.         else{
  87.                 EXT_INT_EDGE(H_TO_L);                   //por flanco de bajada
  88.                 zero_HtoL=TRUE;
  89.                 }//else
  90.         cruce_detectado=TRUE;
  91.  
  92. #ifdef  DEBUG
  93.         output_toggle(LED_status);                      //Solo para pruebas
  94. #endif
  95.  
  96. }//int cruce por cero
  97.  
  98. //************************************************************
  99. #int_timer0
  100. void overflow_T0(){
  101.         desborde_T0=TRUE;                                       //Ocurrio desborde de timer0
  102. }//int desborde timer0
  103.  
  104.  
  105. //************************************************************
  106. #INT_RA
  107. void recepcion(){                       //Interrupcion por cambio de estado en pines
  108.         if(input(PIN_A3)==0){                   // Bit de inicio ??? pin A3 es 0 ?
  109.                 dato_recibido=getc();                   //Recibir dato
  110.                 nivel_intensidad=dato_recibido-0x30;    // Se resta 0x30 para pasar a decimal
  111.       }//if bit de inicio
  112. } //int_ra3 recepcion serial
  113.  
  114. //************************************************************
  115.  
  116.  
  117.  

Saludos!

una consulta donde puedo encontrar informacion sobre la modulacion por posicion de pulso ya que no encuentro nada teorico y mucho menos que este explicado correctamente, saludos!

Desconectado hypnos00

  • PIC10
  • *
  • Mensajes: 21
Re: Dimmer 1 canal ,pic12F683.
« Respuesta #10 en: 24 de Mayo de 2012, 18:27:26 »
AKENAFAB  me explicas como es el programa porque por mas que lo razono no entiendo algunas cosas por ejemplo el pin A0 es el mismo que GP0???

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: Dimmer 1 canal ,pic12F683.
« Respuesta #11 en: 24 de Mayo de 2012, 19:37:38 »
El A0 es igual al GP0 debido a que ccs no tiene el nombre del puerto GP, por eso le llama A
"Nada es imposible, no si puedes imaginarlo"

Desconectado hypnos00

  • PIC10
  • *
  • Mensajes: 21
Re: Dimmer 1 canal ,pic12F683.
« Respuesta #12 en: 27 de Mayo de 2012, 19:43:15 »
AKENAFAB  me explicas como es el programa porque por mas que lo razono no entiendo algunas cosas por ejemplo el pin A0 es el mismo que GP0???
sigo sin entender tu programa y esque quisiera hacer algo similar en el pic 16f877A agradezco tu ayuda

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: Dimmer 1 canal ,pic12F683.
« Respuesta #13 en: 27 de Mayo de 2012, 21:21:06 »
Por lo general cuando se hace una pregunta esta debe ser específica. Es decir, que cosa del programa no entiendes. De lo contrario no sabremos como ayudarte.

Si el problema es que no entiendes el programa completo, probablemente se deba a que no conoces mucho de C ni de PICs. Si ese es el caso te recomiendo que primero aprendas sobre estos antes de adentrarte a un proyecto.
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado hypnos00

  • PIC10
  • *
  • Mensajes: 21
Re: Dimmer 1 canal ,pic12F683.
« Respuesta #14 en: 29 de Mayo de 2012, 13:32:37 »
Por lo general cuando se hace una pregunta esta debe ser específica. Es decir, que cosa del programa no entiendes. De lo contrario no sabremos como ayudarte.

Si el problema es que no entiendes el programa completo, probablemente se deba a que no conoces mucho de C ni de PICs. Si ese es el caso te recomiendo que primero aprendas sobre estos antes de adentrarte a un proyecto.

entonces me podrias sugerir un libro o material de consulta asi evito molestias, saludos