Прошу помощи. собрал "Простой миниатюрный встраиваемый цифровой вольтметр для БП (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 врет , разъезжается по всему диапазону
А что вы хотели от простой схемки ? Если меряется простым делителем, то и нелинейность будет большая, еще и резисторы у вас стоят обычные, а не высокоточные )) Такие простые схемы да еще и за дешево, не будут давать хорошую точность и нелинейность.
Если схема простая, то это вовсе не значит что она плохая
sergeyiv, а с другим мультиметром не пробовали сравнить?
Пара мыслей, IMHO, так сказать. Про усреднение все знают, а вот про калибровку что-то мало кто вспоминает. AVR120 Characterization and Calibration of the ADC on an AVR.pdf Повышение точности усреднением тут будет не эффективно, т.к. шумы необходимые для усреднения должны присутствовать в источнике и они должны доходить до АЦП. Наличие шумов в источнике не обязательно вообще, да ещё и RC цепочка перед АЦП.
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Любое АЦП имеет нелинейность, у хороших подгоняют резисторы лазером, у плохих не подгоняют.
_________________ Разработал: -BLDC -ФУОЗ/МПСЗ -SMART BMS -ECU/EDC на STM32F4(43%)+CPLD(57%) -Моноинжектор на ATSAMD20G16 -контроллер эффектов для RGB LED ленты -умные часы/обратный счет/секундомер -устройство измерения емкости АКБ
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Я и не говорил что плохая схема. Как показометр отличный вариант, простой до безобразия. Просто не нужно от, таких простых схем , требовать отличной точности и линейности. Хотите высокой точности и линейности, пользуем отдельный АЦП с хорошими параметрами, правда и цена одного АЦП будет гораздо дороже, того устройство что тут описано.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Нет проблем, ставим шунт и операционный усилитель. Коэффициент умножения опера вычисляем в зависимости от шунта . Грубо выйдет так. Например если шунт 1 ом, то можно напрямую мерять, ибо при 1Апере будет падение на 1 вольт, что и покажет нам вольтметр. На практике ставим например 0.1 ом, то тут уже нужен операционный усилитель, который умножит нам в 10 раз и вольтметр покажет нужный ток. Так же в обвязке опера можно сделать и переключатель диапазона, что бы например до 1 ампера мерять с большей точностью.
да , причем ОУ лучше включить по дифференциальной схеме могу даже резисторы подсчитать под любой шунт жаль конечно что атмеги не линейны буду наверно собирать на КР572ПВ2 в лабраторник хотелось бы поточнее измерители то
проверил во всем диапазоне от 0 до 39.99 врет , разъезжается по всему диапазону
Есть идея, как это можно исправить, при условии, что погрешность тут систематическая (то есть, собранный вольтметр врет всегда одинаково, вне зависимости, например, от температуры). Для начала подправляем код так, чтобы результат выводился в битах от 0 до 1023 (потом вернем как было). Берем блок питания, подключаем к нему тестер и наше создание и начинаем делать лабу , а именно, вбиваем в Excel истинное напряжение и показания АЦП. По истинному напряжению высчитываем, что должен показывать правильный АЦП. Потом открываем Origin, строим график зависимости правильных показаний от реальных и аппроксимируем его полиномом (третьей степени за глаза хватит). (Если тут есть новички, которые впервые видят слово "аппроксимация", то скажу, что это такая математическая процедура, когда по экспериментальному графику некоторой зависимости под нее подгоняют функцию заданного типа). Теперь мы можем созерцать нелинейность во всей ее красе. По полученной формуле в Екселе можно рассчитать и округлить нашу зависимость для 1024-х точек. Дальше надо научить атмегу ее компенсировать. Первый способ очень некошерный, профессионалы сделают так . В программе создадим массив длиною 1024, и запишем туда рассчитанные данные. Это будет такая таблица для контроллера. Мы ему говорим:"ага, ты намерял 333 тугрика. На самом деле это неправильно, пойди и возьми значение из 333-й ячейки массива - это будет истинный результат". Такой массив из 16-битных чисел займет ни много, ни мало 2 кБ. Вообще говоря, это расточительно. НО! С другой стороны, если это законченный прибор вольтметр, то прошивка занимает 1,54 кБ, а у меги их целых 8. Всё равно 6,45 кБ пропадают, так почему бы и нет... Второй способ - это не вбухивать всю таблицу, а каждый раз считать значение полинома. Только тут уж очень исхитряться надо, потому что микроконтроллеры под математику не заточены. Всякие умножения-деления надо заменять сдвигами, суммирование и максимально упрощать, а то будет весело.
_________________ У котов электричество в самой их природе. Шерсть - прекрасный носитель статического заряда...
Да, и вот нашел еще русский перевод того документа, что Kavka скидывал
Раскопки гугла показывают, что обычно у атмег не все так плохо с линейностью. Вот со встроенным источником опорного напряжения могут быть неточности. Надо попробовать поставить сюда TL431.
_________________ У котов электричество в самой их природе. Шерсть - прекрасный носитель статического заряда...
А что, автор тут не появляется? Хочу перефразировать вопрос про Vref. Есть ИОН на 1.223V, 2.495V, 2.5V, 4.096V and 5.0V Показания мне нужны в одном случае от 0000 до 3500 (без точкиб но ее можно и физически отключить) Во втором случае от 00.00 до 10.00 ( в идеале 00.0с - 10.0с или ⁰) Какой ИОН лучше использовать для каждого случая для максимальной точности? Как правильно внести изменения в программу в соответствии с установленным ИОН?
выше ка бы намекалось что разрещени 10битного встроеного Ацп явно не достаточно даже для3.5 разячдоф... не говоря уж о 4 полных декадах так что...ждат чтото от этого по казометра в последнем разряде глупо... введние всяких усреднений м апроксимаций конечно может созда илюзию болшей точности но не болеее...кстати обратите внимание китаюзы почти не юзают встроеные ацп мег и пикоф!!! исползуют или другие МК с 12 битами или вооще внешнее а вы не думали почему так? ответ ка рас в разрешении можно сделать хоть 20разрядоф но значашими будут от силы 3... конечно меня предел можно чут повысить точность в отделновзятом участке
_________________ ZМудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Не соглашусь по поводу китайцевю Приобрел на 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⁰ (градусы)
Что-ж, отвечу на столь агрессивный коментарий. Итак. 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.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 46
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения