Eleccion de led y carga de bateria

Si te encuentras diseñando, desarrollando o construyendo un proyecto y tienes complicaciones, en este sub-foro podemos ayudarte. Aquí ingresa con los temas que no puedas ubicar dentro de otros sub-foros, por ejemplo, Radio, Microcontroladores, Software, etc. Cuando algo no funciona, de este sub-foro sale en marcha.

Moderador: HJ

Re: Eleccion de led y carga de bateria

Notapor elgarbe » Sab May 04, 2013 8:27 pm

Perfecto, se va entendiendo la idea. Para desconectar de forma automática la batería del cargador puedes hacerlo como lo hiso Mario en el artículo que te pasé. Ahí se ajustan dos humbrales, el de arranque para el cargador y el de parada del cargador. Parece un circuito complejo pero no lo es, es muy sensillo.
Si te sientes más comodo con un PIC (como yo) puedes usar el 12F675. Te paso algunas partes del ciruito que yo use para la luz de emergencia y el código del PIC. Si te gusta tratamos de modificar dicho circuito:

Imagen

En el ves una salida del pic para manejar un relé que habilita al cargador. La carga se realiza con una resistenca en serie para limitar la corriente. Como explicó Mario en su artículo. Luego un divisor resistivo para medir la tension de la batería. Finalmente unos reguladores para obtener las tensiones necesarias. Eso lo tiene que reveer a tu gusto.

El código era más o menos el siguiente:

Código: Seleccionar todo
/*
Firmware para la luz autónoma
30/02/2013

Cuando la tension de la batería es menor que 12,6V enciendo el cargador
Cuando la tension de la batería llega a 14,2V apago el cargador
Cuando la tension de la batería llega a 10,8V empiezo con el parpadeo
*/

#include <12F675.h>

#device adc=10

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES INTRC_IO                 //Internal RC Osc NO I/O
#FUSES NOMCLR                   //Master Clear pin disabled

#use delay(clock=4000000)

#define G_MOS   PIN_A0         //Gate del MOSFET
#define CARGA   PIN_A1         //Rele "Cargar"
#define LED_R   PIN_A2         //LED Rojo estado Carga
#define V_BAT   PIN_A4         //Tensión de la Batería
#define LED_V   PIN_A5         //LED Verde estado Carga

#define V_CARGADA  892      //14,2V. Probado.
#define V_VACIO    800      //13,1. Probado
#define V_CARGAR   768      //12,6. Probado.
#define V_BLINK    650      //10,56V Probado

#use fast_io(A)

#byte PORTA = 0x05
#byte TRISA = 0x85

long lADC=0;        //Valor leido del ADC

//*****************************************************************************
//                            COMIENZA EL PROGRAMA PRINCIPAL
//*****************************************************************************
void main()
{
   TRISA=0b00010000;      //RA0 a RA3 y RA5 como Salidas, RA4 Entrada

   setup_adc(ADC_CLOCK_INTERNAL);
   //Voy a usar el pin 3 (AN3) para la Batería, la referencia es GND y +5V
   setup_adc_ports(sAN3 | VSS_VDD);
   //Dentro de los puertos usados (solo el 0) elijo el canal 3 para convertir
   set_adc_channel(3);


   output_low(G_MOS);      //Apago el MOSFET que da GND al circuito
   output_low(LED_R);      //Apago el LED Rojo
   output_low(LED_V);      //Apago el LED Verde
   output_low(CARGA);      //Desactivo el Relé de Carga

   disable_interrupts(INT_TIMER0);
   disable_interrupts(GLOBAL);

   lADC=read_adc(ADC_START_AND_READ);
   delay_ms(5);
   if(lADC > V_CARGAR){
      output_high(LED_V);
   }

   delay_ms(1000);
   output_high(G_MOS);      //Activo el MOSFET que da GND al circuito

   do{
      delay_ms(1000);
      lADC=read_adc(ADC_START_AND_READ);
      delay_ms(5);

      if(lADC > V_CARGADA){   //La batería acaba de cargarse por completo
         output_high(LED_V);
         output_low(LED_R);
         output_low(CARGA);
      }
      if((lADC < V_VACIO) && (lADC > V_CARGAR)){   //La bateria esta cargada en vacio
         output_high(LED_R);
         output_high(LED_V);
         output_high(CARGA);
      }
      if((lADC < V_CARGAR) && (lADC > V_BLINK)){   //La bateria esta descargada
         output_high(LED_R);
         output_low(LED_V);
         output_high(CARGA);
      }
      if(lADC < V_BLINK){      //La batería esta en su mínimo
         output_low(G_MOS);
         delay_ms(10000);
         output_high(G_MOS);
      }
   }while(TRUE);
}


Elimina lo que no sirve para tu aplicacion, creo que la idea te va servir.

Saludos!

PD: No te olvides de compartir como quedó tu efecto dimmer! y, por supuesto, comparte algún video de esa mesa!!! el efecto "espejo infinito" es muy llamativo, hace una semana me hice cortar el vidrio y el espejo para provar de armar uno...
A palabras producidas por mentes inoperantes órganos auditivos en posicion de relax

You can be anything you want to be just turn yourself into anything you think that you could ever be - Freddie Mercury
Avatar de Usuario
elgarbe
 
Mensajes: 261
Registrado: Jue Mar 21, 2013 8:27 pm
Ubicación: Villa Ramallo - Buenos Aires - Argentina

Re: Eleccion de led y carga de bateria

Notapor soymoe » Sab May 04, 2013 8:51 pm

Switchxxi escribió:Lo que no entiendo es que pretendes abaratar costos usando un micro para una tarea que se puede hacer con lógica convencional ? :?
- Javier -

Tenes razon.
Voy a ver el tema del a fuente de corriente y el comparador. Gracias
Avatar de Usuario
soymoe
 
Mensajes: 36
Registrado: Dom Abr 21, 2013 3:10 pm
Ubicación: Esperanza

Anterior

Volver a Problemas con mis Desarrollos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados