Con lo que estoy trabajando: estoy ejecutando mi placa Arduino hecha a sí misma (en el sentido de que uso el cargador de arranque Arduino y el editor de código) a 3.3V, y alimentada por una batería de iones de litio, que se carga por USB mediante un Microchip correspondiente cargador IC.
Lo que estoy tratando de lograr: quiero medir la capacidad de la batería una vez cada minuto más o menos. Tengo una pantalla LCD conectada, por lo que la idea es que la configuración general me permita saber cómo está funcionando la batería en un momento dado. La hoja de datos de la batería tiene una curva de voltaje versus nivel de descarga, por lo que al medir el voltaje de la batería, puedo estimar la capacidad restante (¡aproximadamente, pero suficiente para mí!).
Lo que hice:
(EDITAR: valores de resistencia actualizados y interruptor P-MOSFET agregado según las sugerencias de @stevenvh y @ Jonny).
Conecté un divisor de voltaje de la batería V_plus, con la "porción" más grande yendo 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 un máximo de 4.1 voltios de la batería de iones de litio de mi microcontrolador de nivel de 3.3V.
Además, usando uno de los pines de E / S conectados a un MOSFET de n canales, 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 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 en función de la lectura de voltaje, como se describió anteriormente. (2) Me gustaría evitar que el divisor de voltaje interfiera con la lectura de la presencia de la batería en mi IC de carga (en mi configuración original, el divisor a veces causaba que el IC no leyera la presencia incluso cuando la batería estaba ausente).
Respuestas:
Esto parece ser muy similar al esquema de Nick, probablemente estaba ocupado dibujándolo cuando publicó :-).
Primero, por qué no puede usar el N-FET en el lado alto: necesita un voltaje de puerta unos voltios más alto que la fuente, y los 4.2 V es todo lo que tiene, nada más alto, por lo que no funcionará.
Tengo un valor más alto para el pull-up, aunque un valor de 100 kΩ también lo hará. 10 kΩ causará una corriente adicional innecesaria de 400 µA cuando esté midiendo. No es el fin del mundo, pero es una resistencia en ambos casos, entonces, ¿por qué no usar un valor más alto?
Para los MOSFET, hay una variedad de piezas para elegir dado que los requisitos no son tan estrictos; puede considerar los de bajo costo como, por ejemplo, Si2303 para el canal P y BSS138 para el canal N.
fuente
@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) está alimentado 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 abierta, que es tolerante a + 4.1V.
C14 reduce la impedancia, que verá su A / D.
Puede encontrar que detectar el voltaje de la batería no es una forma precisa de detectar la capacidad restante. En equipos portátiles (teléfonos celulares, computadoras portátiles), la capacidad de la batería se estima midiendo la corriente de entrada y salida de la batería. Hay docenas de circuitos integrados de medidores de combustible de batería ( bq27200 , por ejemplo), que ayudan con esta tarea.
Un interruptor del lado bajo tiene problemas cuando el voltaje de la batería (V bat ) es mayor que el voltaje de suministro del microcontrolador (V cc ). Cuando el interruptor del lado bajo está apagado, el extremo de tierra 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 el uC. También creará un camino de fuga a través del cual la batería se descargará.
Se requiere un interruptor de lado alto cuando V bat > V cc .
1 Usaré V cc para abreviar, pero esta discusión se aplica también a V dd , AV cc , AV dd . En caso de duda, busque en una hoja de datos, por supuesto.
fuente
Anuncio 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 ADC es de 100kΩ, de acuerdo con la hoja de datos ATmega328 . Consulte "Figura 23-8. Circuitos de entrada analógica". Si su divisor tiene una impedancia comparable a la entrada de ADC, la circuitería de entrada de ADC básicamente se comportará como otro nodo en el divisor. Podría darle compensaciones en las lecturas de ADC.
Usar 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 se 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á allí y está conectado a Vcc / 2.
fuente