Tabla de contenido:

Cargador de batería inteligente basado en microcontrolador: 9 pasos (con imágenes)
Cargador de batería inteligente basado en microcontrolador: 9 pasos (con imágenes)

Video: Cargador de batería inteligente basado en microcontrolador: 9 pasos (con imágenes)

Video: Cargador de batería inteligente basado en microcontrolador: 9 pasos (con imágenes)
Video: Reparación cargador de notebook sin voltaje de Delta Electronics 2024, Mes de julio
Anonim
Cargador de batería inteligente basado en microcontrolador
Cargador de batería inteligente basado en microcontrolador
Cargador de batería inteligente basado en microcontrolador
Cargador de batería inteligente basado en microcontrolador
Cargador de batería inteligente basado en microcontrolador
Cargador de batería inteligente basado en microcontrolador

El circuito que está a punto de ver es un cargador de batería inteligente basado en ATMEGA8A con corte automático. Se muestran diferentes parámetros a través de una pantalla LCD durante los diferentes estados de carga. Además, el circuito emitirá un sonido a través de un zumbador al completar la carga.

Construí el cargador básicamente para cargar mi batería de iones de litio de 11.1v / 4400maH. El firmware está escrito básicamente para cargar este tipo de batería en particular. Puede cargar su propio protocolo de carga para satisfacer sus necesidades de cargar otros tipos de baterías.

Como saben, los cargadores de baterías inteligentes están fácilmente disponibles en los mercados. Pero como soy un entusiasta de la electrónica, siempre es preferible que construya el mío propio en lugar de comprar uno que tenga funciones estáticas / inmutables. En este módulo, tengo planes de actualizar en el futuro, así que he dejado espacio al respecto.

Cuando compré por primera vez mi batería de iones de litio de 11.1v / 2200mah anterior, busqué cargadores de batería de bricolaje con control inteligente en Internet, pero encontré recursos muy limitados, así que para entonces, hice un cargador de batería basado en LM317 y funcionó Realmente bien para mí. Pero como mi batería anterior se agotó con el tiempo (sin ningún motivo), compré otra batería de iones de litio de 11.1v / 4400mah. Pero esta vez, la configuración anterior fue inadecuada para cargar mi nueva batería. requisito, estudié un poco en la red y pude diseñar mi propio cargador inteligente.

Estoy compartiendo esto porque creo que hay muchos aficionados / entusiastas que son realmente apasionados por trabajar en electrónica de potencia y microcontroladores y también necesitan construir un cargador inteligente propio.

Echemos un vistazo rápido a cómo cargar una batería de iones de litio.

Paso 1: Protocolo de carga para una batería de iones de litio

Para cargar la batería de iones de litio, se deben cumplir ciertas condiciones, si no las mantenemos, la batería estará subcargada o se incendiará (si está sobrecargada) o se dañará permanentemente.

Hay un sitio web muy bueno para saber todo lo necesario sobre los diferentes tipos de baterías y, por supuesto, conoces el nombre del sitio web si estás familiarizado con el trabajo con baterías… Sí, estoy hablando de batteryuniversity.com.

Aquí está el enlace para conocer los detalles necesarios para cargar una batería de Li-ion.

Si eres lo suficientemente perezoso para leer todas esas teorías, la esencia es la siguiente.

1. La carga completa de una batería de iones de litio de 3.7v es de 4.2v. En nuestro caso, la batería de iones de litio de 11.1v significa una batería de 3 x 3.7v. Para una carga completa, la batería debe alcanzar los 12.6v pero por razones de seguridad, nosotros lo cargará hasta 12.5v.

2. Cuando la batería está a punto de alcanzar su carga completa, entonces la corriente consumida por la batería del cargador cae hasta un 3% de la capacidad nominal de la batería. Por ejemplo, la capacidad de la batería de mi paquete celular es 4400mah. Entonces, cuando la batería esté completamente cargada, la corriente consumida por la batería se alcanzará como casi el 3% -5% de 4400ma, es decir, entre 132 y 220ma. Para detener la carga de manera segura, la carga se detendrá cuando la corriente consumida descienda por debajo 190ma (casi el 4% de la capacidad nominal).

3. El proceso de carga total se divide en dos partes principales 1-Corriente constante (modo CC), 2-Voltaje constante (modo CV). (También hay un modo de carga superior, pero no lo implementaremos en nuestro cargador como el cargador notificará al usuario sobre la carga completa mediante una alarma, luego la batería debe desconectarse del cargador)

Modo CC -

