30 may 2007

LipoChecker - el revisor de Lipos


Un circuíto muy simple para, en unos pocos segundos, decirte en casa o en el campo de vuelo si la lipo está cargada, a media carga, etc, y si tiene los elementos sin balancear.

He buscado algo similar y no lo he encontrado, ni siquiera a nivel comercial -aunque no digo que no exista-. Sí que hay circuitos mas simples que te dicen si la lipo esta cargada o no, pero no detectan medias cargas, ni tampoco te dicen si hay elementos sin balancear (excepto que un elemento esté totalmente descargado y los otros no).

De momento solo para 3 elementos (que al menos para mí es el mas popular de los formatos de Lipo) este es un extremadamente barato y sencillo chequeador de lipos. Cumple las siguientes funciones:

* Indica el voltage por celda, con precisión de 0.1V.

* Comprueba que no estén desequilibradas.

* Comprueba que el voltage de celda no sea superior a 4.2v ni inferior a 3V.

* Calibración automática

Para mantener el diseño compacto y barato, utilizo un simple led para dar información. Esto tiene el inconveniente (habitual ya en muchos variadores, pero en forma de pitidos) que hay que codificar la información de una forma un poco peculiar (por ejemplo, en los variadores tienes que escuchar una serie de pitiditos determinados para configurar una cosa u otra, reconozco que es un poco rollo, pero es lo que hay si quieres hacerlo barato).

Este es el circuito:
Y tiene ésta pinta una vez montado, he soldado un adaptador para las típicas lipos de Himodel o las Hextronic, pero se puede soldar obviamente cualquier conector acorde con las lipos usadas.


El micro usado es el PIC12F683 de Microchip, una pequeña maravilla de 2KB de pequeño tamaño (DIP8) que tiene los ADCs necesarios para éste circuito y a la vez reloj interno.

Para programarlo, mira el post en ésta web sobre el programador JDM, aunque se puede usar cualquier otro que sea compatible con éste PIC. La ROM la envío por email. No la pongo directamente aquí porque no quiero dar facilidades a copias comerciales de la misma, no es que el circuito ni la ROM sean muy complejas, pero ya que le he dedicado un rato a hacerlo, me niego a dar facilidades a que alguna marca lo copie sin mas y lo venda. Así que si quieres la ROM mándame un email indicando explícitamente que no lo usarás con fines comerciales sino privados, y te lo mando por email totalmente gratis. No envío el código fuente.

También tengo por aquí algún excedente de componentes necesarios para montar el circuíto, incluído el PIC ya programado, si te interesa mándame un email y hablamos de cómo mandártelo. Lo que no hago, por falta de tiempo, es montar circuítos.

¿Cómo funciona?

Pues básicamente te indica en el led los siguientes estados, en un bucle infinito que se repite mientras la lipo esté conectada:

Indicación de inicio de comprobación: 2 flashes muy cortos, medio segundo, 2 flashes muy cortos otra vez.

* Si alguna celda (no te dice cual) no está balanceada (>0.1v de diferencia con las otras): 30 flashes muy cortos, indicando "peligro".

* Si alguna celda tiene una tensión demasiado elevada (>4.2v): LED encendido continuo por 5 segundos.

* Si alguna celda tiene una tensión demasiado baja (menor de 3.0v): LED con dos flashes de 0.5 segundos, luego uno largo de 5 segundos.

* Si ninguna de las comprobaciones de arriba falla, entonces da la lectura, en un flash de 1 segundo por cada 0.1V, de la celda lipo comparada con 3V. Es decir, si la celda lipo tiene 3.2V, entonces 2 flashes, si tiene 3.8V, 8 flashes, y si tiene 4.2V justos, 12 flashes. Es mas sencillo usarlo que explicarlo.

Estoy preparando un LipoCheckerPlus que usa un LCD para dar la lectura, comprueba hasta 6S, y tiene mas florituras, pero necesita mas componentes y es obviamente mas caro.

Calibrado

Como podéis ver, el circuíto utiliza un integrado de referencia de tensión de precisión, que da exactamente 1.235V, de forma que el micro lo usa como tensión estable de referencia para los ADC que establecen cuánto tiene exactamente cada celda. El problema de la precisión viene de las resistencias principalmente, que con un 5-15% de tolerancia típica pueden variar demasiado nuestras medidas y el micro puede informar de un desbalanceo o tensión demasiado alta o baja simplemente porque las resistencias no dividen el voltage correctamente. Asi que no hay nada mas apropiado que dejar que el micro se calibre solo, para que sin importar la tolerancia de las resistencias, de una lectura positiva. No entro aquí en la tolerancia adicional por temperatura o edad de los componentes, porque la precisión que necesitamos (0.01V sobre 3V) es muy baja e inmune a estas variables para componentes estándar.

¿que pasa si no calibro? Pues nada, no es imprescindible, simplemente tu chequeo de lipos será menos fiable. Si no está calibrado, podría ser que a 3.1V te indique demasiado baja, o a 4.1V demasiado alta, etc, ya que la lectura del ADC del PIC tendrá unas referencias inexactas.

El proceso de calibrado es el siguiente (hace falta un polímetro):

1) Carga una lipo de 3S completamente, asegúrate que está equilibrada.
2) Comprueba con el polímetro que cada celda tiene 4.2V. Para que la calibración funcione, es importante que la variación entre celdas sea muy baja, idealmente menor qu 0.01V, y que la tensión se ajuste dentro de éste margen a los 4.2V. Es decir, nos valen 4.21V o 4.19V, pero ya algo como 4.14V no nos vale, puesto que afectará a la precisión posterior del sistema. Ver variante 2b) mas abajo.
3) Con una lipo en éstas condiciones, conectarla al circuíto y esperar que pasen unos segundos para asegurar una lectura inicial.
4) Quitar el Jumper de calibración JP2.
5) Esperar a que el LED indique fin de calibración: Destello de 1 sg, seguido de dos muy muy cortos, y luego uno largo de 10 sg. En ese caso, volver a enchufar el JP2 y ya podemos considerar el circuíto completamente calibrado. No necesitaréis repetir este proceso nunca mas, excepto si sospecháis que el circuito no está leyendo las tensiones correctamente (usad un polímetro en ese caso para comprobarlo en la lipo).

Variantes

*) Tengo por casa LM385 de una subasta de eBay, asi que puedo enviarlos si alguien no los consigue en su tienda habitual. No obstante, hay otra opción: el LM385 es para dar una buena precisión y estabilidad a la lectura, pero se puede obtener un resultado aceptable usando una resistencia variable de unos 10K que sustituya a R2-VR1, a condición de que con un polímetro obtengas en GP0 una tensión de 1.2V. Con esta variante, te ahorras el LM385 pero dependes de la precisión del regulador 7805, que la verdad no es muy buena.

*) 2b - Si no consigues que tu cargador de lipos / equilibrador te deje la lipo con una tensión clavada a 4.2V, puedes fabricarte un puente de resistencias ajustables que den esa tensión. No lo explico más por lo obvio, pero en cualquier caso se trata de conseguir, en el momento del calibrado, una tensión de 4.2V lo mas precisa posible por celda.

No hay comentarios: