цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


sergeyiv
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Вс фев 13, 2011 21:54:17
Откуда: Москва

цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение sergeyiv »

Прошу помощи. собрал "Простой миниатюрный встраиваемый цифровой вольтметр для БП (0…19,99В/0…39,99В)" по схеме с радиокота
http://radiokot.ru/circuit/digital/measure/109/
прошивку использовал от 0 до 39.99
все вроде работает но показания врет даже не то чтоб врет а не линейная шкала получилась.
до 10 вольт начинает врать после 10 показывает достаточно точно
откалибровал по мультиметру на 12вольтовм аккумуляторе мультиметр показывает 12.44 , вотльметр тоже самое
меряю вольтметром батарейку 1.5 показывает 1.48 , меряю мультиметром показывает 1.560 и так во всем диапазоне от 0 - 10 вольта
меряю литий показывает 3.90 , мультиметр 3.97
т.е чем дальше от 0 тем точнее показывает
кстати такую же фигню я увидел на вольтметрах с aliexpress и по этому стал собирать данную схему и мне понравилось что 4 разряда
мультиметров у меня 4 шт разных показывают одно и то же так что мультиметру меня претензий нет, показывает правильно по крайне мере линейно
что делать как быть , куда копать ))

добавил 18:41

проверил во всем диапазоне от 0 до 39.99 врет , разъезжается по всему диапазону
Реклама
Аватара пользователя
Enigm
Говорящий с текстолитом
Сообщения: 1663
Зарегистрирован: Вт апр 03, 2012 20:36:41
Откуда: Сочи

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение Enigm »

А что вы хотели от простой схемки ?
Если меряется простым делителем, то и нелинейность будет большая, еще и резисторы у вас стоят обычные, а не высокоточные ))
Такие простые схемы да еще и за дешево, не будут давать хорошую точность и нелинейность.
Реклама
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение Kavka »

Если схема простая, то это вовсе не значит что она плохая :)

sergeyiv, а с другим мультиметром не пробовали сравнить?

Пара мыслей, IMHO, так сказать.
Про усреднение все знают, а вот про калибровку что-то мало кто вспоминает.
AVR120 Characterization and Calibration of the ADC on an AVR.pdf
Повышение точности усреднением тут будет не эффективно, т.к. шумы необходимые для усреднения должны присутствовать в источнике и они должны доходить до АЦП. Наличие шумов в источнике не обязательно вообще, да ещё и RC цепочка перед АЦП.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
pcb
Опытный кот
Сообщения: 833
Зарегистрирован: Пт авг 12, 2011 09:14:27
Откуда: Млечный путь/Земля/РФ/Екатеринбург

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение pcb »

Любое АЦП имеет нелинейность, у хороших подгоняют резисторы лазером, у плохих не подгоняют.
Разработал:
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Enigm
Говорящий с текстолитом
Сообщения: 1663
Зарегистрирован: Вт апр 03, 2012 20:36:41
Откуда: Сочи

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение Enigm »

Я и не говорил что плохая схема.
Как показометр отличный вариант, простой до безобразия.
Просто не нужно от, таких простых схем , требовать отличной точности и линейности.
Хотите высокой точности и линейности, пользуем отдельный АЦП с хорошими параметрами, правда и цена одного АЦП будет гораздо дороже, того устройство что тут описано. :))
Реклама
Аватара пользователя
Borodach
Модератор
Сообщения: 22897
Зарегистрирован: Пн дек 08, 2008 19:28:04
Откуда: 10км от Москвы на Север

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение Borodach »

А амперметр на базе этой схемы сделать можно ...? :)
Реклама
Аватара пользователя
Enigm
Говорящий с текстолитом
Сообщения: 1663
Зарегистрирован: Вт апр 03, 2012 20:36:41
Откуда: Сочи

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение Enigm »

Нет проблем, ставим шунт и операционный усилитель.
Коэффициент умножения опера вычисляем в зависимости от шунта .
Грубо выйдет так.
Например если шунт 1 ом, то можно напрямую мерять, ибо при 1Апере будет падение на 1 вольт, что и покажет нам вольтметр.
На практике ставим например 0.1 ом, то тут уже нужен операционный усилитель, который умножит нам в 10 раз и вольтметр покажет нужный ток.
Так же в обвязке опера можно сделать и переключатель диапазона, что бы например до 1 ампера мерять с большей точностью.
Аватара пользователя
Borodach
Модератор
Сообщения: 22897
Зарегистрирован: Пн дек 08, 2008 19:28:04
Откуда: 10км от Москвы на Север

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение Borodach »

С ОУ, это понятно, спасибо ... :)
sergeyiv
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Вс фев 13, 2011 21:54:17
Откуда: Москва

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение sergeyiv »

