TODOPIC

FORO TÉCNICO => Electrónica de potencia => Mensaje iniciado por: mracso en 12 de Diciembre de 2017, 05:37:29

Título: control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: mracso en 12 de Diciembre de 2017, 05:37:29
hola soy nuevo en el foro y estoy haciendo un proyecto basicamente lo que quiero es que por medio del pic pueda variar el angulo de disparo, uno ingresa el angulo de disparo en el keypad . pero simulado mi codigo no funciona, y armado funciona pero cuando quiero meter la senal que sale del 3n25 que es mi cruze por cero al rb0 esta desaparece se hace cero, (lo comprobe en el osciloscopio) que podria ser.
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: KILLERJC en 12 de Diciembre de 2017, 14:13:26
Citar
armado funciona pero cuando quiero meter la senal que sale del 3n25 que es mi cruze por cero al rb0 esta desaparece se hace cero

Entonces vas a necesitar poner un esquema del circuito.
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: mracso en 12 de Diciembre de 2017, 14:37:29
esta es la connexion que utilizo en proteus pero lo que pasa es el cruce por cero no respornde
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: luismh en 12 de Diciembre de 2017, 14:52:20
Hola

Lo primero que observo es que tenés conectada la masa de tu circuito de baja tensión con la masa de tu circuito de alta... Esto puede ser peligroso y atenta contra la principal ventaja de los optoacopladores que es justamente aislar ambos. Te sugiero que quites la masa que está conectado al triac.

Saludos.
Luis.
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: mracso en 12 de Diciembre de 2017, 15:26:47
listo desacople las tierras pero parece que el 4n25 no funciona cuando la salida del 4n25 la conecto alpic esta no funciona, se hace cero gradualmente
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: KILLERJC en 12 de Diciembre de 2017, 15:46:37
listo desacople las tierras pero parece que el 4n25 no funciona cuando la salida del 4n25 la conecto alpic esta no funciona, se hace cero gradualmente

El problema esta en que no se como es que el 4n25 todavia sobrevive... Ya que tiene un voltaje de inversa de 5V maximo, y vos ahi si todo fuera correcto tendrias casi 311V/3 sobre el diodo del 4n25.

Mejor un circuito que sea:

RED F - resistencia ---- opto -> ----- RED N
                            |__ <- diodo __|

De esa forma a la salida tenes una señal cuadrada, el 0 lo vas a tener en cualquier flanco detectado.
cuando F > N el circuito sera resistencia - diodo led del opto
Cuando N > F el circuito sera diodo -- resistencia
Es decir la resistencia conduce todo el ciclo, Y la maxima tension sobre el opto en inversa sera la del diodo 0.7V

Y como dijo luismh si observas el circuito que te digo no necesitas unir el neutro o fase a GND

El valor de la resistencia lo vas a tener que calcular.. Si estas usando 220V ( 311V pico ) con 1k la corriente sobre el diodo led es demasiado grande. son casi 300mA (siendo el maximo de 60mA) en algun punto.
Ademas de la potencia que debe disipar.
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: mracso en 12 de Diciembre de 2017, 16:04:17
la fuente que esta conectada al puente de diodos 3sd e 12 rms nomas la quiero para calcular el cruce por cero  pero esta no funciona cunado la conecto al pic
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: KILLERJC en 12 de Diciembre de 2017, 21:34:42
No veo nada malo en el circuito.
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: mracso en 13 de Diciembre de 2017, 00:00:08
entonces crees que pueda ser el programa
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: uZYNQ en 13 de Diciembre de 2017, 00:02:24
De que voltaje es la fuente dc en R2? puedes conectar R2 a la misma fuente en donde conectas el pulsador de reset. Probaste a ver el detector sin conectarlo al PIC? deberia funcionar si esta conectada R2 a 5V. Y si cuando la conectas al PIC no funciona puede ser que este RB0 como salida y con 0V.
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: mracso en 13 de Diciembre de 2017, 00:14:50
la fuente r2 es de 5v y rbo esta como estrada
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: uZYNQ en 13 de Diciembre de 2017, 00:23:02
Tienes que revisar la rutina de lectura de teclado que usas porque me parece que es para un teclado 4x4 y esa rutina te puede estar cambiando la configuracion del pin RB0
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: mracso en 13 de Diciembre de 2017, 00:36:50
la libreria es 4x3, no se que puede estar pasando
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: uZYNQ en 13 de Diciembre de 2017, 00:46:36
Publica el codigo de la rutina de lectura a ver!
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: mracso en 13 de Diciembre de 2017, 00:53:28
///////////////////////////////////////////////////////////////////////////
////                             KBD.C                                 ////
////                  Generic keypad scan driver                       ////
////                                                                   ////
////  kbd_init()   Must be called before any other function.           ////
////                                                                   ////
////  c = kbd_getc()  Will return a key value if pressed or /0 if not  ////
////                   This function should be called frequently so as ////
////                   not to miss a key press.                        ////
////                                                                   ////
///////////////////////////////////////////////////////////////////////////
////        (C) Copyright 1996,2003 Custom Computer Services           ////
//// This source code may only be used by licensed users of the CCS C  ////
//// compiler.  This source code may only be distributed to other      ////
//// licensed users of the CCS C compiler.  No other use, reproduction ////
//// or distribution is permitted without written permission.          ////
//// Derivative programs created using this software in object code    ////
//// form are not restricted in any way.                               ////
///////////////////////////////////////////////////////////////////////////

