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

10

Con qué estoy trabajando: estoy ejecutando mi placa Arduino de fabricación propia (en el sentido de que uso el cargador de arranque y el editor de código Arduino) a 3.3 V, y funciona con una batería de ión de litio , que se carga mediante USB mediante un IC del cargador de Microchip correspondiente.

Lo que estoy tratando de lograr: quiero medir la capacidad de la batería una vez por minuto aproximadamente. Tengo una pantalla LCD adjunta, 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 en función del nivel de descarga, por lo que al medir el voltaje de la batería, puedo estimar la capacidad restante (de manera bastante aproximada, ¡pero suficiente para mí!).

Lo que hice:

  • (EDITAR: Se actualizaron los valores de la resistencia y se agregó el interruptor P-MOSFET en base a las sugerencias de @stevenvh y @ Jonny).

  • Conecté un divisor de voltaje de la batería V_plus, y la "parte" más grande iba 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 máximo de la batería de ión de litio de mi microcontrolador de nivel de 3.3V.

  • Además, al usar uno de los pines de E / S conectados a un MOSFET de canal n, puedo cambiar la corriente a través del divisor solo cuando necesito la medición.

  • Aquí hay un esquema aproximado (actualizado por segunda vez según las sugerencias de @stevenvh y @Nick):

Mi pregunta:

  • ¿Cómo está mi configuración actual?

  • Mis únicas restricciones son: (1) Me gustaría hacer una medición aproximada de la capacidad de la batería basada en la lectura de voltaje, como se describe anteriormente. (2) Me gustaría evitar que el divisor de voltaje interfiera con la lectura de la batería de mi IC de carga (en mi configuración original, el divisor a veces hizo que el IC no leyera la presencia incluso cuando la batería estaba ausente).

pregunta boardbite

3 respuestas

10

EstoparecesermuysimilaralesquemadeNick,probablementeestabaocupadodibujándolocuandopublicó:-).

Primero,porquénopuedesusarelN-FETenelladoalto:necesitaunvoltajedecompuertaaunospocosvoltiosmásaltoquelafuente,y4.2Vestodoloquetienes,nadamás,porloquenofuncionará.

Tengounvalormásaltoparaelpull-up,aunqueunvalorde100kΩtambiénservirá.10kΩcausaráunacorrienteadicionalinnecesariade400µAcuandoestémidiendo.Noeselfindelmundo,peroes1resistenciaenamboscasos,asíque¿porquénousarunvalormásalto?

ParalosMOSFET,hayunavariedaddepartesparaelegir,dadoquelosrequisitosnosontanestrictos;puedeconsiderarlosmáseconómicoscomo,porejemplo, Si2303 para el canal P y BSS138 para el canal N.

    
respondido por el stevenvh
6

@Inga. Esto es más un comentario que una respuesta. Pero me gustaría publicar una foto, así que la publico como respuesta.

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

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

  

[...]voltajedelabatería(porlotanto,capacidadrestante)

Esposiblequeladeteccióndelvoltajedelabateríanoseaunaformaprecisadedetectarlacapacidadrestante.Enequiposportátiles(teléfonoscelulares,computadorasportátiles),lacapacidaddelabateríaseestimaalmedirlacorrientedentroyfueradelabatería.Haydocenasdecircuitosintegradosdemedidoresdecombustibledebatería( bq27200 , por ejemplo), que ayudan con esta tarea.

  

¿Por qué no un solo MOSFET de canal N en el lado bajo y el divisor de dos resistencias en el lado superior?
  [de un comentario abajo]

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

    
respondido por el Nick Alexeev
4

Ad.A: Creo que es justo usar un divisor de voltaje simple para detectar el voltaje de la batería. Aunque, debes elegir cuidadosamente la resistencia. La impedancia interna de sus entradas de ADC es de 100kΩ, según la hoja de datos de ATmega328 . Consulte "Figura 23-8. Circuito de entrada analógica". Si su divisor tiene una impedancia comparable a la entrada de ADC, los circuitos de entrada de ADC básicamente se comportarán como otro nodo en el divisor. Podría darle compensaciones en las lecturas de 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 usa solo 410µA. Si eso es demasiado para su aplicación, por supuesto puede elegir resistencias más grandes, pero tenga en cuenta que el ADC está ahí y está conectado a Vcc / 2.

    
respondido por el Jonny B Good

Lea otras preguntas en las etiquetas