Lectura analogica de la carga que le queda a una pila

Asumiendo que:

  • El voltaje de referencia del ADC es de 5v exactos.
  • La batería está a 3.7v exactos.
  • La entrada REFERENCE_3V3 recibe 3.3v exactos.
  • La precisión es de 7 decimales.

Los resultados teóricos deberían ser los siguientes:

float get_battery_level()
{
  float operatingVoltage = analogRead(REFERENCE_3V3); // 675

  float rawVoltage = analogRead(BATT); // 757

  operatingVoltage = 3.30 / operatingVoltage; // 0.0048889

  rawVoltage = operatingVoltage * rawVoltage; // 3.7009951; hasta que parece estar bien.

  rawVoltage *= 4.90; // 18.1348760; esto para qué?

  return(rawVoltage); // 18.1348760; no es lo que esperabas verdad?

}

Esto aclara tu duda?