Corte por baja frecuencia para AVR de 380 volts

Si eso fue en lo primero que habia pensado ,hasta tenia un programa hecho para hacer un cuenta vueltas .Nosotros usamos bastante ese tipo de sensores,justamente para instalar los cuenta vueltas de los motores principales de los barcos, que son motores enormes , pero el desafio era tratar de imitar con este regulador a los reguladores de voltaje modernos ,que realmente no se si quiera si es que tienen corte de frecuencia o que, pero si el motor baja las vueltas este se desconecta,:unsure:tambien en los barcos es distinto, por que lleva una llave termomagnetica con bobina de cero tension, que hace que se desconecte cuando la tension desciende de cierto valor ,por eso es que no se como funcionan estos reguladores ,lo cierto es que se desconectan,y en el caso de este regulador que estamos modificando nosotros ,aunque baje mucho las vueltas la tension no desciende ,siempre la mantiene ,a costas de quemarse el campo.En definitiva la idea era integrar todo en el mismo regulador y ahora que ya estamos tan cerca ,yo creo que con esas modificaciones en el programa ya estaria ,no? que te parece ?
 
pues ahora si que en eso me estas enseñando tu a mi XD, tu me dices que quieres que haga y lo hacemos, ahora estoy un poco cansado de la chamba pero mañana pongo el codigo como te entendi que debe ir.. y vamos para adelante...
 
Ya medi el hfe del bc558 y es 12 y el del bc327 es de 320 ,entonces aca estaba el problema no? con es hfe de12 para el bc558 me da una reist de base de 860 R .Y para el bc 327 me da 22k .Esta bien esto? si es asi tendria que cambiar la resist del bc 327 entonces por que lo estoy polarizando con una de 4k7 ahora
 
Ya medi el hfe del bc558 y es 12 y el del bc327 es de 320 ,entonces aca estaba el problema no?

:eek: si ahi esta el problema, 12 es bajisimo se supone que como minimo tendria que tener 100...
Esta bien esto? si es asi tendria que cambiar la resist del bc 327 entonces por que lo estoy polarizando con una de 4k7 ahora
si esta saturando bien asi dejala o pon una de 10K, lo unico que pasa es que este consumiendo unos pocos miliamperios de a gratis...

ya ando con lo del codigo al rato lo subo a ver si ahora si le atino :LOL:
 
Pues A ver si ahora si:

Código:
#include <12F675.h>
#device adc=10
#FUSES NOWDT, INTRC_IO, NOCPD, NOPROTECT, NOMCLR, NOPUT, NOBROWNOUT
#use delay(clock=4000000) 
#bit Led=0x85.1

int RPM=false;

const int  FMax=60;     //frecuencia maxima de corte en Hz
const int  FTyp=50;     //frecuencia tipica de operacion en Hz
const int  FMin=46;     //frecuencia minima de corte  en Hz
const int  T_Retry=2;  //tiempo de espera para reintentar activar campo en Segundos
const long Vmax=536;    //Voltaje maximo de operacion en escala de 0 a 1024
const long VMin=488;    //Voltaje minimo de operacion en escala de 0 a 1024
const long T_Auto=500;  // tiempo que mantiene el campo activo en milisegundos

long Freqcount(void)
{int cycles8, cycles;
 long freq;
 cycles8=0x00;
 cycles=0x00;
 set_timer1(0);
 setup_timer_1(T1_External|T1_Div_By_1);
 while (cycles!=0xFF)
 {cycles8=0x00; 
  while (cycles8!=0xFF)
  {delay_cycles(0x09); 
   cycles8++;}
   delay_cycles(0x55);      
   cycles++;}
  delay_cycles(0x8D);   
  setup_timer_1(T1_Disabled);  
  freq=get_timer1(); 
  return(freq);}

