**********************Arduino Code from the video****************************
float iREF = 1.08; //internal reference cal factor
void setup() {
// put your setup code here, to run once:
analogReference(EXTERNAL);
//burn some ADC readings after reference change
for(int i=0; i<8; i++) analogRead(A0);
Serial.begin(57600);
}
void loop() {
// put your main code here, to run repeatedly:
delay(3000);
Serial.print("Measured battery voltage is: ");
Serial.println(fReadVcc());
Serial.println();
}
//This function uses the known internal reference value of the 328p (~1.1V) to calculate the VCC value which comes from a battery
//This was leveraged from a great tutorial found at https://code.google.com/p/tinkerit/wiki/SecretVoltmeter?pageId=110412607001051797704
float fReadVcc() {
ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
delay(3); //delay for 3 milliseconds
ADCSRA |= _BV(ADSC); // Start ADC conversion
while (bit_is_set(ADCSRA,ADSC)); //wait until conversion is complete
int result = ADCL; //get first half of result
result |= ADCH<<8; //get rest of the result
float batVolt = (iREF / result)*1024; //Use the known iRef to calculate battery voltage
return batVolt;
}