да , причем ОУ лучше включить по дифференциальной схеме
могу даже резисторы подсчитать под любой шунт
жаль конечно что атмеги не линейны
буду наверно собирать на КР572ПВ2
в лабраторник хотелось бы поточнее измерители то
Изображение
Аватара пользователя
)_Леопольд_(
Родился
Сообщения: 19
Зарегистрирован: Сб июн 30, 2012 16:54:29
Откуда: Киевский котяра)))

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение )_Леопольд_( »

sergeyiv писал(а):что делать как быть , куда копать ))

добавил 18:41

проверил во всем диапазоне от 0 до 39.99 врет , разъезжается по всему диапазону
Есть идея, как это можно исправить, при условии, что погрешность тут систематическая (то есть, собранный вольтметр врет всегда одинаково, вне зависимости, например, от температуры).
Для начала подправляем код так, чтобы результат выводился в битах от 0 до 1023 (потом вернем как было). Берем блок питания, подключаем к нему тестер и наше создание и начинаем делать лабу :)) , а именно, вбиваем в Excel истинное напряжение и показания АЦП. По истинному напряжению высчитываем, что должен показывать правильный АЦП. Потом открываем Origin, строим график зависимости правильных показаний от реальных и аппроксимируем его полиномом (третьей степени за глаза хватит). (Если тут есть новички, которые впервые видят слово "аппроксимация", то скажу, что это такая математическая процедура, когда по экспериментальному графику некоторой зависимости под нее подгоняют функцию заданного типа). Теперь мы можем созерцать нелинейность во всей ее красе. По полученной формуле в Екселе можно рассчитать и округлить нашу зависимость для 1024-х точек.
Дальше надо научить атмегу ее компенсировать. Первый способ очень некошерный, профессионалы сделают так :facepalm: . В программе создадим массив длиною 1024, и запишем туда рассчитанные данные. Это будет такая таблица для контроллера. Мы ему говорим:"ага, ты намерял 333 тугрика. На самом деле это неправильно, пойди и возьми значение из 333-й ячейки массива - это будет истинный результат".
Такой массив из 16-битных чисел займет ни много, ни мало 2 кБ. Вообще говоря, это расточительно. НО! С другой стороны, если это законченный прибор вольтметр, то прошивка занимает 1,54 кБ, а у меги их целых 8. Всё равно 6,45 кБ пропадают, так почему бы и нет...
Второй способ - это не вбухивать всю таблицу, а каждый раз считать значение полинома. Только тут уж очень исхитряться надо, потому что микроконтроллеры под математику не заточены. Всякие умножения-деления надо заменять сдвигами, суммирование и максимально упрощать, а то будет весело.
У котов электричество в самой их природе. Шерсть - прекрасный носитель статического заряда...
Аватара пользователя
)_Леопольд_(
Родился
Сообщения: 19
Зарегистрирован: Сб июн 30, 2012 16:54:29
Откуда: Киевский котяра)))

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение )_Леопольд_( »

Да, и вот нашел еще русский перевод того документа, что Kavka скидывал

Раскопки гугла показывают, что обычно у атмег не все так плохо с линейностью. Вот со встроенным источником опорного напряжения могут быть неточности. Надо попробовать поставить сюда TL431.
У котов электричество в самой их природе. Шерсть - прекрасный носитель статического заряда...
Аватара пользователя
Vitaliy9
Открыл глаза
Сообщения: 78
Зарегистрирован: Вс авг 08, 2010 22:10:25
Откуда: Toronto

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение Vitaliy9 »

А что, автор тут не появляется?
Хочу перефразировать вопрос про Vref.
Есть ИОН на 1.223V, 2.495V, 2.5V, 4.096V and 5.0V
Показания мне нужны в одном случае от 0000 до 3500 (без точкиб но ее можно и физически отключить)
Во втором случае от 00.00 до 10.00 ( в идеале 00.0с - 10.0с или ⁰)
Какой ИОН лучше использовать для каждого случая для максимальной точности?
Как правильно внести изменения в программу в соответствии с установленным ИОН?

ADMUX = (1 << REFS1)|(1 << REFS0) //Внутренний ИОН 2,56V
/* ACD=1024*(U/Кдел)/Vref

Vref=2.56 В

Кдел=8


Измеренное напряжение для N замеров:

U=(ACD/N)*Vref*Кдел/1024


Вычисление мВ:

mVolt=((value/N)*Vref*Kдел)/1024=((value/N)*2560*8)/1024)=20*value/N=

=value/3,2 (N=64)

Можно ли в вычисление добавить вычитание 500мВ для работы с https://www.microchip.com/wwwproducts/en/TC1047A
Аватара пользователя
musor
Друг Кота
Сообщения: 39197
Зарегистрирован: Сб сен 13, 2014 16:27:32
Откуда: СпиртоГонск созвездия Омега

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение musor »

выше ка бы намекалось что разрещени 10битного встроеного Ацп явно не достаточно даже для3.5 разячдоф... не говоря уж о 4 полных декадах так что...ждат чтото от этого по казометра в последнем разряде глупо... введние всяких усреднений м апроксимаций конечно может созда илюзию болшей точности но не болеее...кстати обратите внимание китаюзы почти не юзают встроеные ацп мег и пикоф!!! исползуют или другие МК с 12 битами или вооще внешнее а вы не думали почему так? ответ ка рас в разрешении
можно сделать хоть 20разрядоф но значашими будут от силы 3...
конечно меня предел можно чут повысить точность в отделновзятом участке
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Аватара пользователя
Vitaliy9
Открыл глаза
Сообщения: 78
Зарегистрирован: Вс авг 08, 2010 22:10:25
Откуда: Toronto

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение Vitaliy9 »

Не соглашусь по поводу китайцевю
Приобрел на eBay 4-х разрядный вольтметр https://www.ebay.ca/itm/DC-0-33V-Red-0- ... 0981655789
Он собран на STM8S003F3P6 контроллере и КА 4-х разрядном 7-сегментном индикаторе.
Не буду спорить по поводу точности, но в данном случае она мне не так уж и важна. Но 4 разряда нужны.
Так, как на счет ответов на вопросы?
Конкретизирую.
В моем случае один как бы вольтметр при входном напряжении 0 - 5в должен показывать 0 - 3600 (psi)
Второй при входе 500мВ - 1.5В должен показывать 0.0⁰ - 99.9⁰ (градусы)
pcb432
Мудрый кот
Сообщения: 1808
Зарегистрирован: Пт мар 26, 2010 17:16:52
Откуда: Kazan

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение pcb432 »

[uquote="Vitaliy9",url="/forum/viewtopic.php?p=3708454#p3708454"]...Не буду спорить по поводу точности, но в данном случае она мне не так уж и важна. Но 4 разряда нужны.[/uquote]
Непонятно, главное 4 разряда а что показывает неважно. :dont_know:
Аватара пользователя
Vitaliy9
Открыл глаза
Сообщения: 78
Зарегистрирован: Вс авг 08, 2010 22:10:25
Откуда: Toronto

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение Vitaliy9 »

PSI он показывает. И что тут непонятно?
Аватара пользователя
Vitaliy9
Открыл глаза
Сообщения: 78
Зарегистрирован: Вс авг 08, 2010 22:10:25
Откуда: Toronto

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение Vitaliy9 »

Подскажите, как правильно переназначить выводы МК под мою плату?
Можно ли использовать выходы разных портов для управления сегментами или разрядами?
pcb432
Мудрый кот
Сообщения: 1808
Зарегистрирован: Пт мар 26, 2010 17:16:52
Откуда: Kazan

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение pcb432 »

PSI он показывает. И что тут непонятно?
Непонятно вот это
Не буду спорить по поводу точности, но в данном случае она мне не так уж и важна. Но 4 разряда нужны.
Вынь да положь 4 разряда, а что там показывает не важно.
Vitaliy9 писал(а):Подскажите, как правильно переназначить выводы МК под мою плату?
Можно ли использовать выходы разных портов для управления сегментами или разрядами?
Можно.
В исходнике переписывается назначение выводов.
Компелируется и получается новый hex файл.
Программатором прошивается микроконтроллер.
И все :))
Аватара пользователя
Vitaliy9
Открыл глаза
Сообщения: 78
Зарегистрирован: Вс авг 08, 2010 22:10:25
Откуда: Toronto

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение Vitaliy9 »

Что-ж, отвечу на столь агрессивный коментарий.
Итак. PSI (pound per square inch) Единица давления соответствующая ~ 1/15 атмосферы.
В моем случае максимально возможное показание составит 3600 PSI при выходном напряжении датчика давления 5В.
Точность последнего разряда, в данном случае, не так уж и важна.
Мне что, ставить 3-х разрядный LED и дорисовывать "0"? Или "x10"?
Теперь по прошивке.
Как компелить и прошивать, я знаю.
Достаточно ли будет поменять номера портов тут?

/*
Светодиодный индикатор:
a - PD6 -> PD5
b - PD5 -> PD7
c - PD2 -> PD1
d - PD3 -> PD3
e - PD4 -> PD4
f - PD7 -> PD6
g - PD1 -> PD0
h - PD0 -> PD2
A1 - PB2 -> PB7
A2 - PB1 -> PB1
A3 - PB0 -> PB0
A4 - PB3 -> PB6
*/
Такая конфигурация мне нужна.
Можно ли внести в формулу вычитание, чтобы входному напряжению 0.5В соответствовал "0" на индикаторе? А еще лучше, при входе от 0 до 0.5В показывал отрицательное значение 1V/10mV.
pcb432
Мудрый кот
Сообщения: 1808
Зарегистрирован: Пт мар 26, 2010 17:16:52
Откуда: Kazan

Re: цифровой вольтметр для БП (0…19,99В/0…39,99В) не линеен

Сообщение pcb432 »

Как компелить и прошивать, я знаю.
Достаточно ли будет поменять номера портов тут?
Если знаешь, то вперед.
С атмегами сильно не заморачивался, но знаю, что надо порты инициализировать.
А формулу можно писать любую.
Ответить

Вернуться в «Статьи»