void Turn_On()
{long Frq=0;
 long VW=0;
 long TO=0;  
 output_low(pin_a1);
 output_high(pin_a4);
 while (RPM==False&&TO<=T_Auto) 
 {VW=Read_Adc();
  if (VW>=Vmin)
  {output_low(pin_a2);output_low(pin_a4); 
   frq= freqcount(); 
   if (frq>=FTyp-1) RPM=true;
   TO=TO+1000;}
  delay_ms(1);
  TO++;}
  if (RPM==false)
  {output_low(pin_a4);output_high(pin_a1);output_high(pin_a2);}
 }
void Turn_Off(void)
{output_high(pin_a1);
 output_high(pin_a2);
 RPM=false;}
 
void main(void)
 {long VD;  
  long msec=0;
  int  sec=0;
 
  setup_adc_ports(sAN0|VSS_VDD);
  setup_adc(ADC_Clock_Div_2);
  setup_timer_0(RTCC_Internal|RTCC_Div_1);
  setup_comparator(NC_NC);
  setup_vref(false);
  set_tris_a(0x29);
  set_adc_channel(0);
  output_low(pin_a4);
  output_high(pin_a2);
  output_low(pin_a1);

  delay_ms(10000); //este es el retardo de inicio al encender el pic en milisegundos(10Seg)
    
  while (true) 
   {if (RPM==true)
    {VD=Read_Adc();
     if (VD>=VMin&&VD<=VMax) output_low(pin_a1); else output_high(pin_a1);
     VD=freqcount();
     if (VD<=FMin||VD>=Fmax) {Turn_Off();sec=0;}} 
    else 
    {delay_ms(1);
     msec++;
     if (msec>=0x03E7)
     {msec=0;sec++;if (led==0) output_float(pin_a1); else output_high(pin_a1);} 
     if (sec>=T_Retry) {Turn_On();sec=0;}}   
   }
  }

este no tiene nada de sleep ni apagado ni pulsado.

enciendes el pic y tiene un retardo de 10segundos con un delay_ms, de ahi en adelante va a checar cada 2 segundos (T_retry) y va a tener el campo activado para la muestra de frecuencia por 500mS (T_Auto)

p.d. quedamos que esos valores los ajustas a como mejor convenga.
 
Última edición:
Como siempre un genio papirrin (y) muchas gracias !!!!! si , no te preocupes que los tiempos los ajusto segun las pruebas que vaya haciendo ,si el otro ya casi estaba, seguro que esta va a andar bien.El problema lo tuve yo que no te supe guiar bien en lo que queria.
Estaba haciendo unos graficos a mano para ver como acomodaba la tarjeta , pero hoy trabaje mucho y ya tengo la cabeza quemada :LOL: ,asi que voy a grabar el pic y el resto paso todo para mañana.Mil gracias por tu dedicacion!!!!! ,Mañana te cuento como fue.
Saludos !!!!!!!!!!!
 
Ahora siiiiii !!!!!!!!!!! .Ya vengo diciendo que funciona bien hace bastante ,pero la realidad es que con cada cambio funciona cada vez mejor estoy re contento con los logros :D:D:D ,Muchas gracias papirrin :aplauso::aplauso::aplauso:!!!!! pero vos sabes que yo siempre tengo un PERO :LOL: y ahora me entro otra duda :LOL: , pensaba en el caso que si hay un pico brusco por un consumo excesivo ,como es el caso del arranque de un motor ,en este caso el diesel baja las vueltas un segundo y como la respuesta del pic es tan rapida me va a desconectar el regulador :eek: ,entonces pensaba que tal vez habria que darle un retardo que con un segundo estaria bien, para que no se desconecte tan rapido ,lo que me pone en duda:unsure: es que a la hora de tomar las muestras tambien va a hacer lo mismo no? O se podria hacer que este retardo entre una vez que ya esta el regulador funcionando por ,por ejemplo 10 segundos ,este tiempo ya nos da la pauta de que esta funcionando en la frecuencia correcta y que algo ha hecho bajar y subir las vueltas de golpe sin que se desconecte,disculpame tantos cambios es que a medida que vamos avanzando yo tambien voy descubriendo cosas sobre como deberia funcionar .
Otro punto que se me ocurrió , es ,como te comente en otro post ,el generador cuando esta girando sin excitacion (sin regulador), el mismo, genera una corriente de remanencia en su salida, que va de 2 a 7 volts aprox y pensaba si talvez se pueda sensar la frecuencia desde este punto no haria falta ir tomando pruebas ,ya estariamos leyendo frecuencia sin tener que activar el regulador ,pero el tema aca es que en este punto ,cuando se excita se va a 220v y lo que no se ,es como habria que hacer para entrar al micro con esta amplitud , ya que primero tenes una señal con 2 v y despues con 220v :confused: se podrá?
Te dejo con el video del dia ja ja !!!! ahora de la manera que quedo ,arranco el motor alimento el pic y dejo habilitado el campo y funciona solo ,fijate el video ,no toco nada hace todo solo :LOL:
Pd :le cambie un poco los tiempos y los limites de la frecuencia
 
