Обсуждаем контроллеры компании Atmel.
Ответить

Как повысить точность вычисления напряжения

Пт сен 14, 2018 08:17:53

Здравствуйте,такой вопрос: использую mega168 для измерения напряжения. Диапазон 0-4.5 вольта. Опорное напряжение взял со стабилизатора 2.5 вольта, расчитал делитель напряжения. Данные снимаю с регистра ADCH левое выравнивание. 8бит Формулу расчитал так: при Umax = 4.5v ADC = 255. Дальше 4500 мв/255 = 17.6 мв на одну единицу ацп.(ADC*176)/10. В результате получается более менее точные вычисления, но мне это не нравится. Есть ли другие формулы расчета,более точные? Float использовать не буду, он отнимает много ресурсов. За ранее спасибо.

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 08:34:52

используйте все 10 бит АЦП: 4500/1024=4,4 мв
P.S. для вашего МК float не такая уж и большая проблема

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 09:09:01

Ну как сказать, код занимал 10 процентов, после деления на дробное число,код стал занимать 30% почему то

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 09:10:39

даже если и так - что вы там собираетесь пихать в остальные 70%? это ведь 11 килобайт!

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 09:15:54

Ну да впринципе места много. А вам приходилось забивать память до отказа?

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 09:17:49

да. в одном проекте atmega8 у меня заполнена на 99,8%

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 10:12:27

Наверное коммерческий проект

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 10:13:37

нет, не коммерческий

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 10:31:38

vovik15 писал(а):ADC*176)/10. В результате получается более менее точные вычисления, но мне это не нравится. Есть ли другие формулы расчета,более точные?
А зачем делить на 10? Считай в десятых долях мВ, и все. Потом, в процессе выдачи, поставишь точку перед последней цифрой, будет в милливольтах.

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 12:47:52

А зачем флоат? Используй лонги.
Для повышения точности, сделай сразу 10-20-30 да хоть 100 измерений, просуммируй все показания, а потом раздели на собственно сколько раз измерял. В итоге получишь куда более точное значение.
А если нужны десятые доли, то значение АЦП суммируй, умножай на 10, а потом дели. Умножай на значение напряжения на единицу АЦП и выводи поставив точку в нужном месте.

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 15:07:39

А зачем флоат? Используй лонги.
... сделай сразу 10-20-30 да хоть 100 измерений, просуммируй все показания, а потом раздели на собственно сколько раз измерял.
Плохому учите? :)))
2 в степени n измерений, потом n раз сдвинуть вправо.

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 15:25:14

Вполне нейтральному. Задротствовать с ассемблером времена прошли вместе с z80.
А про сдвиг нынешние студенты если слышали, то сразу забыли и пользоваться не умеют. Да и показывает практика нафиг надо. Хватает и процессорного времени и ресурсов чтобы просто делить. И в коде потом разобраться проще и самому писателю и всем всем всем.

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 15:28:05

Вполне нейтральному
Отнюдь. Даже вредному. Это бессмысленная трата ресурсов и времени. И причем тут ассемблер?

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 15:37:06

А тебе что, солить эти ресурсы и время? Пусть тратится, зато просто и доступно любому школьнику. МК в массы! Уж лучше так, чем ардуино!
Ассемблер тут при том, что подход этот уже давно отжил своё. Не нужно экономить ресурсы и время процессора, куда важней экономить время разработчика. Лучше погулять и пивка попить чем выдрачивать байтики и наносекундочки.

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 15:53:40

сначала вопрос, для чего измеряете (управление процессом или индикация)?

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 15:56:21

AndTer писал(а):А тебе что, солить... подход этот уже давно отжил своё. Не нужно экономить ресурсы и время процессора...
Воинствующее невежество.
И я вам не тыкал и на брудершафт не пил. Так что потрудитесь держать себя в рамках.

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 15:58:07

если индикация - то шаг ацп очень желательно сделать кратным 10^n чтобы на экран хорошо вписывался. для этого нужно изменить границы измерения ( у нас 1024 отсчета, если делать шаг 5мВ, и от 0, то диапазон будет до 5,12В, думаю это не страшно).

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 16:02:57

А поподробнее насчет сдвига можно? Не совсем понял как это делать

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 16:17:18

вам предлагают найти среднее арифметическое от нескольких замеров (мне кажется идея в голом виде не очень, желатешьно бы доработать).
а на счет сдвига - вам нравилось в школе умножать/делить на 10, 100 и.т.д... контроллеру тоже нравится, только система счисления у него двоичная и его любимые цифры 2, 4, 8, 16, и т.д. принцип тотже.

Добавлено after 3 minutes 50 seconds:
идея будет работать если уровень шумов достаточен (не меньше одного отсчета) и если замеров делать достаточно много.

Re: Как повысить точность вычисления напряжения

Пт сен 14, 2018 16:35:02

Один сдвиг вправо кратен делению на 8?
Ответить