Lucario448:
Se me ocurre que vayas acumulando la medida de los mA en intervalos regulares (preferiblemente cada segundo). Y ya sea en tiempo real o al final de la prueba, divides el acumulado entre 3600 para así obtener los mAh.Si float no fuera tan limitado como acumulador (o al menos eso me temo), se podría mejorar la precisión del cálculo muestreando cada décima de segundo. De hacerlo así, se le agregaría un cero más al divisor.
Gracias por la respuesta!
Entonces lo que me faltaría seria sumarle el valor a la variable mah en cada vuelta de loop y esa suma dividirala en cada vuelta por 3600?
Podría ser algo así? Corregime si entendí mal
void current_capacity()
{
time= (hour() * 3600) + (minute() * 60) + (second()); // Convierto la el tiempo en segundos para sumarlo
if (millis() - t_muestreo > 1000)
{
mah+= time * (amps * 1000); // Capacidad = tiempo transcurrido * I.
mah/= 3600;
t_muestreo = millis();
}
}