Falsos disparos en triac

Puedes publicar tu esquema práctico, tu código y fotos de tu montaje, así sin ver estas alimentando mal al micro
 
Hola voy respondiendo a cada uno Gudino Roberto duberlin, si saco el optoacoplador ya no enciende osea ese está mandando para que se dispare el triac, y no un flash queda la luz encendida. Dosmetros eso del filtro de línea cómo es? Tengo que instalar muchas sino por cada plaqueta, pandacba, el pico lo alimento con esos modulitos que se venden de 220 a 5v que son de 700ma es una fuente switching están buenos, con eso alimento el circuito, el programa del pico es sencillo un input de un pin del puerto B y si es 0 porque está activa las resistencias pullup internas, si precio más output a un pin del puerto y pasa a través de una resistencia de 330ohm al optoacoplador moc3021 y de ahí comando al triac, después subo el circuito pero es re básico me pasa que me lo dispara solo , seguro como dice Dosmetros capaz algo en la línea o variación hace eso, no entiendo. O la fuente esa modulitos de 220 a 5v no sirven o no entiendo que sucede.
 
Publica el esquema para poder orientarte adecuadamente,
Si alimentas de un modulo swiching al micro intercala un 78L05 estos filtran el ruido del convertidor
Por eso sube el esquema en electrónica se trabaja con esquemas a la vista y hojas de datos a mano
 
Hola aqui subi el esquematico en un PDF, la fuente switching se venden por mercado libre FUENTEN SWITCHING, ahi coloco el link pero bueno me sucede eso. Que pasaria si cambio al MOC3041? Pasaria lo mismo? ahora solo lo que hace es encender y apagar, en un futuro me gustaria que haga dimmer.
 

Adjuntos

  • esquematico.pdf
    39.6 KB · Visitas: 33
Todos los TRIACs se disparan? O sólo uno?
O en forma aleatoria ?
No quites el optoacoplador, así descartas si el problema viene del control o del disparo.
Sólo quita la resistencia de 470 que va al LED emisor y comprueba.
 
Hola consulta si quito el led lo que hago es solo conectar la pata del microcontrolador directo o vos querés que el microcontrolador deje de actuar sobre el optoacoplador? .
Yo estoy utilizando ahora una sola salida no me fijé las otras pero seguro deben actuar después me fijo cuando llegue a casa. Sin más le optó ya no actúa el triac así que viene del optó hacia atrás pero no entiendo porque todo tan así. Repito por ejemplo actúa después de un rato importa ejemplo enciendo un ventilador de techo y al mover la perilla que actúa sobre el transformador para la velocidad por a veces prende o no o capaz hace un destello. Seguro esto con un transistor y relé no lo hace jeje pero bueno utilizo triac
 
La verdad no se comprende bien lo que comentas. Sólo quita la resistencia de 470 ohms que va al optoacoplador y has todas las pruebas de interferencia que se te ocurran.
Si el problema persiste, pues el tema ya está más cercado, sino el problema viene del lado del microcontrolador.
 
Hola, bueno hice lo que dijiste levante las resstencias que van al led del optoacoplador, y no enciende ninguna luz hice de todo prendi ventiladores que es tambien lo que hacia encender y nada. entonces?? que sucede esta haciendo problemas el micro? que hace encender al opto? y como puedo corregir eso? para que el micro no envie señales de encendido? eso es poque se pone inestable me imagino. Capaz se pueda corregir por programa.??

Código:
#include <16F886.h>
#DEVICE ADC=10
#DEVICE  *=16
//#ignore_warnings  201, 216

#fuses NOWDT
#FUSES NOBROWNOUT    //No brownout reset

#use delay(internal=8MHz)  // Usar 20 MHz para montaje en físico.
//#use     rs232(baud=9600, xmit=PIN_B2, rcv=PIN_B1, stream=PC)


int8 RS_ID = 0x20;                 // Direccion Base de los Modulos
int8 ID_Central = 10;            /// Direccion de la Central
//int8 ID_BT1 = 50;
#define tope_array  40           /// Tamaño del almacenmiento

#define RS485_USE_EXT_INT TRUE
#define RS485_RX_PIN PIN_B0
#define RS485_TX_PIN PIN_B3
#define RS485_ENABLE_PIN   PIN_B2     // Controls DE pin.  RX low, TX high.
#define RS485_RX_ENABLE PIN_B1        // Controls RE pin.  Should keep low.
#define RS485_RX_BUFFER_SIZE tope_array
#define RS485_ID RS_ID
#include "rs485.c"


int1 flag_rs485 = 0;
int8 i,msg[tope_array];
int16 port_pin[4]={PIN_A4, PIN_A5, PIN_A6, PIN_A7};

//#include <stdlib.h>


#INT_TIMER1
void timer1_isr()
{
   if(rs485_get_message(msg, FALSE))
   {
      flag_rs485 = 1;
   }
  // set_timer1(80);
}


