A ver si entendí bien el planteo.
Tienes una batería de 3.7V
Conectas la referencia del AD a los 3.3V de una fuente que no es de referencia porque se trata de la salida del FTDI (muy muy mal). Usa la referencia de 1.1V que esa si es precisa.
Pero sigamos dejando de lado el error cometido.
si 3.3V será tu máximo del ADC o sea 1023 y debes leer 3.7V con ese divisor resistivo.
Ahora usas un divisor resistivo formado por 1k y 3.9K => Vout = Vin*3.9/4.9
despejando... y simplificando para aliviar trabajo al pobre arduino.
void setup() {
// lo que corresponda a tu setup
analogReference(EXTERNAL); // Donde ADREF esta conectado a 3.3V
}
void loop() {
// tu código
}
float get_battery_level() {
float rawVoltage;
//rawVoltage = 4.9 * 3.3 * analogRead(A0)/ (3.9*1023.0); // En lugar de A0 usa el pin que corresponda
rawVoltage = 0.004053 * analogRead(A0); // máximo 4.14 Voltios para 1023
return rawVoltage;
}