18/04/27 20:13:00.79 jyAMKsCA.net
Arduinoの電圧を取得する関数
int getVCC() {
ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); // ATmega328用
delay(2); // ちょっと待つ
ADCSRA |= _BV(ADSC); // A/D変換
while (bit_is_set(ADCSRA, ADSC));
uint8_t low = ADCL;
unsigned int val = (ADCH << 8) | low;
//前の結果を破棄
ADCSRA |= _BV(ADSC); // A/D変換
while (bit_is_set(ADCSRA, ADSC));
low = ADCL;
val = (ADCH << 8) | low;
return ((long)1024 * 1100) / val;
}