////////////////// The following defines the keypad layout on port D

// Un-comment the following define to use port B
// #define use_portb_kbd TRUE

// Make sure the port used has pull-up resistors (or the LCD) on
// the column pins

#if defined use_portb_kbd
   #byte kbd = getenv("SFR:PORTB")
#else
   #byte kbd = getenv("SFR:PORTD")
#endif

#if defined use_portb_kbd
   #define set_tris_kbd(x) set_tris_b(x)
#else
   #define set_tris_kbd(x) set_tris_d(x)
#endif

//Keypad connection:   (for example column 0 is B2)
//                Bx:

#ifdef blue_keypad  ///////////////////////////////////// For the blue keypad
#define COL0 (1 << 2)
#define COL1 (1 << 3)
#define COL2 (1 << 6)

#define ROW0 (1 << 4)
#define ROW1 (1 << 7)
#define ROW2 (1 << 1)
#define ROW3 (1 << 5)

#else ////////////////////////////////////////////////// For the black keypad
#define COL0 (1 << 5)
#define COL1 (1 << 6)
#define COL2 (1 << 7)

#define ROW0 (1 << 1)
#define ROW1 (1 << 2)
#define ROW2 (1 << 3)
#define ROW3 (1 << 4)

#endif

#define ALL_ROWS (ROW0|ROW1|ROW2|ROW3)
#define ALL_PINS (ALL_ROWS|COL0|COL1|COL2)

// Keypad layout:
char const KEYS[4][3] = {{'1','2','3'},
                         {'4','5','6'},
                         {'7','8','9'},
                         {'*','0','#'}};

#define KBD_DEBOUNCE_FACTOR 33    // Set this number to apx n/333 where
                                  // n is the number of times you expect
                                  // to call kbd_getc each second


void kbd_init() {
}

char kbd_getc( ) {
   static BYTE kbd_call_count;
   static int1 kbd_down;
   static char last_key;
   static BYTE col;

   BYTE kchar;
   BYTE row;

   kchar='\0';
   if(++kbd_call_count>KBD_DEBOUNCE_FACTOR) {
       switch (col) {
         case 0   : set_tris_kbd(ALL_PINS&~COL0);
                    kbd=~COL0&ALL_PINS;
                    break;
         case 1   : set_tris_kbd(ALL_PINS&~COL1);
                    kbd=~COL1&ALL_PINS;
                    break;
         case 2   : set_tris_kbd(ALL_PINS&~COL2);
                    kbd=~COL2&ALL_PINS;
                    break;
       }

       if(kbd_down) {
         if((kbd & (ALL_ROWS))==(ALL_ROWS)) {
           kbd_down=FALSE;
           kchar=last_key;
           last_key='\0';
         }
       } else {
          if((kbd & (ALL_ROWS))!=(ALL_ROWS)) {
             if((kbd & ROW0)==0)
               row=0;
             else if((kbd & ROW1)==0)
               row=1;
             else if((kbd & ROW2)==0)
               row=2;
             else if((kbd & ROW3)==0)
               row=3;
             last_key =KEYS[row][col];
             kbd_down = TRUE;
          } else {
             ++col;
             if(col==3)
               col=0;
          }
       }
      kbd_call_count=0;
   }
  set_tris_kbd(ALL_PINS);
  return(kchar);
}
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: uZYNQ en 13 de Diciembre de 2017, 00:55:05
También puedes poner un retardo fijo y comentar toda la lectura del teclado para descartar que sea esa rutina que esta afectando la configuración de RB0 y por tanto a la interrupción.
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: mracso en 13 de Diciembre de 2017, 01:01:34
efectivamente funciona sin la el teclado activado
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: uZYNQ en 13 de Diciembre de 2017, 01:07:27
Es que al final la rutina pone a cero al TRISB0. 
 set_tris_kbd(ALL_PINS);
ALL_PINS = 11111110 por lo que precisamente pones como salida el pin RB0.
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: mracso en 13 de Diciembre de 2017, 01:11:16
podria modificar esto o podria husar otro puerto
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: uZYNQ en 13 de Diciembre de 2017, 01:24:13
prueba modificando la definicion de ALL_PINS por:
 #define ALL_PINS (ALL_ROWS|COL0|COL1|COL2|0x01)

asi siempre queda como entrada el pin RB0
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: mracso en 13 de Diciembre de 2017, 02:15:34
gracias era eso funciono
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: José2308 en 01 de Julio de 2024, 15:49:56
Con que compilador puedo correr el código?
Título: Re:control de potenica (pic,keypad,triac,moc,cruze por cero)
Publicado por: Eduardo2 en 01 de Julio de 2024, 16:11:11
El único código publicado es el correspondiente a la lectura del teclado, que está compilado con CCS.

Lo otro que ves es una imagen del circuito simulado en Proteus.