Точный вольтметр на ардуино - реально ли?

Sanyaba
Sanyaba аватар
Offline
Зарегистрирован: 27.07.2015

Всем здравия, столкнулся с проблемой того что не могу полчить точность измерения на вольтметре, по моей схеме и кодом получаю точность с шагом 0.03V а нужно 0.01V 

Подскажите как быть?

float opn = 4.99;   // опорное напряжение в вольтах
float var0;         // данные с аналового входа A0
float volt;         // конечное значение вольт
float R1 = 4710.0;  // сопротивление R1
float R2 = 1000.0;  // сопротивление R2

void setup(){
}

void loop(){
  
  var0 = analogRead(0);       // нюхаем порт
  volt = (opn*var0/1023.0);   // нюхаем напряжение после делителя
  
  //(4700.0+1000.0)/1000.0 просчитываем падение напряжения на делителе R1=4700ом R2=1000ома 
  float U1 = volt*((R1+R2)/R2);
  
  // далее выводим данные из U1 в вольтах
}

 

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

Sanyaba, обычная математика   ( ((4700+1000) / 1000)  * 5) /1024 = 28 милливольт.

Sanyaba
Sanyaba аватар
Offline
Зарегистрирован: 27.07.2015

в том то и дело, я думал может заюзать как нибудь несколько входов и раскидать данные АЦП со всех входов

может все таки есть какие у кого наработки, оч нужно для лабараторного БП

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

КАнэшна есть, дарагой! Сюда ходи. 

Sanyaba
Sanyaba аватар
Offline
Зарегистрирован: 27.07.2015

ясно, значит пока проект завис в воздухе, еще одна недоделка на столе...

кстати а ЦАП такой же есть в природе?

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

Можно оверсемплингом дотянуть до нужного разрешения, только словно "точный" будет тут не очень корректным.  Смотреть тут.

ЦАПы в природе есть, и на али тоже есть )

 

Sanyaba
Sanyaba аватар
Offline
Зарегистрирован: 27.07.2015

Спасибо за быстрый ответ!

Я понял что: Оверсемплинг -это программное увеличение разрядности АЦП...

dimax если не затруднит подскажите как добавить этот способ в мой код из первого поста, а то я если начну сам то опять до утра промудохаюсь из за неопытности в програмировании

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Sanyaba пишет:

Я понял что: Оверсемплинг -это программное увеличение разрядности АЦП...

Разрядности - да.

Но следует учитывать, что увеличение разрядности далеко не всегда сопровождается увеличением точности. И дажэе в тех случаях, когда сопровождается, увеличение точности оказывается намного менее ожидаемого.

Т.е. при оверсэмплинге точность либо вообще не растет, либо растет существенно медленнее разрядности.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Мне тоже надо считать точно, взял такой модулёк
16 битный 4-х канальный АЦП

Измеряет приблизительно так )))

 

Sanyaba
Sanyaba аватар
Offline
Зарегистрирован: 27.07.2015

спасибо за ответ, покупать с али у нас в ДНР сейчас проблематично, да и ждать больше месяца... пока отложу данную затею с индикацией в лабараторном блоке питания хотя уже передняя панель заточена под два дисплея 1602

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Кстати, может ещё точнее, в 16 раз