Para a questão principal, sobre como medir a tensão de uma bateria, o método mais simples é usar um dos pinos ADC no arduino.
Se você estiver fornecendo 5v da bateria (improvável), poderá executar o + direto para um dos pinos analógicos e usar analogRead () - cada incremento no valor (de 0 a 1023) representará 4,9 mV. Portanto, multiplique o valor de leitura por 0,0049 para obter a leitura dos volts.
Se você estiver executando acima de 5v (mais provável), poderá usar um circuito divisor de tensão (consulte: http://en.wikipedia.org/wiki/Voltage_divider ) para aumentar a tensão que você está enviando para a entrada analógica. <= 5v. Se você estiver rodando 12V, convém dividir a tensão em aproximadamente 1/3. Depois de multiplicar o valor ADC, multiplique por 3 para obter a tensão real.
Portanto, se estiver usando 12V e um divisor de 1/3 de tensão:
#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)
}
! c