En el modo CC, el cargador carga la batería con una tasa de carga de 0.5c o 1c. ¿Ahora qué diablos es 0.5c / 1c? será 2200ma y 1c será 4400ma de corriente de carga. 'c' significa tasa de carga / descarga. Algunas baterías también admiten 2c, es decir, en modo CC, puede configurar la corriente de carga hasta 2x la capacidad de la batería, ¡pero eso es una locura!

Pero para estar seguro, elegiré una corriente de carga de 1000ma para una batería de 4400mah, es decir, 0.22c. En este modo, el cargador controlará la corriente consumida por la batería independientemente del voltaje de carga. Es decir, el cargador mantendrá 1A de corriente de carga aumentando / disminuyendo el voltaje de salida hasta que la carga de la batería alcance los 12.4v.

Modo CV -

Ahora que el voltaje de la batería llega a 12.4v, el cargador mantendrá 12.6 voltios (independientemente de la corriente consumida por la batería) en su salida. Ahora el cargador detendrá el ciclo de carga dependiendo de dos cosas. Si los voltajes de la batería cruzan 12.5v. y también si la corriente de carga cae por debajo de 190ma (4% de la capacidad nominal de la batería como se explicó anteriormente), entonces el ciclo de carga se detendrá y sonará un zumbador.

Paso 2: Esquema y explicación

Ahora echemos un vistazo al funcionamiento del circuito. El esquema se adjunta en formato pdf en el archivo BIN.pdf.

El voltaje de entrada del circuito puede ser de 19/20 V. He usado un cargador de computadora portátil antiguo para obtener 19 V.

J1 es un conector de terminal para conectar el circuito a la fuente de voltaje de entrada. Q1, D2, L1, C9 está formando un convertidor reductor. ¿Ahora qué diablos es eso? Este es básicamente un convertidor reductor de CC a CC. En este tipo del convertidor, puede lograr el voltaje de salida deseado variando el ciclo de trabajo. Si desea saber más acerca de los convertidores buck, visite esta página. pero, para ser franco, son totalmente diferentes de la teoría. Para evaluar los valores adecuados de L1 & C9 para mis requisitos, tomó 3 días de prueba y error. Si va a cargar diferentes baterías, entonces es posible que estos valores vayan a cambiar.

Q2 es el transistor controlador para el mosfet de potencia Q1. R1 es una resistencia de polarización para Q1. Alimentaremos la señal pwm en la base de Q2 para controlar el voltaje de salida. C13 es una tapa de desacoplamiento.

Ahora, la salida se alimenta a Q3. Se puede hacer una pregunta: "¿Cuál es el uso de Q3 aquí?". La respuesta es bastante simple, actúa como un simple interruptor. Siempre que mediremos el voltaje de la batería, apagaremos Q3 para desconectar la salida de voltaje de carga del convertidor reductor. Q4 es el controlador para Q3 con una resistencia de polarización R3.

Tenga en cuenta que hay un diodo D1 en la ruta. ¿Qué está haciendo el diodo aquí en la ruta? Esta respuesta también es muy simple. Siempre que el circuito se desconecte de la alimentación de entrada mientras la batería está conectada a la salida, la corriente de la batería se fluye en la ruta inversa a través de los diodos del cuerpo del MOSFET Q3 y Q1 y, por lo tanto, U1 y U2 obtendrán el voltaje de la batería en sus entradas y encenderán el circuito desde el voltaje de la batería. Para evitar esto, se usa D1.

La salida del D1 se alimenta a la entrada del sensor de corriente (IP +). Este es un sensor de corriente de base de efecto Hall, es decir, la parte de detección de corriente y la parte de salida están aisladas. batería Aquí R5, RV1, R6 están formando un circuito divisor de voltaje para medir el voltaje de la batería / voltaje de salida.

El ADC del atmega8 se usa aquí para medir el voltaje y la corriente de la batería. El ADC puede medir un máximo de 5v. Pero mediremos un máximo de 20v (con algo de margen). Para reducir el voltaje al rango de ADC, un 4: Se usa 1 divisor de voltaje. El potenciómetro (RV1) se usa para ajustar / calibrar con precisión. Lo discutiré más adelante. C6 es la tapa de desacoplamiento.

La salida del sensor de corriente ACS714 también se alimenta al pin ADC0 de atmega8. A través de este sensor ACS714, mediremos la corriente. Tengo una placa de ruptura de pololu de la versión 5A y funciona muy bien. cómo medir la corriente.

El LCD es un lcd normal de 16x2. El lcd utilizado aquí está configurado en modo de 4 bits ya que el número de pines de atmega8 es limitado. RV2 es el potenciómetro de ajuste de brillo para el LCD.

El atmega8 tiene una frecuencia de reloj de 16 mhz con un cristal externo X1 con dos tapas de desacoplamiento C10 / 11. La unidad ADC del atmega8 se alimenta a través del pin Avcc a través de un inductor de 10uH. C7, C8 son tapas de desacoplamiento conectadas a Agnd. Colóquelas como lo más cerca posible de Avcc y Aref correspondientemente al hacer PCB. Tenga en cuenta que el pin Agnd no se muestra en el circuito. El pin Agnd se conectará a tierra.

He configurado el ADC del atmega8 para usar Vref externo, es decir, suministraremos el voltaje de referencia a través del pin Aref. La razón principal detrás de esto es lograr la máxima precisión de lectura posible. El voltaje de referencia interno de 2.56v no es tan grande en avrs. Es por eso que lo configuré externamente. Ahora aquí hay algo para notar. El 7805 (U2) está suministrando solo el sensor ACS714 y el pin Aref de atmega8. Esto es para mantener una precisión óptima. El ACS714 proporciona un voltaje de salida estable de 2.5v cuando no hay flujo de corriente a través de él. Pero, por ejemplo, si el voltaje de suministro del ACS714 se reducirá (digamos 4.7v), entonces el voltaje de salida sin corriente (2.5v) también se reducirá y creará una lectura de corriente incorrecta / errónea Además, como estamos midiendo el voltaje con respecto a Vref, entonces el voltaje de referencia en Aref debe estar libre de errores y ser estable. Por eso necesitamos un 5v estable.

Si alimentamos el ACS714 y Aref desde el U1 que está suministrando el atmega8 y el lcd, entonces habría una caída de voltaje sustancial en la salida de U1 y la lectura de amperios y voltaje sería errónea. Es por eso que U2 se usa aquí para eliminar el error. suministrando 5v estables solo a Aref y ACS714.

Se presiona S1 para calibrar la lectura de voltaje. S2 está reservado para uso futuro. Puede agregar / no agregar este botón según su elección.

Paso 3: Funcionamiento…

Marcha…
Marcha…
Marcha…
Marcha…
Marcha…
Marcha…

Al encenderse, el atmega8 encenderá el convertidor reductor dando una salida de 25% pwm en la base del Q2. A su vez, Q2 activará Q1 y se iniciará el convertidor reductor. Q3 se apagará para desconectar la salida del convertidor reductor. y la batería. El atmega8 lee el voltaje de la batería a través del divisor de resistencia. Si no hay batería conectada, entonces el atmega8 muestra un mensaje "Inserte la batería" a través de la pantalla lcd de 16x2 y espera la batería. Si luego se conecta una batería, el atmega8 comprobará el voltaje. Si el voltaje es inferior a 9v, el atmega8 mostrará "Batería defectuosa" en la pantalla lcd de 16x2.

Si se encuentra una batería con más de 9v, entonces el cargador entrará primero en modo CC y encenderá el mosfet Q3 de salida. El modo de carga (CC) se actualizará para mostrar inmediatamente. Si el voltaje de la batería se encuentra más de 12.4v, entonces el mega8 saldrá inmediatamente del modo CC y entrará en modo CV. Si el voltaje de la batería es menor a 12.4v, entonces el mega8 mantendrá una corriente de carga de 1A aumentando / disminuyendo el voltaje de salida del convertidor reductor variando el ciclo de trabajo del pwm El sensor de corriente ACS714 leerá la corriente de carga. El voltaje de salida reductor, la corriente de carga y el ciclo de trabajo PWM se actualizarán periódicamente en la pantalla lcd.

El voltaje de la batería se comprobará apagando Q3 después de cada intervalo de 500 ms. El voltaje de la batería se actualizará inmediatamente en la pantalla lcd.

Si el voltaje de la batería supera los 12,4 voltios durante la carga, el mega8 dejará el modo CC y entrará en el modo CV. El estado del modo se actualizará inmediatamente en la pantalla lcd.

Entonces el mega8 mantendrá el voltaje de salida de 12.6 voltios variando el ciclo de trabajo del buck. Aquí se verificará el voltaje de la batería después de cada intervalo de 1 s. Tan pronto como el voltaje de la batería sea superior a 12.5v, entonces se verificará Si la corriente consumida es inferior a 190 mA. Si se cumplen ambas condiciones, el ciclo de carga se detendrá apagando permanentemente Q3 y sonará un zumbador al encender Q5. También mega8 mostrará "Carga completa" a través de la pantalla LCD.

Paso 4: Piezas necesarias

Piezas necesarias
Piezas necesarias

A continuación se enumeran las piezas necesarias para completar el proyecto. Consulte las hojas de datos para conocer los pines. Solo se proporciona el enlace de la hoja de datos de piezas cruciales.

1) ATMEGA8A x 1. (hoja de datos)

2) Sensor de corriente ACS714 5A de Pololu x 1 (recomiendo encarecidamente usar el sensor de Pololu ya que son los más precisos entre todos los demás sensores que he usado. Puede encontrarlo aquí). El pinout se describe en la imagen.

3) IRF9540 x 2. (hoja de datos)

4) 7805 x 2 (recomendado de Toshiba genuinespare ya que dan la salida de 5v más estable). (Hoja de datos)

5) 2n3904 x 3. (hoja de datos)

6) 1n5820 schottky x 2. (hoja de datos)

7) LCD 16x2 x 1. (hoja de datos)

8) inductor de potencia 330uH / 2A x 1 (recomendado por coilmaster)

9) Inductor 10uH x 1 (pequeño)

10) Resistencias - (Todas las resistencias son del tipo 1% MFR)

150R x 3

680R x 2

1k x 1

2k2 x 1

10k x 2

22k x 1

Maceta de 5k x 2 (tipo de montaje en pcb)

11) Condensadores

Nota: No usé C4. No es necesario usarlo si está usando una fuente de alimentación para computadora portátil / fuente de alimentación regulada como fuente de alimentación de 19v

100 uF / 25 v x 3

470 uF / 25 v x 1

1000uF / 25v x 1

100n x 8

22p x 2

12) Interruptor de empuje momentáneo de montaje en PCB x 2

13) Zumbador de 20 V x 1

14) Conector de bloque de terminales de 2 pines x 2

15) Gabinete (Usé un gabinete como este). Puedes usar lo que quieras.

16) Fuente de alimentación para computadora portátil de 19 V (modifiqué una fuente de alimentación para computadora portátil HP, puede usar cualquier tipo de fuente de alimentación que desee. Si desea construir una, visite mis instrucciones).

17) Disipador de calor de tamaño mediano para U1 y Q1. Puedes usar este tipo o puedes consultar las imágenes de mi circuito, pero asegúrate de usar el disipador de calor para ambos.

18) Conector banana - Hembra (Negro y Rojo) x 1 + Macho (Negro y Rojo) (dependiendo de su necesidad de conectores)

Paso 5: Tiempo para calcular ……

Cálculo de medición de voltaje:

El voltaje máximo que mediremos usando el atmega8 adc es 20v. Pero el adc de atmega8 puede medir un máximo de 5v. Entonces, para hacer 20v dentro del rango de 5v, aquí se usa un divisor de voltaje 4: 1 (como 20v / 4 = 5v). Entonces podríamos implementar eso simplemente usando dos resistencias, pero en nuestro caso, agregué una olla entre dos resistencias fijas para que podamos ajustar manualmente la precisión girando la olla. La resolución del ADC es de 10 bits, es decir, el adc representará el 0v a 5v como 0 a 1023 números decimales o 00h a 3FFh. ('h' significa números hexadecimales). La referencia se establece en 5v externamente a través del pin Aref.

Entonces, el voltaje medido = (lectura adc) x (Vref = 5v) x (factor divisor de resistencia, es decir, 4 en este caso) / (lectura adc máxima, es decir, 1023 para adc de 10 bits).

Supongamos que obtenemos una lectura adc de 512, entonces el voltaje medido será -

(512 x 5 x 4) / 1023 = 10v

Cálculo de la medición actual:

El ACS714 dará una salida estable de 2.5v en el pin de salida cuando no fluya corriente desde IP + hacia IP-. Dará 185mv / A sobre 2.5v, es decir, si la corriente de 3A fluye a través del circuito, el acs714 dará 2.5v + (0.185 x 3) v = 3.055v en su pin de salida.

Entonces, la fórmula de medición actual es la siguiente:

Corriente medida = (((lectura adc) * (Vref = 5v) / 1023) -2.5) /0.185.

por ejemplo, la lectura de adc es 700, entonces la corriente medida será - (((700 x 5) / 1023) - 2.5) /0.185 = 4.98A.

Paso 6: el software

El software está codificado en Winavr usando GCC. He modularizado el código, es decir, he creado diferentes bibliotecas como la biblioteca adc, la biblioteca lcd, etc. La biblioteca adc contiene los comandos necesarios para configurar e interactuar con el adc. funciones para manejar el lcd de 16x2. También puede usar lcd_updated _library.c ya que la secuencia de inicio del lcd se modifica en esta biblioteca. Si desea usar la biblioteca actualizada, cámbiele el nombre por lcd.c

