Para la pregunta principal, en cuanto a cómo medir el voltaje de una batería, el método más simple es usar uno de los pines ADC en el arduino.
Si está proporcionando 5v de la batería (poco probable), puede ejecutar el + directamente a uno de los pines analógicos, y usar analogRead (): cada incremento en el valor (de 0-1023) representará 4.9mV. Entonces multiplique el valor de lectura por .0049 para obtener los voltios leídos.
Si está ejecutando a más de 5v (más probable), puede usar un circuito divisor de voltaje (consulte: http://en.wikipedia.org/wiki/Voltage_divider ) para llevar el voltaje que está enviando a la entrada analógica a <= 5v. Si está ejecutando 12V, querrá dividir el voltaje en aproximadamente 1/3. Luego, después de multiplicar el valor de ADC, multiplique por 3 para obtener el voltaje real.
Por lo tanto, si usa 12V y un divisor de voltaje de 1/3:
#define BAT_PIN 14
float read_batt_volts(void) {
int val = analogRead(BAT_PIN);
float volts = (float) val * (float) 0.0049 * (float) 3;
return(volts)
}
!do