quisiera saber como leer el nivel de mi bateria con la que alimento mi propio Arduino.
tengo el Arduino conectado a usb, y tengo conectada tmb la pila segun yo no debe hacer caso alguno a lo que entregue la usb por el codigo que yo tengo diganme si tengo bien el codigo o como se deberia hacer una Buena lectura de de pila cuando esa misma pila esta alimentando a mis Sistema pls
byte bateria=A0;
byte referente=A1;
void setup() {
Serial.begin(9600);
}
void loop()
{
float voltaje_referencia=analogRead(referente); //le meto los 3,3v desde su pin
float voltaje_bateria=analogRead(bateria); //esta leyendo desde el divisor de voltaje
voltaje_referencia=(3.30/voltaje_referencia); //voltaje de referencia es 3.3v
voltaje_bateria=(voltaje_referencia*voltaje_bateria);
voltaje_bateria*=4.90;//(3.9k+1k)/1k - multiple BATT voltage by the voltage divider to get actual system voltage
Serial.println(voltaje_bateria);
}
La batería debe superar la tensión de trabajo de tu arduino de manera que siempre necesitas un divisor de tensión para leer el valor de la batería.
Busca en Google: Divisor Resistivo y podrás calcular el que necesitas para tu caso.
Usa resistencias en el orden de 10k para la que este entre el pin A0 y GND y el otro valor saldrá del cálculo.
estoy usando un divisor de voltaje en el cua de +3.9k -1KGDN
en el cual mando 1k a tierra y 3.9 le meto el voltaje total de la pila y entre ese divisor lo leo en el pin A0, existe alguna restriccion de voltaje para las lecturas analogicas
Por supuesto.. todo lo que supere 3.3V es una restricción.
Haz las cuentas
Vout = Vin (1k/4k9)
si despejas obtienes Vin = Vout4k9/1k = 4.9Vout
Como tu Vout no puede superar 3.3V que supongo tiene que ver con el mismo tema que abriste antes y vuelves a abrir a hora. (cosa mal hecha porque no estba solucionado ocmo bien dijiste antes).
Tendrás un Vin = 3.3*4.9 = 16.17V
Si en lugar de 3.3V fuera 5V tu tensión máxima modifica 3.3 por 5 y obtienes la VinMAX que puedes conectar.
Esto solo sirve para
Como verás Rbotton = 1k Rtop = 3k9
Si estan al revés las cuentas cambian.
la parte alta osea en los 3.9 le meto el voltaje RAW (el pin VIN de Arduino)
en la parte baja en los 1k lo mando a GND
entre 3.9 y 1k ese divisor lo mando a una entrada analogical
el v PIN o RAW ES MI PILA EL MISMO VOLTAJE DE MI PILA.
entonces no entendi muy bien compa;ero que me quizo dar a entender, si estoy hacienda mal la medicion
o estoy hacienda mal mi divisor
si suponiendo que mi pila esta entre rangos de 3.2-4.2 me explico, ese voltaje es mi RAW porque mi Arduino lo alimento con la misma pila que quiero medir
Edito toda la respuesta porque revisé el esquema y es como dices, 1k abajo y 3k9 arriba, asi que el cálculo que te hice estaba bien
De modo que con Vin de 16.17V y una REF de 3.3V como dice tu sketch tendrás 3.3V en fondo de escala para ese valor.
Para 3.7V de tu batería de LiPO tendras aprox 3.3 = 16.17 x Adc/1023 => 3.3 x 1023/16.17 = 208 cuentas.