Última edición:
pero vos sabes que yo siempre tengo un PERO y ahora me entro otra duda , pensaba en el caso que si hay un pico brusco por un consumo excesivo ,como es el caso del arranque de un motor ,en este caso el diesel baja las vueltas un segundo y como la respuesta del pic es tan rapida me va a desconectar el regulador ,entonces pensaba que tal vez habria que darle un retardo que con un segundo estaria bien, para que no se desconecte tan rapido ,lo que me pone en duda es que a la hora de tomar las muestras tambien va a hacer lo mismo no? O se podria hacer que este retardo entre una vez que ya esta el regulador funcionando por ,por ejemplo 10 segundos ,este tiempo ya nos da la pauta de que esta funcionando en la frecuencia correcta y que algo ha hecho bajar y subir las vueltas de golpe sin que se desconecte,disculpame tantos cambios es que a medida que vamos avanzando yo tambien voy descubriendo cosas sobre como deberia funcionar .

creo que si te entendi mas o menos, o me perdi un poco, o sea lo que dices es que si baja de las revoluciones por ejemplo 45, espere un sgundo, vuelva a chechar las revoluciones y si de todos modos esta bajo se desconecte...si no que siga conectado.. ¿es asi?

es que la verdad ahi solo trato de imaginar como deberia estar funcionando XD.


Otro punto que se me ocurrió , es ,como te comente en otro post ,el generador cuando esta girando sin excitacion (sin regulador), el mismo, genera una corriente de remanencia en su salida, que va de 2 a 7 volts aprox y pensaba si talvez se pueda sensar la frecuencia desde este punto no haria falta ir tomando pruebas ,ya estariamos leyendo frecuencia sin tener que activar el regulador ,pero el tema aca es que en este punto ,cuando se excita se va a 220v y lo que no se ,es como habria que hacer para entrar al micro con esta amplitud , ya que primero tenes una señal con 2 v y despues con 220v se podrá?

la verdad no tengo idea si se pueda, hay de 2 a 7 volts pero ¿cuantos Amperios?, ¿se alcanzara a encender un led?
 
si baja de las revoluciones por ejemplo 45, espere un sgundo, vuelva a chechar las revoluciones y si de todos modos esta bajo se desconecte...si no que siga conectado.. ¿es asi?

Si ,tal cual lo que dijiste, si baja las rpm ,en vez de cortar al instante ,primero chequea durante 1 segundo y si sigue bajo ahi hace el corte ,si no sigue conectado


la verdad no tengo idea si se pueda, hay de 2 a 7 volts pero ¿cuantos Amperios?, ¿se alcanzara a encender un led?

No se cuantos amperios, pero mañana voy a probar si enciende un led o que corriente tenemos ahi .
 
pero mañana voy a probar si enciende un led

bueno eso del led no es literal, me refiero a que si genera un poco de corriente aunque sea para encender un led. no se si tengas un miliamperimetro de alterna(aparato/tester u lo que sea que pueda medir miliamperios en alterna) , o podrias medir cuanta corriente pasa por las resistencias de 10K o de algun punto de esos.
 
Última edición:
Ariel37

pero la realidad es que con cada cambio funciona cada vez mejor estoy re contento con los logros :D:D:D ,Muchas gracias papirrin :aplauso::aplauso::aplauso:!!!!! .....
No se por que pero me parece que al Papirrin mas que las gracias deberías mandarle un camión de birras !!!!




Si bien ahora dices que funciona como corresponde (dejo de lado las modificaciones futuras), creo que deberías armar algo con las dos plaquetas que muestras en el video y probarlo realmente con el Motor Diesel.


Por que digo eso?, por que definitiva el funcionamiento real va a ser levemente diferente al actual que tu realizas con el segundo motor y las dos poleas.
Incluso creo que deberías poner térmicas para eventualmente cortar la excitación y no llevarte puesto el campo de otro generador.


Espero que entiendas a que me refiero, ya que han avanzado muchísimo y me parece que bien vale una prueba real.



Saludos, JuanKa.-
 
Si bien ahora dices que funciona como corresponde (dejo de lado las modificaciones futuras), creo que deberías armar algo con las dos plaquetas que muestras en el video y probarlo realmente con el Motor Diesel.


Por que digo eso?, por que definitiva el funcionamiento real va a ser levemente diferente al actual que tu realizas con el segundo motor y las dos poleas.
Incluso creo que deberías poner térmicas para eventualmente cortar la excitación y no llevarte puesto el campo de otro generador.

pues si, eso es muy cierto, y ademas tomar otras precauciones como meter los circuitos en una cajita metalica , encender algun taladro cerca del circuito para ver si se tiene que inmunizar y cosas asi.
 
.


Lo dije con la mejor intención, por que realmente se ha avanzado muchísimo y si le siguen agregando cosas.


Capaz que al hacer la prueba final (funciono bien como esta probando) con el Diesel no anda para atrás ni para adelante; y en ese punto uno se replantea donde se equivoco.


El trabajo en sociedad de ambos me parece EXCELENTE :aplauso: :aplauso: :aplauso: :aplauso: :aplauso: .




Saludos, JuanKa.-
 
en este la constante OF, se van a poner los segundos maximos que puede estar fuera de frecuencia antes de cortar.
Código:
#include <12F675.h>
#device adc=10
#FUSES NOWDT, INTRC_IO, NOCPD, NOPROTECT, NOMCLR, NOPUT, NOBROWNOUT
#use delay(clock=4000000) 
#bit Led=0x85.1

int RPM=false;

const int  FMax=60;     //frecuencia maxima de corte en Hz
const int  FTyp=50;     //frecuencia tipica de operacion en Hz
const int  FMin=46;     //frecuencia minima de corte  en Hz
const int  T_Retry=2;   //tiempo de espera para reintentar activar campo en Segundos
const long Vmax=536;    //Voltaje maximo de operacion en escala de 0 a 1024
const long VMin=488;    //Voltaje minimo de operacion en escala de 0 a 1024
const long T_Auto=500;  // tiempo que mantiene el campo activo en milisegundos
[COLOR="Red"]const int  OF=2;        // segundos fuera de frecuencia[/COLOR]

long Freqcount(void)
{int cycles8, cycles;
 long freq;
 cycles8=0x00;
 cycles=0x00;
 set_timer1(0);
 setup_timer_1(T1_External|T1_Div_By_1);
 while (cycles!=0xFF)
 {cycles8=0x00; 
  while (cycles8!=0xFF)
  {delay_cycles(0x09); 
   cycles8++;}
   delay_cycles(0x55);      
   cycles++;}
  delay_cycles(0x8D);   
  setup_timer_1(T1_Disabled);  
  freq=get_timer1(); 
  return(freq);}

void Turn_On()
{long Frq=0;
 long VW=0;
 long TO=0;  
 output_low(pin_a1);
 output_high(pin_a4);
 while (RPM==False&&TO<=T_Auto) 
 {VW=Read_Adc();
  if (VW>=Vmin)
  {output_low(pin_a2);output_low(pin_a4); 
   frq= freqcount(); 
   if (frq>=FTyp-1) RPM=true;
   TO=TO+1000;}
  delay_ms(1);
  TO++;}
  if (RPM==false)
  {output_low(pin_a4);output_high(pin_a1);output_high(pin_a2);}
 }
