User Tools

Site Tools


arduino:voltage_measurement

arduino absolute voltage measurement for battery lithium or similar

suitable for atmega 168p, atmega328 Pro

//arduino absolute voltage measurement for battery lithium or similar
 
 
//http://code.google.com/p/tinkerit/wiki/SecretVoltmeter
//https://forum.arduino.cc/index.php?topic=520674.0
 
long readVcc() {
  long result;
  // Read 1.1V reference against AVcc
  ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  delay(2); // Wait for Vref to settle
  ADCSRA |= _BV(ADSC); // Convert
  while (bit_is_set(ADCSRA,ADSC));
  result = ADCL;
  result |= ADCH<<8;
  result = 1126400L / result; // Back-calculate AVcc in mV
  return result;
}
 
void setup() {
  Serial.begin(9600);
}
 
void loop() {
  Serial.println( readVcc(), DEC );
  delay(1000);
}

https://jeelabs.org/2013/05/16/measuring-the-battery-without-draining-it/

capacitor

arduino/voltage_measurement.txt · Last modified: by aistis