Tabla de contenido:
- Suministros
- Paso 1: teoría de funcionamiento
- Paso 2: esquema
- Paso 3: diseño de PCB
- Paso 4: Ensamblaje de PCB
- Paso 5: Código
Video: Arduino LTC6804 BMS - Parte 2: Tablero de equilibrio: 5 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
La parte 1 está aquí
Un sistema de gestión de baterías (BMS) incluye funciones para detectar parámetros importantes del paquete de baterías, incluidos los voltajes de las celdas, la corriente de la batería, las temperaturas de las celdas, etc. Si alguno de estos está fuera de un rango predefinido, el paquete se puede desconectar de su carga o cargador., o se puede tomar otra acción apropiada. En un proyecto anterior (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/) hablé de mi diseño de BMS, que se basa en el chip Monitor de batería multicelda LTC6804 de tecnología lineal y un microcontrolador Arduino. Este proyecto amplía el proyecto BMS agregando el equilibrio del paquete de baterías.
Los paquetes de baterías se construyen a partir de celdas individuales en configuraciones en paralelo y / o en serie. Por ejemplo, un paquete 8p12s se construiría usando 12 conjuntos conectados en serie de 8 celdas conectadas en paralelo. Habría un total de 96 celdas en el paquete. Para un mejor rendimiento, las 96 celdas deben tener propiedades muy similares; sin embargo, siempre habrá alguna variación entre las celdas. Por ejemplo, algunas celdas pueden tener menor capacidad que otras celdas. A medida que se carga el paquete, las celdas de menor capacidad alcanzarán su voltaje máximo seguro antes que el resto del paquete. El BMS detectará este alto voltaje y cortará la carga adicional. El resultado será que gran parte del paquete no está completamente cargado cuando el BMS interrumpe la carga debido al voltaje más alto de la celda más débil. Una dinámica similar puede ocurrir durante la descarga, cuando las celdas de mayor capacidad no pueden descargarse completamente porque el BMS desconecta la carga cuando la batería más débil alcanza su límite de voltaje bajo. Por lo tanto, el paquete es tan bueno como sus baterías más débiles, como una cadena tan fuerte como su eslabón más débil.
Una solución a este problema es utilizar una tabla de equilibrio. Si bien existen muchas estrategias para equilibrar el paquete, las tarjetas de equilibrio 'pasivas' más simples están diseñadas para purgar parte de la carga de las celdas de voltaje más alto cuando el paquete se acerca a la carga completa. Si bien se desperdicia algo de energía, el paquete en su conjunto puede almacenar más energía. El sangrado se realiza disipando algo de energía a través de una combinación de resistencia / interruptor controlada por un microcontrolador. Este instructable describe un sistema de equilibrio pasivo compatible con el arduino / LTC6804 BMS de un proyecto anterior.
Suministros
Puede solicitar el PCB de la placa de equilibrio de PCBWays aquí:
www.pcbway.com/project/shareproject/Balance_board_for_Arduino_BMS.html
Paso 1: teoría de funcionamiento
La página 62 de la hoja de datos del LTC6804 trata sobre el equilibrio de celdas. Hay dos opciones: 1) usar los MOSFETS de canal N internos para purgar la corriente de las celdas altas, o 2) usar los MOSFETS internos para controlar los interruptores externos que transportan la corriente de purga. Utilizo la segunda opción porque puedo diseñar mi propio circuito de purga para manejar una corriente más alta que la que se podría hacer con los interruptores internos.
Los MOSFETS internos están disponibles a través de los pines S1-S12, mientras que se accede a las celdas mediante los pines C0-C12. La imagen de arriba muestra uno de los 12 circuitos de purga idénticos. Cuando se enciende Q1, la corriente fluirá de C1 a tierra a través de R5, disipando parte de la carga en la celda 1. Seleccioné una resistencia de 6 ohmios y 1 vatio, que debería poder manejar varios miliamperios de corriente de purga. Se agregó un LED para que el usuario pueda ver qué celdas se están equilibrando en un momento dado.
Los pines S1-S12 son controlados por el CFGR4 y los primeros 4 bits de los grupos de registros CFGR5 (consulte las páginas 51 y 53 de la hoja de datos del LTC6804). Estos grupos de registros se establecen en el código de Arduino (que se describe a continuación) en la función balance_cfg.
Paso 2: esquema
El esquema del tablero de equilibrio BMS se diseñó con Eagle CAD. Es bastante sencillo. Hay un circuito de purga para cada segmento de la serie de paquetes de baterías. Los interruptores están controlados por señales del LTC6804 a través del encabezado JP2. La corriente de purga fluye desde el paquete de baterías a través del cabezal JP1. Tenga en cuenta que la corriente de purga fluye al siguiente segmento inferior del paquete de baterías, por lo que, por ejemplo, C9 se desangra en C8, etc. El símbolo del escudo Arduino Uno se coloca en el esquema para el diseño de PCB descrito en el Paso 3. Se proporciona una imagen de mayor resolución en el archivo zip. La siguiente es la lista de piezas (por alguna razón, la función de carga de archivos de Instructables no me funciona …)
Cantidad Valor Paquete del dispositivo Descripción de las piezas
12 LEDCHIPLED_0805 CHIPLED_0805 LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8, LED9, LED10, LED11, LED12 LED 12 BSS308PEH6327XTSA1 MOSFET-P SOT23-R Q1, Q2, Q3, Q4, Q5, Q8, Q9, Q10, Q11, Q12 Mosfet de canal P 2 PINHD-1X13_BIG 1X13-BIG JP1, JP2 PIN HEADER 12 16 R-US_R2512 R2512 R5, R7, R9, R11, R13, R15, R17, R19, R21, R23, R25, R27 RESISTOR, símbolo americano 12 1K R-US_R0805 R0805 R4, R6, R8, R10, R12, R14, R16, R18, R20, R22, R24, R26 RESISTOR, símbolo americano 12200 R-US_R0805 R0805 R1, R2, R3, R28, R29, R30, R31, R32, R33, R34, R35, R36 RESISTOR, símbolo americano
Paso 3: diseño de PCB
El diseño está determinado principalmente por el diseño del sistema BMS principal discutido en un instructivo separado (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/). Los encabezados JP1 y JP2 deben coincidir con los encabezados coincidentes en el BMS. Los Mosfets, las resistencias de purga y los LED están dispuestos de forma lógica en el escudo Arduino Uno. Los archivos Gerber se crearon utilizando Eagle CAD y los PCB se enviaron a Sierra Circuits para su fabricación.
El archivo adjunto "Gerbers Balance Board.zip.txt" es en realidad un archivo zip que contiene los Gerbers. Puede eliminar la parte.txt del nombre del archivo y luego descomprimirlo como un archivo zip normal.
Envíeme un mensaje si desea obtener una placa de circuito impreso, es posible que aún me quede algo.
Paso 4: Ensamblaje de PCB
Los PCB de la placa de equilibrio se soldaron a mano utilizando una estación de soldadura de temperatura controlada Weller WESD51 con una punta de "destornillador" de la serie ETB ET de 0,093 y una soldadura de 0,3 mm. Aunque las puntas más pequeñas pueden parecer mejores para trabajos complicados, no retienen el calor y, de hecho, dificultan el trabajo. Utilice un bolígrafo de flujo para limpiar las almohadillas de PCB antes de soldar. La soldadura de 0,3 mm funciona bien para soldar a mano piezas SMD. Coloque un poco de soldadura en una almohadilla y luego coloque la pieza con unas pinzas o un cuchillo x-acto y fije esa almohadilla. La almohadilla restante se puede soldar sin que la pieza se mueva. Asegúrese de no sobrecalentar la pieza o las almohadillas de la placa de circuito impreso. Debido a que la mayoría de los componentes son bastante grandes para los estándares SMD, la PCB es bastante fácil de ensamblar.
Paso 5: Código
El código completo de Arduino se proporciona en el instructable anterior vinculado anteriormente. Aquí llamaré su atención sobre la sección que controla el equilibrio celular. Como se mencionó anteriormente, S1-S12 son controlados por el CFGR4 y los primeros 4 bits de los grupos de registros CFGR5 en el LTC6804 (consulte las páginas 51 y 53 de la hoja de datos del LTC6804). La función de bucle del código Arduino detecta el segmento de paquete de batería de mayor voltaje y coloca su número en la variable cellMax_i. Si el voltaje de cellMax_i es mayor que CELL_BALANCE_THRESHOLD_V, el código llamará a la función balance_cfg (), pasando el número del segmento alto, cellMax_i. La función balance_cfg establece los valores del registro LTC6804 apropiado. Una llamada a LTC6804_wrcfg luego escribe estos valores en el IC, activando el pin S asociado con cellMax_i.
Recomendado:
Robot de equilibrio automático - Algoritmo de control PID: 3 pasos
Robot de autoequilibrio - Algoritmo de control PID: Este proyecto fue concebido porque estaba interesado en aprender más sobre los algoritmos de control y cómo implementar de manera efectiva bucles PID funcionales. El proyecto aún se encuentra en la fase de desarrollo ya que aún no se ha agregado un módulo Bluetooth que al
Tablero MXY - Tablero de robot de dibujo de trazador XY de bajo presupuesto: 8 pasos (con imágenes)
Tablero MXY - Tablero de robot de dibujo de plotter XY de bajo presupuesto: Mi objetivo era diseñar el tablero mXY para hacer que la máquina de dibujo del plotter XY sea de bajo presupuesto. Así que diseñé una placa que se lo pone más fácil a quienes quieran realizar este proyecto. En el proyecto anterior, mientras usaba 2 motores paso a paso Nema17, esta placa u
Tablero de luces o tablero de vidrio para bricolaje: 4 pasos
Tablero de luces o tablero de vidrio para bricolaje: se están produciendo muchas innovaciones en el sector de la educación. Enseñar y aprender a través de Internet es ahora algo cotidiano. La mayoría de las veces, los tutores en línea tienden a centrarse más en el contenido técnico, dejando a los espectadores desinteresados. Aprendizaje 3D
Creación de un robot de equilibrio automático Arduino controlado de forma remota: B-robot EVO: 8 pasos
Creación de un robot de equilibrio automático Arduino controlado de forma remota: B-robot EVO: ------------------------------------ -------------- ACTUALIZACIÓN: aquí hay una versión nueva y mejorada de este robot: ¡El B-robot EVO, con nuevas funciones! ------------ -------------------------------------- ¿Cómo funciona? B-ROBOT EVO es un control
Arduino - Balance - Robot de equilibrio - ¿Cómo hacer ?: 6 pasos (con imágenes)
Arduino - Balance - Robot de equilibrio | ¿Cómo hacer ?: En este tutorial aprenderemos cómo hacer un robot de equilibrio Arduino que se equilibra a sí mismo. Primero puedes ver el video tutorial de arriba