void Turn_Off(void)
{output_high(pin_a1);
 output_high(pin_a2);
 RPM=false;}
 
void main(void)
 {long VD;  
  long msec=0;
  int  sec=0;
  int COF=0;
  setup_adc_ports(sAN0|VSS_VDD);
  setup_adc(ADC_Clock_Div_2);
  setup_timer_0(RTCC_Internal|RTCC_Div_1);
  setup_comparator(NC_NC);
  setup_vref(false);
  set_tris_a(0x29);
  set_adc_channel(0);
  output_low(pin_a4);
  output_high(pin_a2);
  output_low(pin_a1);

  delay_ms(10000); //este es el retardo de inicio al encender el pic en milisegundos 
    
  while (true) 
   {if (RPM==true)
    {VD=Read_Adc();
     if (VD>=VMin&&VD<=VMax) output_low(pin_a1); else output_high(pin_a1);
     VD=freqcount();
     if (VD<=FMin||VD>=FMax) COF++; else COF=0;
     if (COF>=OF) {Turn_Off();sec=0;COF=0;}} 
    else 
    {delay_ms(1);
     msec++;
     if (msec>=0x03E7)
     {msec=0;sec++;if (led==0) output_float(pin_a1); else output_high(pin_a1);} 
     if (sec>=T_Retry) {Turn_On();sec=0;}}   
   }
  }
 
Disculpen que ayer no pude responder pero tube que salir.Bueno en principio Juanka te queria agradecer tus consejos que siempre me fueron muy utiles y acertados y gracias por seguir el tema (y) ,te cuento que lo de las termicas ya esta contemplado , de hecho siempre le pongo una tripolar para las fases y una bipolar para el campo.Las pruebas que le estoy haciendo en el taller son mas extremas que en la realidad ,en cuanto a las variaciones de vueltas ,ya que con un diesel se mantiene un regimen estable de rpm y las variaciones son minimas , igual soy conciente que pueden surgir inconvenientes pero hasta que no tenga la oportunidad de probarlo no lo sabré, en este momento no tengo ningun grupo cerca ,pero en cuanto aparezca uno no lo dudes que lo voy a probar y lo voy a filmar para que lo vean.Creo que ese sera el premio final !!!!!.
Lo de papirrin ,claro que merece un camion lleno de birras y mucho mas ja ja !!! pero este tipo de acciones desinteresadas que uno tiene para ayudar a otro siempre tienen devolucion y quizas no sea en este plano, nisiquiera tal vez de mi parte (ojala si pueda alguna vez ),pero se que todo vuelve cuando no hay intereses de por medio ,yo practico surf hace muchos años y eh enseñado a mucha gente a hacerlo ,siempre me han dicho que deberia cobrarlo pero no me nace hacerlo ,hoy las personas a los que les eh enseñado me lo agradecen todo el tiempo y ese es mi premio.Tal vez la devolucion haya sido que hoy a la hora de interesarme con la electronica ,hayan aparecido uds para ayudarme y asi continuara el ciclo .
Bueno bueno ,basta de filosofia que me voy por las ramas :LOL:
Muchas gracias papirrin por el codigo otra vez (y) y si te entedi lo de medir la corriente de remanencia y lo de poner el circuito en una caja y probarlo con ruidos como el taladro . En cuanto lo pruebe les cuento
Mil gracias a todos son muy amables :apreton:
 
