Разница при измерении питания Ардуино и непосредственно микроконтроллера

sav13
sav13 аватар
Offline
Зарегистрирован: 17.06.2013

Для измерения собственного напряжения питания использую функцию, найденную здесь на форуме:

/**
* Функция определения напряжения питания устройства
*/
static int vccRead(byte us =250) {
  ADMUX = 1<<REFS0; // опорное напряжение - Vcc
  ADMUX |= 0x0E;    // объект измерения - внутренний источник
                    // стабилизированного напряжения 1.1В
  delayMicroseconds(us);
 
  ADCSRA |= 1<<ADSC;         // запуск АЦ-преобразования
  while(ADCSRA & (1<<ADSC)); // и ожидание его завершения
  word x = ADC;
  return x ? (1100L * 1023) / x : -1;
}

Запускаю на Arduino Uno - подаю напряжение на Vin 3.3 - 5В - измеряет довольно точно.

Вынимаю микроконтроллер и запускаю в понельке, запитав напрямую на ногу микросхемы - значения напряжение занижается примерно на 0.7В.

Это специальный коэффициент стабилизатора напряжния питания?

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

sav13 пишет:

Вынимаю микроконтроллер и запускаю в понельке, запитав напрямую на ногу микросхемы - значения напряжение занижается примерно на 0.7В.

Это специальный коэффициент стабилизатора напряжния питания?

от чего запитав?

sav13
sav13 аватар
Offline
Зарегистрирован: 17.06.2013

От источника регулируемого постоянного напряжения. Да. от 3.3 до 5В
В перспективе будет от литиевого аккумулятора работать. Вот и нужно его напряжение мерить

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

sav13 пишет:

От источника регулируемого постоянного напряжения. Да. от 3.3 до 5В
В перспективе будет от литиевого аккумулятора работать. Вот и нужно его напряжение мерить

ок. у тебя напряжение меряется местами правильно, а местами неправильно.

#русофобия

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

sav13, напряжение на Vin данным способом  измерить невозможно, вы измеряете напряжение шины питания на выводе "5V" . Подайте питание сразу на вывод 5V, это будут реальные показания.

karl2233
Offline
Зарегистрирован: 05.07.2015

sav13 пишет:

Вынимаю микроконтроллер и запускаю в понельке, запитав напрямую на ногу микросхемы - значения напряжение занижается примерно на 0.7В.

Это специальный коэффициент стабилизатора напряжния питания?

поотдельнности слова понятны, вместе - смысл ускользает.

мож, смеху ради, есть смысл посмотреть на схему своей Ардуины? там есть намёки на напряжения(физические).

sav13
sav13 аватар
Offline
Зарегистрирован: 17.06.2013

dimax пишет:

sav13, напряжение на Vin данным способом  измерить невозможно, вы измеряете напряжение шины питания на выводе "5V" . Подайте питание сразу на вывод 5V, это будут реальные показания.

У меня как раз обратная ситуация - неправильное измерение, когда питание приходит непосредственно на ногу микросхемы и правильное, когда на Vin плпты UNO. Причем, разница в показаниях на константу - 0.7В

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

sav13, попробуйте мой вариант с оверсемплингом:

void setup(){
Serial.begin(9600);
}
void loop() {   
delay (500);
float Vop= (float)(1.1*16368)/Vbg() ;
Serial.println (Vop,6); // 
}
 
int Vbg() {  
ADMUX = (1<<REFS0)|(1<<MUX3)|(1<<MUX2)|(1<<MUX1);
long buffersamp=0;
for (int n=0x0; n<=0xff; n++ ) {
ADCSRA |= (1<<ADSC)|(1<<ADEN);  
while (bit_is_set(ADCSRA,ADSC));
buffersamp += ADCW;
}
buffersamp >>=4; //16368 full scale 14bit
ADCSRA &= ~(1 << ADEN);  // отключаем АЦП
return buffersamp;
 }

 

SunX
SunX аватар
Offline
Зарегистрирован: 04.10.2014

По поводу измерения собственного питания есть статья неплохая: http://tim4dev.com/arduino-secret-true-voltmeter/ почитайте, там правда код какой-то неверный, но рассуждения и мысли очень даже полезные.