Autor Tema: cruce por cero y lcd en i2c  (Leído 8022 veces)

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

Desconectado Morfeo_F_H666

  • PIC10
  • *
  • Mensajes: 10
Re: cruce por cero y lcd en i2c
« Respuesta #15 en: 29 de Diciembre de 2006, 21:21:30 »
gracias ya hice ese cambio pero tampoco... funciona en el flanco de bajada pero se repete todo el fanco en que el voltaje es negativo el pulso se da 8 veces en el semiciclo

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: cruce por cero y lcd en i2c
« Respuesta #16 en: 30 de Diciembre de 2006, 02:50:20 »
Me da la impresión que parte de ese código está extraído de mi proyecto "Dimmer con mando".

Si te fijas, la función original que yo utilicé, y que pego a continuación, está precedida por el literal #INT_EXT. Esto significa que la función se ejecutará cada vez que salte la interrupción externa, o lo que es igual, cada vez que el PIC detecte en ese pin un flanco de bajada (si está en H_TO_L) o un flanco de subida (si está en L_TO_H).

Código: [Seleccionar]
/****************************************************************************/
/* El ciclo del TRIAC comienza de nuevo con cada cruce por 0                */
/* por ello en la interrupción externa se pone a 0 la cuenta de PasosDimmer */
/* y se cambia la detección de flanco de la entrada                         */
/****************************************************************************/

#INT_EXT
void CrucePor0()
{
   PasosDimmer=0;
   if (j==0){
   j=1;
   LED_VERDE=1;
   LED_ROJO=1;
   ext_int_edge(H_TO_L); // Cambio la detección del flanco, para que la proxima sea de bajada
   }
   else {
   j=0;
   LED_VERDE=0;
   LED_ROJO=0;
   ext_int_edge(L_TO_H); // La próxima interrupción será de subida
   }
}

Esta función es francamente optimizable y en ella se pueden observar defectos que cometí debido a mi bisoñez con los PIC, como el uso de la variable j, pero te puedo garantizar que funcionaba perfectamente.

Desconectado Morfeo_F_H666

  • PIC10
  • *
  • Mensajes: 10
Re: cruce por cero y lcd en i2c
« Respuesta #17 en: 30 de Diciembre de 2006, 12:55:43 »
que tal nocturno pedes por favor explicarme que significa el
PasosDimmer=0;
LED_VERDE=1;
LED_ROJO=1;
por que la verdad no se a que pines o varibles estan asignadas

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: cruce por cero y lcd en i2c
« Respuesta #18 en: 30 de Diciembre de 2006, 12:58:33 »
Son variables / pines indiferentes para la detección del cruce por cero, por lo que puedes eliminarlas.

Desconectado Morfeo_F_H666

  • PIC10
  • *
  • Mensajes: 10
Re: cruce por cero y lcd en i2c
« Respuesta #19 en: 30 de Diciembre de 2006, 13:18:56 »
gracias men se te agradece un monton ya funciono el detector de cruce por cero otra cosita me puedes po favor enviar el codigo del dimer por que lo e pasado buscando y en todos lados y no lo e encontrado te lo agracedería un monton si puedes publicalo en este gran foro o si no ponlo en algun lado para descargarlo xp en la pagina del rebijito no vale descargarlo te agradecería un monton

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: cruce por cero y lcd en i2c
« Respuesta #20 en: 30 de Diciembre de 2006, 13:26:28 »
Está publicado en la zona de Descargas de El Rebujito, sección Proyectos, Dimmer con Mando:
http://www.elrebujito.es/modules.php?name=Downloads&d_op=viewdownload&cid=18

Me alegro que lo hayas resuelto.

Desconectado Morfeo_F_H666

  • PIC10
  • *
  • Mensajes: 10
Re: cruce por cero y lcd en i2c
« Respuesta #21 en: 30 de Diciembre de 2006, 13:42:05 »
muchas gracias estaremos en contacto y feliz año nuevo se les agradece un monton  :-/ :-/ :-/ :-/

Desconectado Morfeo_F_H666

  • PIC10
  • *
  • Mensajes: 10