El archivo main.c contiene las funciones principales. El protocolo de carga para iones de litio está escrito aquí. Defina ref_volt en main.c midiendo la salida de U2 (7805) con un multímetro preciso para obtener lecturas precisas como los cálculos. se basan en ella.

Simplemente puede grabar el archivo.hex directamente en su mega8 para evitar el headche.

Para aquellos que quieran escribir otro protocolo de carga, he puesto suficientes comentarios por los cuales incluso un niño puede entender lo que está sucediendo en cada ejecución de línea. Solo tiene que escribir su propio protocolo para diferentes tipos de batería. ion de diferente voltaje, solo tiene que cambiar los parámetros (aunque esto no se ha probado para otro tipo de batería de iones de litio / otro tipo, debe resolverlo usted mismo).

Recomiendo encarecidamente no construir este circuito, si este es su primer proyecto o si es nuevo en microcontroladores / electrónica de potencia.

He subido todos y cada uno de los archivos en su formato original, excepto el Makefile, ya que crea problemas para abrir. Lo he subido en formato.txt. Simplemente copie el contenido y péguelo en un nuevo Makefile y compile todo el proyecto. Voila …. está listo para grabar el archivo hexadecimal.

Paso 7: Suficiente de teoría … … vamos a armarlo

Suficiente de teoría … … vamos a Buld It
Suficiente de teoría … … vamos a Buld It
Basta de teoría … vamos a Buld It
Basta de teoría … vamos a Buld It
Basta de teoría … vamos a Buld It
Basta de teoría … vamos a Buld It
Basta de teoría … vamos a Buld It
Basta de teoría … vamos a Buld It

Aquí están las fotos de mi prototipo, desde el breadboarded hasta el finalizado en pcb. Revisa las notas de las fotos para saber más. Las fotos están ordenadas en serie de principio a fin.

Paso 8: Antes del primer ciclo de carga …….¡Calibre

Antes de cargar una batería con el cargador, primero debe calibrarla; de lo contrario, no podrá cargar la batería / sobrecargarla.

Hay dos tipos de calibración 1) Calibración de voltaje. 2) Calibración actual. Los pasos son los siguientes para calibrar.

Primero, mida el voltaje de salida del U2. Luego defínalo en main.c como ref_volt. El mío era 5.01. Cámbielo según su medición. Este es el paso principal necesario para la calibración de voltaje y corriente. Para la calibración de corriente, nada De lo contrario es necesario Todo se encargará del propio software

Ahora que ha quemado el archivo hexadecimal después de definir el voltio de referencia en main.c, apague la potencia de la unidad.

. Ahora mida el voltaje de la batería que cargará usando un multímetro y conecte la batería a la unidad.

Ahora presione el botón S1 y manténgalo presionado y encienda el circuito mientras se presiona el botón. Después de un breve retraso de aproximadamente 1 s, suelte el botón S1. Tenga en cuenta que la unidad no entrará en modo de calibración si enciende el circuito primero, luego presione S1.

Ahora puede ver en la pantalla que el circuito ha entrado en modo de calibración. Se mostrará un "modo cal" en la pantalla LCD junto con el voltaje de la batería. Ahora haga coincidir el voltaje de la batería que se muestra en la pantalla LCD con la lectura del multímetro girando la olla Una vez que haya terminado, presione el interruptor S1 nuevamente, manténgalo presionado durante aproximadamente un segundo y suéltelo. Saldrá del modo de calibración. Reinicie nuevamente el cargador apagándolo y encendiéndolo.

El proceso anterior también se puede realizar sin una batería conectada. Debe conectar una fuente de alimentación externa al terminal de salida (J2). Después de entrar en el modo de calibración, calibre con el potenciómetro. Pero esta vez primero desconecte la fuente de alimentación externa y luego presione S1 para salir del modo de calibración. Es necesario desconectar primero la fuente de alimentación externa para evitar cualquier tipo de mal funcionamiento de las unidades.

Paso 9: Encendido después de la calibración … ahora está listo para rockear

Encendido después de la calibración … ahora está listo para rockear
Encendido después de la calibración … ahora está listo para rockear
Encendido después de la calibración … ahora está listo para rockear
Encendido después de la calibración … ahora está listo para rockear
Encendido después de la calibración … ahora está listo para rockear
Encendido después de la calibración … ahora está listo para rockear

Ahora que la calibración está completa, ahora puede comenzar el proceso de carga. Primero conecte la batería, luego encienda la unidad. El cargador se encargará del reposo.

Mi circuito está 100% funcionando y probado, pero si nota algo, por favor hágamelo saber, también no dude en contactarnos para cualquier consulta.

Edificio feliz.

Rgds // Sharanya

Recomendado: