Corte por baja frecuencia para AVR de 380 volts

Acabo de hacer la prueba pero no lo detecta ,siempre queda prendido el led rojo , en el punto donde se unen la resist de 200k con el zener tenia 1,8vca . La resist de 5k1 como no tenia le puse una de 5k5 y despues probe bajar un poco la de 200k pero no funcionó
 
Si si claro ,y viendo el programa entiendo que no se deberia haber prendido ya que si no detecta frec queda en float ,no? el circuito lo tengo conectado como antes, solo le cambie la resist de 100k por la de 5k5 que va del pinA5 al punto donde se une el zener con la de 200k estos dos ultimos los arme en la protoboard ,y cambie la señal que antes tomaba del zener del regulador y la conecte en la fase ,sera que tengo que desconectar todo y solo dejar la señal y el neutro ?
PD queres que pruebe volver a cargar el programa?
En la simulacion a mi tambien me funciona
 
Última edición:
Si si claro ,y viendo el programa entiendo que no se deberia haber prendido ya que si no detecta frec queda en float ,no?
si queda en float y deberia quedarse apagado si no detecta señal.
segun yo deberia ponerse verde pero quizas esten intercambiados los leds.

el circuito lo tengo conectado como antes, solo le cambie la resist de 100k por la de 5k5 que va del pinA5 al punto donde se une el zener con la de 200k estos dos ultimos los arme en la protoboard ,y cambie la señal que antes tomaba del zener del regulador y la conecte en la fase ,sera que tengo que desconectar todo y solo dejar la señal y el neutro ?
no, deberia funcionar conectado todo.
y no entiendo, de la linea de 220V va la resistencia de 200K, antes salia la resistencia de 100K del zener de 20V. ¿como lo estas conectando?

si apagas el motor del generador y este parado, de todos modos se queda rojo o se apaga el led?
 
Última edición:
Si tal cual, antes salia del zener de 20v a la resist de 100k .Ahora de la fase de 220v a la resist de 200k como el esquema del post#299 .
SI con todo apagado queda encendido el led rojo tambien
 
Por cierto las medidas con multimetro podrian no ser muy fiables puesto que no es una señal sinoidal sino una onda cuadrada, podriamos saber si esta funcionando con un osciloscopio pero creo que no tienes, por eso tenemos que "verlo" con el pic.

Si tal cual, antes salia del zener de 20v a la resist de 100k .Ahora de la fase de 220v a la resist de 200k como el esquema del post#299 .
SI con todo apagado queda encendido el led rojo tambien
algo anda raro, ¿verificaste que el valor del osccal este correcto?, si no lo tiene grabado empieza a hacer cosas raras el pic.

deja verificar aca en el protoboar, pero solo podria hacerlo con 110V, en cuanto revise te digo.
 
Última edición:
Ok creo que ya se que esta pasando...

prueba cargando este codigo:
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);
  output_low(pin_a4);
  output_high(pin_a2);
  output_float(pin_a1);
    
  while (true) 
   {
    VD=freqcount();
    if (VD>=40) output_toggle(pin_a1); else output_float(pin_a1);
     delay_ms(200);	
    }	
  }
y ademas de las resistencias y el zener pon una resistencia de 10K entre el Pin2(GPIO5) y tierra y veamos.

estuve probando con 110V y si funciona, pero al apagar sigue detectando la frecuencia, con la resistencia de 10K lo hacemos un poco mas durito.

apagado el generador deben apagar los leds y encendido el motor deben de intercalarse los leds al pasar los 40Hz.
no pude checar con menos voltaje porque se llevaron mi tablet. XD.



No 10K noooo, 100K perdon :oops: me equivoque al escribir...
 
Última edición:
Probemos este codigo para el nuevo esquema:

