2 votos

Calcular el porcentaje de la batería con un Arduino

Estoy haciendo un pequeño proyecto utilizando un cargador Lipoly y una batería de 2500mAh 3,7V, ambos de Adafruit. Estoy tratando de mostrar el porcentaje que le queda a la batería. Para ello estoy usando este pequeño sketch :

long readVcc() {
  long result;
  // Read 1.1V reference against AVcc
  ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  delay(2); // Wait for Vref to settle
  ADCSRA |= _BV(ADSC); // Convert
  while (bit_is_set(ADCSRA,ADSC));
  result = ADCL;
  result |= ADCH<<8;
  result = 1126400L / result; // Back-calculate AVcc in mV
  return result;
}

He visto en esa página que el voltaje mínimo es de 3.0V así que uso eso para obtener mis valores :

  float volt = (float)readVcc()/1000;
  float percent = ((volt-3)/0.7)*100;

Cuando visualizo mis valores, me muestra que el porcentaje restante es de -4%. ¿Debo preocuparme o estoy haciendo algo mal al calcular?

2voto

Kamil Puntos 3745

Creo que tu cálculo está bien.

Prueba:

Si el resultado de la conversión de su ADC es 1024 (escala completa de 10 bits) - cuando AVcc = referencia

result = 1126400L / 1024 = 1100;

Si el resultado de la conversión de su ADC es 512 (media escala de 10 bits) - cuando AVcc = referencia / 2

result = 1126400L / 512 = 2200;

Su resultado porcentual es de -4% porque la tensión es inferior a 3V.

percent = ((volt-3)/0.7)*100
-4 = ((volt-3)/0.7)*100
-4/100 = (volt-3)/0.7
-0.04*0.7 = volt - 3
-0.28 + 3 = volt
 2.972 = volt

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