Re: cruce por cero y lcd en i2c
« Respuesta #22 en: 11 de Enero de 2007, 17:20:54 »
hola alguien me puede decir como varian las varibles int , char, float, double y long en piccsc y cuales son los rangos maximos para las variables

Desconectado Renatox_

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 541
    • máquinas cnc
Re: cruce por cero y lcd en i2c
« Respuesta #23 en: 11 de Enero de 2007, 22:07:42 »
hola, el detector de cruce por cero es un buen método para variar la potencia de salida disparando a un triac en cada semiperiodo de la señal alterna, yo también lo he probado y me ha funcionado.

 Hay que tener cuidado cuando se dispara al triac en la zona cercana a 180 grados, por ejemplo si se le dispara justo en los 180 grados y la frecuencia de la alterna es 60.1Hz, entonces se estaría disparando en la parte negativa y con la máxima potencia, lo que hize en ese caso fue dispararlo hasta los 179 grados como máximo.

 Otra forma para controlar la potencia de una carga es mediante el PWM, convirtiendo primero la señal alterna 220v en continua 220*1.41 aprox. (un poco menos), y luego utilizando un transistor de potencia hacerlo commutar con la señal de PWM del PIC.

 El periodo será fijado al inicio del programa y el ancho de pulso determinará la potencia que se le entrega a la carga, de esta forma las interrupciones de cruce por cero no afectarán él trabajo del módulo I2C.
control de movimiento

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: cruce por cero y lcd en i2c
« Respuesta #24 en: 13 de Enero de 2007, 08:04:39 »
Para ver el rango de las variables, pasate por la página web de la empresa CCS y descargate el manual]http://www.ccsinfo.com/downloads/ccs_c_manual.pdf]descargate el manual y en DATA DEFINITIONS está lo que buscas.


Suerte!!! ;)
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado Morfeo_F_H666

  • PIC10
  • *
  • Mensajes: 10
Re: cruce por cero y lcd en i2c
« Respuesta #25 en: 20 de Enero de 2007, 12:33:37 »
hola a todos miren quiero crear una señal de 120Khz por el pin B1 con el pic y tengo el siguiente codigo pero no funciona alguien me puede ayudar por que la verdad no se que esta mal...........
#INCLUDE <16F876A.H>
#FUSES XT, NOWDT, NOPROTECT, NOPUT, NOBROWNOUT, NOLVP
#USE DELAY (CLOCK = 4000000)
int j=1;
#INT_EXT
void IntRB0()
{
         delay_ms(2);
         output_high(PIN_B4);
         delay_ms(1);
         output_low(PIN_B4);
         if (j==0)
         {
            j=1;
            ext_int_edge(H_TO_L);   
         }                           
         else if(j==1)
         {
            j=0;
            ext_int_edge(L_TO_H); 
         }
         x++;
}
#INT_RB
void RB4()
{
         output_high(PIN_B1);
         delay_us(4);
         output_low(PIN_B1);
         delay_us(4);

}

void main()
{
   enable_interrupts(INT_EXT);
   enable_interrupts(INT_RB);
   enable_interrupts(GLOBAL);
   set_tris_b(0x01);
   while(1)
   {

   }

}

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: cruce por cero y lcd en i2c
« Respuesta #26 en: 20 de Enero de 2007, 12:44:54 »
El código que has pegado se parece bastante a un código de lectura de la señal, no al de generación de la misma.
Te aconsejo que eches un vistazo al módulo CCP del PIC que permite generar PWM de distintas frecuencias y seguramente servirá para lo que quieres.

Desconectado Morfeo_F_H666

  • PIC10
  • *
  • Mensajes: 10
Re: cruce por cero y lcd en i2c
« Respuesta #27 en: 21 de Enero de 2007, 22:52:28 »
pero el pwm trabaja en todo el timepo o existe alguna manera de controlar cuando se activa por que lo que yo necesito es que solo en un milisegundo se ejecute la frecuencia de 120Khz por otro pin de salida

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: cruce por cero y lcd en i2c
« Respuesta #28 en: 22 de Enero de 2007, 02:28:46 »
Tú puedes activar y desactivar cuando quieras.