22 votos

Medir el voltaje de la batería de iones de litio (por lo tanto, la capacidad restante)

Con lo que estoy trabajando: Estoy ejecutando mi placa Arduino de fabricación propia (en el sentido de que utilizo el cargador de arranque de Arduino y el editor de código) a 3,3V, y alimentado desde una batería de iones de litio, que se carga por USB mediante un IC cargador de Microchip correspondiente.

Lo que intento conseguir: Quiero medir la capacidad de la batería una vez cada minuto aproximadamente. Tengo una pantalla LCD conectada, así que la idea es que la configuración general me permita saber cómo está la batería en un momento dado. La hoja de datos de la batería tiene una curva de voltaje versus nivel de descarga, y así midiendo el voltaje de la batería, puedo estimar la capacidad restante (¡muy aproximadamente pero suficiente para mí!).

Lo que hice:

  • (EDIT: Se han actualizado los valores de las resistencias y se ha añadido el interruptor P-MOSFET según las sugerencias de @stevenvh y @Jonny).

  • Conecté un divisor de voltaje desde la batería V_plus, con la "porción" más grande que va a un pin de lectura analógica (es decir, ADC) en el chip Arduino/Atmega.

  • El divisor es de 33 KOhm a 10 KOhm, lo que permite medir hasta 4,1 voltios como máximo de la batería de iones de litio desde mi microcontrolador de nivel 3,3V.

  • Además, utilizando uno de los pines de E/S conectado a un MOSFET de canal n, puedo conmutar la corriente a través del divisor sólo cuando necesite la medición.

  • Aquí hay un esquema aproximado (actualizado por segunda vez en base a las sugerencias de @stevenvh y @Nick):

enter image description here

Mi pregunta:

  • ¿Cómo es mi configuración actual?

  • Mis únicas limitaciones son: (1) Me gustaría hacer una medición aproximada de la capacidad de la batería basada en la lectura de la tensión, como se ha descrito anteriormente. (2) Me gustaría evitar que el divisor de tensión interfiera con la lectura de la presencia de la batería de mi IC de carga (en mi configuración original, el divisor a veces causó el IC para leer mal la presencia, incluso cuando la batería estaba ausente).

1 votos

"He utilizado valores de resistencia grandes". El pin de entrada puede tener una corriente de fuga, un valor típico en el peor de los casos es de 1 uA. Con una corriente baja a través del divisor esto puede distorsionar la lectura.

0 votos

Así que quiero una corriente baja a través del divisor pero lo suficientemente alta como para que esté al menos un orden de magnitud por encima de la corriente de fuga máxima.

0 votos

O utilizar un FET para encender y apagar el divisor, como sugerí en esta respuesta a una pregunta similar.

15voto

lillq Puntos 4161

enter image description here

Esto parece ser muy similar al esquema de Nick, probablemente estaba ocupado dibujándolo cuando lo publicó :-).

Primero por qué no puedes usar el N-FET en el lado alto: necesita un voltaje de puerta unos cuantos voltios más alto que la fuente, y los 4,2 V es todo lo que tienes, nada más alto, así que no funcionará.

Tengo un valor más alto para el pull-up, aunque un valor de 100 kΩ también servirá. 10 kΩ provocará una corriente extra innecesaria de 400 µA cuando estés midiendo. No es el fin del mundo, pero es 1 resistencia en ambos casos, así que por qué no usar un valor más alto.

Para los MOSFETs, hay una gran variedad de piezas para elegir, dado que los requisitos no son tan estrictos; puedes considerar las más baratas como, por ejemplo Si2303 para el canal P y BSS138 para el canal N.

0 votos

Gracias por la respuesta formal. Creo que se me ocurren varios usos para esta combinación en particular. He actualizado mi esquema en la Pregunta, basado en esto. Y agradezco la explicación del N-FET.

0 votos

¿Qué recomendaría como ejemplo de un MOSFET de canal N adecuado (idealmente del tipo SMD) para utilizar aquí? El IRF530 parece ser grande y no demasiado barato tampoco. (Para el canal P, veo que el Si2303 viene en SMD, así que ese ya está solucionado).

1 votos

@Inga - No necesitas corriente, así que la resistencia de encendido no es tan importante. Sólo hay que mirar la tensión de umbral de la puerta: debería estar encendida a 3,3 V, pero incluso entonces no tiene que hundir ninguna corriente, y entonces hay mucho donde elegir. El BSS138 es uno de los más baratos que pude encontrar, y servirá bien.

8voto

Nick Alexeev Puntos 20994

@Inga. Esto es más un comentario que una respuesta. Pero me gustaría poner una foto, así que lo pongo como respuesta.

Su microcontrolador (uC) se alimenta con +3,3V. El drenaje del P-MOSFET propuesto puede ser tan alto como +4,1V. Tal y como está dibujado actualmente, una señal lógica de +3,3V no podrá apagar completamente el P-MOSFET. Q6 en el esquema de abajo forma una salida de drenaje abierto, que es tolerante a +4.1V.

C14 disminuye la impedancia, que su A/D verá.

enter image description here

[...] el voltaje de la batería (por lo tanto, la capacidad restante)

Es posible que la detección de la tensión de la batería no sea una forma precisa de detectar la capacidad restante. En los equipos portátiles (teléfonos móviles, ordenadores portátiles), la capacidad de la batería se estima midiendo la corriente que entra y sale de la misma. Hay docenas de circuitos integrados especializados en medir el combustible de la batería ( bq27200 por ejemplo), que ayudan en esta tarea.

¿Por qué no un único MOSFET de canal N en el lado de baja y el divisor de dos resistencias en el lado superior?
[de un comentario más abajo]

Un interruptor de lado bajo tiene problemas cuando la tensión de la batería (V murciélago ) es mayor que la tensión de alimentación del microcontrolador (V cc ). Cuando el interruptor del lado bajo está apagado, el extremo de tierra del divisor de tensión flota, el divisor ya no divide, el voltaje completo de la batería aparece en el pin ADC del microcontrolador. Esto puede dañar el uC. También creará una vía de fuga a través de la cual se descargará la batería.
Se requiere un interruptor de lado alto cuando V murciélago > V cc .

1 Usaré V cc para abreviar, pero esta discusión se aplica a V dd , AV cc , AV dd también. En caso de duda, busque en una hoja de datos, por supuesto.

0 votos

¡Gracias Nick! Eso tiene sentido, y he actualizado el esquema (El indicador de combustible es una opción, pero también estoy tratando de aprender algo de electrónica básica y experimentar, de ahí la idea del divisor de voltaje)

0 votos

¿Por qué no un solo Mosfet N en el lado bajo y el divisor de dos resistencias en el lado superior? No veo por qué es necesario utilizar un Mosfet N para conducir el Mosfet P

1 votos

@Luis he editado la respuesta y he añadido la respuesta a tu comentario.

5voto

steve Puntos 28

Ad.A: Creo que es justo utilizar un simple divisor de tensión para detectar la tensión de la batería. Aunque debería elegir cuidadosamente la resistencia. La impedancia interna de las entradas de tu ADC es de 100k, según el Hoja de datos de ATmega328 . Véase la "Figura 23-8. Circuito de entrada analógica". Si su divisor tiene una impedancia comparable a la entrada del ADC, el circuito de entrada del ADC se comportará básicamente como otro nodo del divisor. Puede dar lugar a desviaciones en las lecturas del ADC.

El uso de un divisor con hasta 10k a través de los rieles sería lo suficientemente bajo como para ignorar la impedancia de entrada del ADC, mientras que utiliza sólo 410µA. Si eso es demasiado para tu aplicación, puedes por supuesto elegir resistencias más grandes, pero ten en cuenta que el ADC está ahí y está conectado a Vcc/2.

0 votos

Esa explicación tiene sentido. Seguro que 0,4 mA no es tanto. Sólo intentaba ser lo más idealista posible :) ¿Tienes alguna idea de por qué tener este divisor allí podría estar afectando a la lectura de mi cargador IC de si hay una batería?

0 votos

Mi suposición sería que todavía hay una conexión entre el pin positivo de la batería donde está el divisor, y los +5V del usb. No conozco tu circuito en particular, pero estoy seguro de que puedes deducir qué va dónde si echas un vistazo al Esquema de Arduino .

0 votos

Estoy seguro de que si sigues la idea de stephenh de utilizar un FET para conectar/desconectar el divisor cuando sea necesario, todo irá de maravilla. Los MOSFETs tienen resistencias totalmente despreciables para tu divisor. Quizás necesites otro ADC para controlar si el USB está conectado o no.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X