¿Cómo medir el voltaje de la batería mientras se usa?

0

Tengo un Arduino que está siendo alimentado por una batería. Me gustaría controlar el nivel de carga de esta batería. Normalmente, esto es muy fácil, simplemente verifique el voltaje en los terminales + y - de la batería desconectada y luego use una tabla de comparación apropiada para averiguar a qué% de carga corresponde este voltaje. Puedo medir fácilmente el voltaje con el pin analógico en el Arduino, pero hay un problema obvio: el Arduino funciona con esta misma batería que estoy tratando de medir, lo que hará que se pierdan las lecturas.

Entonces, ¿cómo puedo manejar esto?

gracias

    
pregunta Askerman

5 respuestas

1

Para medir la batería correctamente, no debe cargarla en el momento de la medición.

Si sabe que su Arduino estará en un estado de espera más bajo en ciertos momentos, consumirá solo una corriente muy pequeña que no debería cargar la batería tanto que el voltaje La caída es significativa. Lo que luego podría hacer es "recordar" este voltaje usando un condensador.

Esto es lo que podrías intentar:

simular este circuito : esquema creado usando CircuitLab

El divisor resistivo cargará el capacitor a una cierta fracción del voltaje de la batería, el capacitor hará que el voltaje en Ain cambie con una cierta constante de tiempo (aproximadamente 1 segundo en mi ejemplo).

Cuando se necesita una medición de batería, debe hacerse primero después de que el Arduino haya estado en modo de espera / espera durante algún tiempo. Tan pronto como el Arduino comience a consumir corriente, el voltaje en Ain comenzará a disminuir lentamente, por lo que cuanto más espere, mayor será el error. Pero si puede realizar la medición lo suficientemente rápido, el voltaje en Ain no debería haber cambiado aún para que se pueda determinar el voltaje de la batería "sin carga".

    
respondido por el Bimpelrekkie
1

El negativo de la batería se adjuntará al común del microcontrolador. No hay problema allí.

El positivo de la batería generalmente será más alto que el voltaje de alimentación del chip debido al regulador de voltaje incorporado. Por lo tanto, será mayor que el máximo voltaje de entrada ADC.

Necesitará un divisor de voltaje entre la batería y el ADC. Establezca la relación de modo que, a la tensión máxima de la batería, la salida del divisor esté dentro del rango ADC.

    
respondido por el Transistor
0

Compense la resistencia interna y obtenga el voltaje de la batería descargada.

¿Cómo puedes hacer eso?

Además, mide la corriente de su carga con un circuito de detección de corriente del lado alto.

Si conoce la resistencia interna, puede calcular la caída de voltaje basándose en la corriente. Pero generalmente la resistencia interna depende de varios factores, por lo que no la conocemos muy bien.

Solución: mida la resistencia interna.

¿Cómo puedes hacer eso?

Aplique una corriente conocida adicional y mida la diferencia de voltaje. Con eso obtienes la resistencia interna y con la corriente medida desde arriba, obtienes el voltaje real de la batería.

    
respondido por el Arsenal
0

Además de lo que dijo Transistor, que es correcto, no debería preocuparse por el consumo de Arduino, lo que hace que las lecturas sean imprecisas.

Puede cambiar la relación de voltaje a% de carga un poco debido a la resistencia interna de la batería, pero la tabla de comparación puede tenerlo en cuenta fácilmente ya que el consumo de corriente de arduino es estable. Por lo tanto, no lo hará más impreciso que otras discrepancias debido al envejecimiento de la batería, la temperatura ambiente y otros factores externos.

Entonces, a menos que su placa Arduino cambie de forma aleatoria y continua entre el consumo de 5 mA a 1A, no hay razón para preocuparse por esto.

    
respondido por el dim
0

Puede medir la batería de voltaje con referencia de voltaje. Necesita una referencia de voltaje con una referencia más baja de la que espera en la batería (por ejemplo, 1.235 V). Luego mides este voltaje con tu ADC. Con esta medida ahora puede calcular el voltaje de referencia del ADC, que debería ser igual al voltaje de la batería.

Vb = 1024 / ADC * Vr

Por ejemplo, si mide 300 con su ADC y su voltaje de referencia Vr es 1.235 V, entonces el voltaje de su batería Vb es 4.2 V.

Otra forma similar, pero más compleja es usar el divisor de voltaje en la batería y usar el voltaje interno de arduino para referencia de ADC.

    
respondido por el Rokta

Lea otras preguntas en las etiquetas