Version 3.0
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=45;     //frecuencia minima de corte  en Hz
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
const int  OF=2;        // segundos fuera de frecuencia

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 VW=0;
 long TO=0;  
 output_low(pin_a1);
 output_high(pin_a4);
 while (VW<Vmin&&TO<=T_Auto) 
 {VW=Read_Adc();delay_ms(1);TO++;}
  output_low(pin_a4);
  if (VW>=Vmin)
  {output_low(pin_a2);RPM=True;}
  else
  {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;  
  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_high(pin_a1);

  delay_ms(100); //este es el retardo de inicio al encender el pic en milisegundos 
    
  while (true) 
   {VD=freqcount();
    if (VD<=FMin||VD>=FMax) 
    {if (RPM==True) 
     {if (led==1) output_low(pin_a1); else output_float(pin_a1);
      COF++;
      if (COF>=OF) {Turn_Off();COF=0;}  
     } 
    }  
    else 
    {COF=0;
     if (RPM==False) 
      {if (VD>=FTyp-1&&VD<=FTyp+1)Turn_On();}
     else	
      {VD=Read_Adc();
      if (VD>=VMin&&VD<=VMax) output_low(pin_a1); else output_high(pin_a1);}
     }
    } 
  }
en ese ya no hace reintentos de conexion, es permanente.

en el T_Auto es es tiempo que va a mantener activo el campo hasta que llegue a los 220V para conectar al regulador , si no llega a los 220V se desconecta y reintenta cada segundo mientras que este en frecuencia.
 
Última edición:
Que bueno papirrin muchas gracias (y) (y) !!!! Se me ocurre pensar en esto,(pienso y escribo): de esta misma manera que estamos tomando desde la remanencia para leer la señal ,atraves de la resist de 200k y el zener no se podra hacer algo parecido para alimentar al pic ???
O de alguna manera que el pic comience alimentandose desde la remanencia y cuando detecte cierta tension se desconecte de esta y se conecte por ejemplo ........del zener de 20v del regulador ???
Capaz que estoy diciendo cualquier cosa eh ja ja:LOL: pero recien se me ocurrió :confused:
PD: disculpame no te quiero cansar con este tema eh ,pero se me ocurren cosas ja ja !!!!
 
Última edición:
pues seria cuestion que probaramos hacerlo pero con el Zener de 20V no se puede porque apenas tiene unos 20mA menos lo que consume el circuito del regulador

deja hacer calculos y ponemos otra fuentecita con otro zener a ver que pasa.

me avisas si funciono la 3.0
 
Recien vengo de hacer pruebas y te cuento , ayer cuando hice la prueba para comprobar si detectaba la frecuencia ,como el primer programa no funcionaba yo le fui cambiando la resist de 200k hasta que llegue a una de 10k , despues cuando me pasaste el programa que si funcionó, yo me habia olvidado de cambiarle la resist y quedó la 10k puesta y por eso funciono ,hoy cuando llegue al taller y la vi ,la cambien por la de 200k y volvi a probar con el programa de ayer pero no la detectaba ,asi que fui bajando y recien detecta frecuencia con 87k .Bueno sabia que era arriesgado probar el programa 3.0 con esta resist pero igual lo probe y no funcionó , no hizo nada solo queda prendido el led rojo desde el principio, pareceria ser que no detecta la frecuencia .
 
No no fue error mio, reemplace la de 200k por una de 10k y por eso ayer funciono la que subi el video , hoy volvi a hacer la prueba con la de 200k y no funciono,con 200k no detecta frecuencia ( siempre hablando del programa de prueba del post# 310) recien detecta frecuencia con una de 87k,en vez de la de 200k.
Y recien ahi probe el programa de la version 3.0 pero no funcionó
 
Pero pusiste la de 100k entre el pin 2 y tierra?
La de 200k se puede bajar mientras no caliente la resistencia ni el zener ahora hago los calculos para estar seguro de cuanto es la potencia con la de 87k

Antes de probar la 3.0 debemos estar seguros que funciona bien en lo teorico y practico lo de la frecuencia sino solo vamos a estar adivinando
 
Última edición:
Arriba