Funciono el codigo nuevamente !!!!!!!!!!! asi que re contento:D:D:D . Estuve haciendo pruebas para ver si podemos tomar la señal para sensar la frecuencia desde otro punto ,sin tener que estar tomando pruebas e hice un video para mostrarles.Hice girar el generador sin alimentacion al campo (sin regulador ) Le puse una lampara de 12v 5watt entre fase y neutro y encendia y midiendo con el tester me daba una tension de 5 v ,la lampara tenia una resistencia de 2,7 ohms lo que me da que en ese momento la atravesaba una corriente de 1,85 A .Logicamente si alimentamos el campo ,en este punto donde estamos midiendo vamos a tener 220v .La duda es si le pudieramos poner una resistencia que nos permita sensar la frecuencia cuando tiene 2 volt y cuando este voltaje se va a 220v tambien ,sin dañar al micro.La verdad es que como lo que queremos tomar es una señal me confunde bastante de donde deberia tomarla:confused:
A tambien probe el tema de los ruidos y le encendi unas maquinas al lado del micro y no paso nada siguió funcionando perfectamente (y)
https://www.youtube.com/watch?v=HtpgSzH9atY&feature=youtu.be
 
pues que bien que si funciona, si da gusto XD.

.La duda es si le pudieramos poner una resistencia que nos permita sensar la frecuencia cuando tiene 2 volt y cuando este voltaje se va a 220v tambien ,sin dañar al micro.La verdad es que como lo que queremos tomar es una señal me confunde bastante de donde deberia tomarla


no se que podria ser mejor XD, pero es muy probable que si se pueda aprovechando las resistencias de 10K, deja hacer algunos calculos y platicarlo con la almohada, nunca he echo algo asi.
 
Funciono el codigo nuevamente !!!!!!!!!!! asi que re contento:D:D:D .....
Y ya no me caben dudas que llegamos a

sigpic354418_2.gif

DAYAANNA !!!!


Saludos, JuanKa.-​
P.D.: Perdón por el OFF TOPIC ;) !!!​
 
.La duda es si le pudieramos poner una resistencia que nos permita sensar la frecuencia cuando tiene 2 volt y cuando este voltaje se va a 220v tambien ,sin dañar al micro.La verdad es que como lo que queremos tomar es una señal me confunde bastante de donde deberia tomarla

pues se me ocurre proba asi...

Dibujo.JPG

se supone que el zener puede de mas de 1mW.

la resistencia de 5k1 de 1/4W y la de 200K de 1/2 W

el codigo para probar si funciona seria este:

Código:
#include <12F675.h>
#device adc=10
#FUSES NOWDT, INTRC_IO, NOCPD, NOPROTECT, NOMCLR, NOPUT, NOBROWNOUT
#use delay(clock=4000000) 
#bit Led=0x85.1

long Freqcount(void)
{int cycles8, cycles;
 long freq;
 cycles8=0x00;
 cycles=0x00;
 set_timer1(0);
 setup_timer_1(T1_External|T1_Div_By_1);
 while (cycles!=0xFF)
 {cycles8=0x00; 
  while (cycles8!=0xFF)
  {delay_cycles(0x09); 
   cycles8++;}
   delay_cycles(0x55);      
   cycles++;}
  delay_cycles(0x8D);   
  setup_timer_1(T1_Disabled);  
  freq=get_timer1(); 
  return(freq);}

 
void main(void)
 {long VD;  
    
  setup_adc_ports(sAN0|VSS_VDD);
  setup_adc(ADC_Clock_Div_2);
  setup_timer_0(RTCC_Internal|RTCC_Div_1);
  setup_comparator(NC_NC);
  setup_vref(false);
  set_tris_a(0x29);
  set_adc_channel(0);
  enable_interrupts(Int_RA3);     
  enable_interrupts(Global);    
  output_low(pin_a4);
  output_high(pin_a2);
  output_float(pin_a1);
    
  while (true) 
   {
     VD=freqcount();
     if (VD>=20) output_low(pin_a1); else output_float(pin_a1);
     delay_ms(200);	
    }	
  }

si al estar girando el generador prende el led Verde con el voltaje remanente puede que funcione.

no va a prender el campo ni nada, solo va a checar que si pasa de 20Hz enciende el led verde, si no enciende es que no detecta la señal.

en el simulador funciona.
 
Última edición:
Atrás
Arriba