Controlar LM2576-ADJ con un PIC

Estoy probando esta función:
Código:
 void funcion(){ 
  if (input(pin_a6)==0){
      while(!input(PIN_a6));         
   output_HIGH(pin_b4);
 delay_ms(50);
 }
   if (input(pin_a6)==1){
      while(!input(PIN_a6));
   output_low(pin_b4);
   delay_ms(50);
  }
 }
 
Estoy probando esta función:
Código:
 void funcion(){ 
  if (input(pin_a6)==0){
      while(!input(PIN_a6));         
   output_HIGH(pin_b4);
 delay_ms(50);
 }
   if (input(pin_a6)==1){
      while(!input(PIN_a6));
   output_low(pin_b4);
   delay_ms(50);
  }
 }

lo estas haciendo mal, con esas sentencias al pulsar el botón encenderá, y al soltarla se apagara, prueba de esta forma:
Código:
 void funcion(){
 while(!input(PIN_A6)){                             
   output_toggle(PIN_B4);
   while(!input(PIN_A6));        
   }  
 }
 
Si ya me funciona solo tengo unos tildes en el programa que hicimos lo subo si alguien me puede dar una mano para ver porque se me tilda cuando activo el pulsador para que encienda el led por el pin b4 , gracias a todos por la ayuda
 

Adjuntos

  • voltimetro 4 lineas pulsadores.rar
    2.4 KB · Visitas: 27
Última edición:
Y tengo otro problema con mi fuente cuando la apagó y enciendo arranca al máximo de tensión y tendría que guardar el último valor en pantalla y cuando enciende mostrar ese otro problema más a resolver con su ayuda...
 
pusiste el on/off del regulador con un transistor no?

inicialo apagado cuan el pic arranque, y guarda el ultimo valor del pwm en la eeprom.. eso no es complicado..
 
Si lo puse con un transistor.
esto estuve pensando si conecto un pin x y coloco un diodo y un capacitor para aislarlo y coloco un capacitor mas grande en la alimentación del pic para que cuando se apague la fuente tarde un segundo para leer el pin x que si esta a cero grabe la memoria y como hago que cuando este a uno la lea?

void energia()
{
int16 cont;
if(input(pin_xx)==0){

cont++;
delay_ms(5);
if (cont >50){

write_eeprom(00,ciclo_activo ); // guardo el dato ciclo activo
delay_ms(50);
cont = 0;
}
ciclo_activo =read_eeprom(00); // paso el dato a la variable ciclo_activo
cont=0;
delay_ms(50);
establecer_ciclo(ciclo_activo);
}
 
Última edición:
Si lo puse con un transistor.
esto estuve pensando si conecto un pin x y coloco un diodo y un capacitor para aislarlo y coloco un capacitor mas grande en la alimentación del pic para que cuando se apague la fuente tarde un segundo para leer el pin x que si esta a cero grabe la memoria y como hago que cuando este a uno la lea?

void energia()
{
int16 cont;
if(input(pin_xx)==0){

cont++;
delay_ms(5);
if (cont >50){

write_eeprom(00,ciclo_activo ); // guardo el dato ciclo activo
delay_ms(50);
cont = 0;
}
ciclo_activo =read_eeprom(00); // paso el dato a la variable ciclo_activo
cont=0;
delay_ms(50);
establecer_ciclo(ciclo_activo);
}

Buenas
No se si ya solucionaste, pero te doy una idea en cuanto a la programación, esta bien la forma de guardar el ciclo activo en la eeprom(salvo lo de leer en pin por un segundo y luego guardar me parece mucho tiempo para el pic), en cuanto al leer la memoria y establecer el ciclo activo al encenderla yo lo pondría en el Main del porgrama.
Asi:
Código:
//Cabezera del programa
 int16 cont;  

void energia()   
{
if(input(pin_B7)==0){ 
cont++;
delay_ms(1);
if (cont >10) {
write_eeprom(00,ciclo_activo ); // guardo el dato ciclo activo
delay_ms(50);
cont = 0;             
               } 
                  } 
} 
void main()
{ 
ciclo_activo =read_eeprom(00);                   
    establecer_ciclo(ciclo_activo);

While(true){

codigos
}
}
 
Voy a probar ahora como conecto el pin para saber cuando está baja la tensión, yo pensaba un divisor resistivo para que leea el valor más bajo antes que se apague el pic

También podrías leer por por un puerto con adc y si el voltaje es menor, guarda en la memoria el ciclo activo.
en ese caso seria If (adc < 200) {write_eeprom(00,ciclo_activo )}
 
Última edición:
Si ya lo probé y funciona perfectamente bien coloque un diodo que me quita los 0,7 me falta estabilizar la medición del adc para el voltimetro y probar bien el lm2576 y ya quedo mi fuente, gracias a todos este proyecto bienes de mucho trabajo mio y de los integrantes del foro les debo un buen asado a todos........
 
Última edición:
Atrás
Arriba