analogRead чудит

замеряет но прыгает в пределах где то 0.1 вольт. Что делать?
мне надо что бы 0.01 вольт погрешность была.
uno запускал от 3.8 вольт поэтому установил analogReference(INTERNAL);
делитель подключен к этомуу же аккуму 3.8 вольт

int val = 0;
int analogPin = A0;

void setup(){
          Serial.begin(9600);
          analogReference(INTERNAL); 


		  pinMode(A0, INPUT);
}

void loop() {   
  
  
         val = analogRead(analogPin);
          float Vop = (float)((1.1*1023)/val);    // 1.113
          Serial.println (Vop);  
          Serial.println (val);		  

          delay (1000);
}

Это нормально, если замерять так, как Вы это делаете.

Это возможно, но 10мВ всего лишь в два с половиной раза больше паспортной погрешности АЦП (4.3мВ при INTERNAL), поэтому, чтобы получить такой результат, мерить нужно правильно, а не как попало.

Совсем правильно на Уно Вы не измерите уже хотя бы потому, что у неё схема питания неправильно собрана. Но Ваши 10мВ, может и можно получить, если всё остальное сделаете по уму:

  1. хорошее, чистое питание (осциллограф-то есть, посмотреть что там)? А тот один деятель жаловался на АЦП, а у самого питание на 600 мВ. скакало.
  2. конденсатор на ноге AREF
  3. на время измерения погружать МК в сон.
  4. И, да, уточнить сколько там на самом деле, а то 1.1 может оказаться и 1.0, и 1.2

Кстати в той теме, что я сослался выше, я всё это уже писал. Если бы Вы не поленились воспользоваться поиском, мне не пришлось бы писать то же самое ещё раз.

с этим проблем нет. есть только новый прибор но полурабочий (не беда выкрутимся как всегда)
Хотя питание напрямую брал с батареи.

а зачем там кондер? Просто мы же не analogRererence(external) неиспользуем вроде.
Может кондер на 0.1 uf между A0 и GND поставить?

в сон нельзя мк погружать. МК постоянно обменивается даными и пропуски делать нельзя.

вообще неважно что программа измерять будет. напряжение или проценты или просто цифры. Главное стабильность что бы была точная. Мне просто данные точные с ацп нужны любые типа int например

Ещё раз услышу “кондёр”, “резюк”, “транзюк” и т.п. пошлю на херюк и отвечать перестану. Не уважаете себя - делайте хоть вид, что уважаете собеседника.

Читайте даташит, там всё написано.

В delay можно (как analogRead делает), а в сон нельзя? Бред. Погружайте, никуда Ваши тики не денутся. Он же проснётся от прерывания.

Насколько точная? Там паспортная погрешность 4 lsb. Если Вам нужно точнее, то не повезло.

кстати может есть другой вообще вариант как измерить напряжение (или 0-1023 тоже пойдет) на аккумуляторе. Аккумулятор этот и будет питанием uno. Надо знать насколько разряжена батарея

Фига-се! А как Вы сейчас его измеряете? Пин питания с аналоговым входом соединили? Давайте схему!

Собственное питание измеряется совсем не так, там скетч совсем другой.

а поставить на аналоговый вход тл431 и на ней измерять напряжение при аналог реф=у пит. и персчитывать результат по отношению к известному стабильному у на входе? извините за мой французский


такая вот схема. Только еще + батареи подключена к pin5V (не схеме не указано это)

Если Вам нужно измерять питание, то сначала узнайте какое там у Вас на самом деле за опорное напряжение (1.1 может оказаться от 1.0 до 1.2). Это можно сделать один раз для МК. Оно различается от экземпляра к экземпляру, но на одном экземпляре стабильно.

Потом, когда Вы знаете опорное, нужно измерить его используя питание в качестве референса и просто посчитать питание.

Ну, можно и так (а чего, не указали, кстати?) Но лучше питание измерять так, как я Вам сказал.

Вы знаете, как опорное-то замерить?

замените р1 на 1 ком, а вместо р 2 постаьте тл431,

Не нужно TL (зачем плодить сущности?) там внутри уже есть ИОН (на 1.1В). Просто надо его значение уточнить. А так, да - это именно тот самый подход.

мне любые значения подойдут с analogRead . Самое важное что бы не прыгали они.

незнаю

у человека полудохлый прибор, а не флюк как у некоторых ;), а так конечно лезвие Оккама должно резать, но учитывая проф деформацию,которая у каждого своя

что бы не прыгали можно усреднять

Не поверите, непосредственно измерять даже с 50МΩ флюком не получается - занижает.

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

Мультиметр-то есть?

Прыгать будут всегда. Третий раз повторяю, паспортная точность - 4 lbs (это если Вы конденсатор на ARef поставите, питание будет хорошим, в сон погружать будете и т.д.)

мультиметр есть.

аккумулятор думаю лучший вариант должен быть? там пульсаций не должно быть я так понимаю. нагрузка маленькая будет до 75 мА все вместе.

4lbs - это 0.05 вольт?
Может проще усреднить тогда значения будет?

Ваши тайные знания повергают меня с начала в депрессию от своего незнания, а потом в энтузиазм для самосовершенствования, думаю Вы- Педагог.

Вы прыгаете с пятого на десятое. Сначала нужно избавиться явных проблем, а потом уже. И то, я бы не усреднял, а фильтровал.

НО!!! Если у Вас задача - контроль уровня батареи, нафига Вам “чтоб не прыгало”? Добавьте Ваши 0.1В для страховки и забейте, пусть прыгает. Проблема-то в чём?

Вы же мерить будете раз в 10 минут, с чем усреднять-то? Я никогда ничего не усредняю, замерил, сравнил и дальше живу. Просто забейте.