//////////////////////////////////////////////////////////////////////////////
// CONFIGURA LA DIRECCION DEL MODULO DE 20 A 2F
//////////////////////////////////////////////////////////////////////////////
void address()
{
   int a=RS_ID;
   
   a+=input(PIN_C4);
   a+=(input(PIN_C5)*2);
   a+=(input(PIN_C6)*4);
   a+=(input(PIN_C7)*8);

   RS_ID=a;
}

void clean_msg (void)
{
   for(i=0;i<sizeof(msg);i++)
   {
      msg[i] = 0x00;
   }
}


void RS485send(char* s, int8 id)
{
   int8 size;

   for(size=0; s[size]!='\0'; ++size);

   rs485_wait_for_bus(FALSE);

   while(!rs485_send_message(id, size, s))
      delay_ms(RS_ID);  //RS_ID
}

void trama(int salida, int estado, int tx)
{
   int mascara = 0x00;

   msg[0]=0x4C;
   mascara=salida;
   mascara<<=4;
   mascara^=estado;
   msg[1]=mascara;
   msg[2]=msg[0]+msg[1];

   RS485send(msg, ID_Central);           //Transmite a la Central
   delay_ms(1);
   //RS485send(msg, ID_BT1);           //Transmite a la Central
   if(tx)
      RS485send(msg, RS_ID);  // Transmite al otro modulo
}


void main()
{
   //delay_ms(500);
   //output_low(PIN_A0);
   output_a(0x01);

   address();
   port_b_pullups(0xF0);
   setup_timer_1(T1_INTERNAL | T1_DIV_BY_1);

  // rs485_init();
  // delay_ms(300);
   enable_interrupts(GLOBAL);

  // set_timer1(80);
   enable_interrupts(INT_TIMER1);
   rs485_init();



   while (true)
   {

     /* if(!input(PIN_A2))
      {
         msg[0] = 'a';
         RS485send(msg, 0x01);
         while(!input(PIN_A2));
      }

      if(!input(PIN_A3))
      {
         msg[0] = 'b';
         RS485send(msg, 0x01);
         while(!input(PIN_A3));
      }*/

      if(flag_rs485)
      {
         disable_interrupts(global);  //INT_TIMER1
         flag_rs485 = 0;
   
        // if(msg[4]==(msg[2]+msg[3]))
      //   if(input_state(PIN_C0)) //&&(input(PIN_C1)==1)&&(input(PIN_C2)==1)&&(input(PIN_C3)==1));
      //   {
            if(msg[2] == 0x4C)
               output_bit(port_pin[((msg[3]&0xf0)>>4)-1], (msg[3]&0x0f));
           //output_bit(port_pin[((msg[3]>>4)&0x0f)-1], (msg[3]&0x0f));
       //  }
         
         clean_msg();
         enable_interrupts(global);
      }  
 
   
//      disable_interrupts(INT_TIMER1);
      if(!input(PIN_B4)){ output_toggle(PIN_A4); trama(0x01,input_state(PIN_A4),input(PIN_C0)) ;  while(!input(PIN_B4)); delay_ms(10);}
      if(!input(PIN_B5)){ output_toggle(PIN_A5); trama(0x02,input_state(PIN_A5),input(PIN_C1)) ;  while(!input(PIN_B5)); delay_ms(10);}
      if(!input(PIN_B6)){ output_toggle(PIN_A6); trama(0x03,input_state(PIN_A6),input(PIN_C2)) ;  while(!input(PIN_B6)); delay_ms(10);}
      if(!input(PIN_B7)){ output_toggle(PIN_A7); trama(0x04,input_state(PIN_A7),input(PIN_C3)) ;  while(!input(PIN_B7)); delay_ms(10);}
//      enable_interrupts(INT_TIMER1);

   }// FIN WHILE
}
 
Última edición:
Ahi puso uno un comentario de un 7805 sirve eso a la salida de la fuente?
sino me voy a tener ue buscar esos filtros poner a cada uno de las plaquetas ? :cry:
 
La primera solución empieza siendo la más sencilla.
Tiene el microcontrolador un condensador de 100nF entre VDD y GND?
Éste tiene que estar lo más cercano posible a los pines antes mencionados, es más yo suelo soldarlos directamente al micro, con los terminales bien cortos.
 
Hola, Coloque el condensador de 100nf soldado en las patitas del microcontrolador del otro lado de la plaqueta entre 19 y 20 que son VDD y VSS, y nada sigue el problema y enciende la luz sola.
 
comento lo que hice, coloque capacitor (condensador) vdd y gnd, sigue sin funcionar, coloque un 7805 igual sigue sin funcionar, voy a probar con el filtro de linea a ver que sucede.
Otra cosa cuando, cuando alimento al circuito no funciona de una, tengo que resetear para que arranque, porque es eso? cambie la resistencia del reset por otra mas grande igual, hasta saque el condensador a ver si variaba pero nada. Es por algo que no inicia de una? Esto es aparte de que las luces encienden sola que probare con los filtrs ultima prueba sino nose y de lo otro si me ueden decir? gracias.
 
Atrás
Arriba