Проект "тестер радиодеталей"

Обсуждаем цифровые устройства...
Ответить
Грызет канифоль
Аватара пользователя
Сообщения: 288
Зарегистрирован: Пт янв 17, 2014 22:48:20
Откуда: Екатеринбург

Сообщение Salk »

Добрый день всем. Хочу сделать проект "тестер радиодеталей" на Atmega328, код пишу в Arduino IDE для отладки.
Схема взята от сюда
Но застопорился, никак не могу понять, как реализовано измерение резисторов, сам его принцип.
"Тестовый" резистор на 500 Ом, подключенный между A0 и A1, и показания с него в мониторе:
СпойлерИзображение
Тем самым я знаю напряжения на обоих аналоговых портах, в момент измерения "тестового" резистора, соответственно знаю падение напряжения на нем, но как вычислить сам резистор, не зная ток?
Не могу допереть, что нужно сделать, подскажите пожалуйста, сам принцип, спасибо.
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 383
Зарегистрирован: Вс янв 31, 2016 18:04:39
Откуда: Montreal

Сообщение MagicianT »

Предполагаю, что программа скомутировала дижитал выходы 8 и 10 как 5В и земля, получается делитель из 3-х резисторов 680-500-680. Дальше сообразите?
Реклама
Грызет канифоль
Аватара пользователя
Сообщения: 288
Зарегистрирован: Пт янв 17, 2014 22:48:20
Откуда: Екатеринбург

Сообщение Salk »

То, что один пин на вход, другой на выход, это и так понятно, Я не сразу сообразил, как найти ток, необходимый для измерения сопротивления: R = U/I.
Сейчас дошло, что мы знаем падение напряжения на нижнем резисторе (680 Ом), притянутый к земле (D12 - A2) и номинал самого резистора, он нам к счастью известен.
Таким образом получаем ток по формуле: I = U/R; I = 1.7 / 680 = 0.0025 А; подставляем его в формулу, нахождения сопротивления:
R = U (падение напряжение на тестируемом резисторе) / I;
R = (2.93 - 1.7) / 0.0025 = 492 Ом. Погрешность менее ±5%. Для больших сопротивлений необходимо переключатся на высокоомные делители (470 кОм), а стабилизировав опорное напряжение АЦП можно ещё повысить точность измерения. Как-то так, мне может ещё понадобится помощь по данному проекту, если буду спрашивать не обессудьте.

Код: Выделить всё

Voltag1 = ((float)analogRead(A0) / 1024) * 5.08; // находим напряжение на первом аналоговом порте, без коррекции напряжения питания; ±20%
Voltag2 = ((float)analogRead(A1) / 1024) * 5.08; // находим напряжение на первом аналоговом порте, без коррекции напряжения питания; ±20%
Resistvalue = (Voltag1 - Voltag2) / (Voltag2 / 680); // 680 - нижний резистор, тем самым находим ток, протекающий через всю цепочку резисторов
Тестовый резистор на 3.3 Ом
СпойлерИзображение
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 383
Зарегистрирован: Вс янв 31, 2016 18:04:39
Откуда: Montreal

Сообщение MagicianT »

Думаю что программа переключает резисторы 470к и 680 также для определения p-n переходов, т.е. определяет что подключено диод-транзистор или резистор-индуктивность. С точки зрения хардваре всё просто, щёлкаем плюсы-минусы и меряем. Там похоже вся изюминка в софте. А для повышения точности измерения надо мерять много и усреднять. Например суммировать 256 измерений в одну переменную, а потом делить на 16, точность повыситься в 16 раз. Есть аппликайшион ноут (application note) AVR121 на эту тему.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 25585
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

MagicianT писал(а):точность повыситься в 16 раз
Не точность, а разрешение.
И при условии нормального распределения измеряемой величины.
Усреднение - это просто КИХ ФНЧ с прямоугольным окном.
АЧХ такого фильтра имеет значительные боковые лепестки.
А так же, как и любой цифровой фильтр, требует входного антиалиасинга.
Иначе можно долго мучиться, не понимая в чем причина сохранения "шума" в результатах...
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 383
Зарегистрирован: Вс янв 31, 2016 18:04:39
Откуда: Montreal

Сообщение MagicianT »

Изображение
Не так страшен чёрт, как его малюют. Есть там лепестки, но я бы не стал грузиться всякой лабудой, взял бы да и померял. Вот если не корелирует, тогда и копать, всех нюансов все равно заранее не предусмотришь. С лепестками всё просто, нужно чтобы время сэмплирования ( набивки суммы ) было кратным периоду помехи с минимальной частотой. Для 50Гц это 20 миллисекунд будет. Если в системе есть другие источники помех по питанию, жки, светодиоды, моторы с шим и т.д. то под них подстраиваться. В любом случае 100 миллисекундное окно набора суммы выглядит резонно для подавления помех, и не кажется большим для измерения сопротивления.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25585
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

MagicianT писал(а):нужно чтобы время сэмплирования ( набивки суммы ) было кратным периоду помехи с минимальной частотой
Время (период) семплирования - это период дискретизации. А время "набивки суммы" называется периодом накопления.
Это для взаимопонимания.
Про нули АЧХ все верно,если считать помеху монохромной по первой гармонике. С внутрисхемными шумами все гораздо сложнее, поскольку их спектр явно выше половины частоты дискретизации. Такшта антиалиасингового ФНЧ по входу не избежать. Уж для желающих добавить 4 разряда в разрешение - точно.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 383
Зарегистрирован: Вс янв 31, 2016 18:04:39
Откуда: Montreal

Сообщение MagicianT »

Вы берега путаете, дорогой. Фильтр там никчену, алиайсинг по барабану, при соотношении частот 1/256 посмотрите на формулу, М в знаменателе, от алиайсинговых помех - тех что от 0.5 справа отзеркаляться, ничего не останется. Увеличение точности на 16 это никак не торкает. Фильтр тем более никак не снижает уровень внутренних помех АЦП от процессора и логики, с их спектром до 16 МГц. Редкий случай, чем больше шума тем лучше.
Друг Кота
Аватара пользователя
Сообщения: 25585
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Еще раз.
Не точность, а РАЗРЕШЕНИЕ.
Точность, хоть в миллион раз сделай оверсемплинг, НИКАК НЕ ИЗМЕНИТСЯ. Точность вообще не имеет отношение к этой теме.
Я ни в каком месте не слышал о частоте семплирования от автора вопроса. Если мне не изменяет память, максимальная частота оного процесса в АВР составляет 15 ksps. То есть все что выше 7,5 кГц со спокойной душой зеркалится как родная частота. И НИКАКОЙ цифровой фильтр не способен справится с этим процессом. Даже при полосе ФНЧ близкой к нулю, 15 кГц оказываются точно в полосе пропускания. Помеха при этом выглядит, как правило, как медленно пульсирующая с частотой равной полосе пропускания фильтра. Практически синхронный прием, однако.... Недостает только квадратурной обработки. :)))
А что касается внутренних помех МК, то это ерунда на фоне того, что придет по внешним цепям. АЦП внутри МК выделен и по топологии и по питанию. Да и шум там носит близкий к нормальному характер, что действительно неплохо для оверсемплинга.
А вот какой нибудь сетевой адаптер к самому устройству с частотой 60...130 кГц, да еще и со свиппированием, - это вполне актуальная помеха.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 383
Зарегистрирован: Вс янв 31, 2016 18:04:39
Откуда: Montreal

Сообщение MagicianT »

Всё это теория. Вы описываете такую невероятную помеху, которая точно попадает в полосу 15кГц +- 10 Гц,
т.е. попадает в щель меньше 0.01% по ширине. Теоретически, да возможно.
Это если он запустит АЦП во фри раннинг (free running) или по таймеру, с дефолтовой
аналогРеад (analogRead) в цикле фор (for) ни о каком синхронном детектировании и речи не может быть,
там просто нет стабильной частоты сэмплирования.
И если такая фантастическая помеха вся же будет доставать, мне пришла мысль вообще не сэмплить регулярно,
сделать такой спрэд спектрум (spread spectrum) наоборот.
Шумоподобное сэмплирование, размазать ту самую щель 10 Гц по полосе скажем 1 кГц, и всё будет путем, 1/100.
Друг Кота
Аватара пользователя
Сообщения: 25585
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Это совсем не теория. А самая что ни на есть практика.
С которой я сталкиваюсь ЕЖЕДНЕВНО.
Узкая полоса (какая она там такая узкая? :))) ) всего лишь увеличивает период биений помехи. Но что это меняет?
Кстати, у меня в изделиях применяются dsPIC33 с двухпортовым DMA ОЗУ на 1000 int-ов c 4 каналами УВХ. То есть каждый канал как раз по 256 отсчетов. Правда с квадратурной обработкой.
НИ О ЧЕМ.
Чисто несущую слегка "подмести". Основная фильтрация - 512 отсчетов ПОВЕРХ входной зачистки в 256 отсчетов.
Получается полоса в 0,5 кГц при несущей 58 кГц. Но уже с минимальными боковыми лепестками (ниже динамического диапазона в 60 дБ).
Это при антиалиасинге примерно в 55-60 дБ на первой зеркальной частоте.
Вы думаете, что я справился с промышленными помехами?
:))) :))) :)))
По сети прет всякая ШИМ - только в путь. С трудом справляемся установкой редких в продаже сетевых фильтров с нормируемым подавлением на несущей. Вся широко продаваемая туфта в области сетевых фильтров обычно только начинает работать на 150...200 кГц.
Да и Вы, любезный, начинаете предлагать всякую экзотику типа размывания спектра. Путь канешна верный, только антиалиасинг таки поставить надо. Тем более, что особых денег он не стоит.
Сиречь, задача НЕ ТРИВИАЛЬНАЯ.
:tea:
ЗЫ. Кстати. У прямоугольного окна с 256 отсчетами при 15 кспс первый нуль будет на частоте 58 Гц. А с учетом боковых реальная полоса по динамическому диапазону (мы же тут про шумы, а не про сигнал) раза в четыре больше.
ЗЗЫ. И это все что я выше сказал при СОХРАНЕНИИ РАЗРЯДНОСТИ. О повышении разрешения тут и речи не идет.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 383
Зарегистрирован: Вс янв 31, 2016 18:04:39
Откуда: Montreal

Сообщение MagicianT »

Не знаю с чем вы там сталкиваетесь, но похоже что ЦОС для вас тёмный лес.
А у меня ардуино DUE с 1 MSPS, DMA, и 96 кбайт из которых 64к я могу занять под буффер и прогнать собственный сплит-радикс БПФ (Split-Radix FFT) и чё?
Всё это бла-бла-бла.

У меня как-то хоби-проэкт был, локализация звука. Так вот там фаза нужна, и фазовые помехи мне долго не удавалось отфильтровать. Фильтр на входе же не поставишь. А одна случайная помеха на 1000 условных единиц/градусов сбивала мой аверейжинг на 1000 периодов. И тогда я пришёл к выводу, что ФНЧ недостаточно, нужна ёще ступень устойчивая к одиночным всплескам. Медиан. Выкинуть из результатов всё что мало-много а потом усреднять.

После того, мой локализатор стал способен вести муху на фоне отбойного молотка.
Вот я и говорю, сначала мерять надо, а потом копать если не так.
Друг Кота
Аватара пользователя
Сообщения: 25585
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Причем тут БПФ?
:facepalm:
В огороде бузина, а в Киеве дядька...
Мы вообще то про фильтрацию говорили при оверсемплинге.
Ну в крайнем случае про КИХ вообще.
Какое к этому отношение имеет БПФ?
И как это доказывает, что 256 отсчетов буфера из 15 кспс делает 10 Гц?
:))) :))) :))) :tea:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 383
Зарегистрирован: Вс янв 31, 2016 18:04:39
Откуда: Montreal

Сообщение MagicianT »

Да, правильно говорим о фильтрации. 10 Гц появилось из окна сэмплирования 100 миллисекунд, о 256 выборках проехали - снимите лыжи.
Если детально, то АтМега328 самплинг рейт где-то 9.6к а не 15к, проблем самплить 100 милисек нету, мы же не сохраняем - не фильтруем ФНЧ,
просто сумма, кол-во сэмплов может быть любым, в данном случае где-то 960, но операция суммирования внесёт коррективы в интервал самплинга
Фильтрация не зацикливается на БИХ, откройте книжку. Есть другие методы.

БПФ как ответ на простанные рассуждения о микрочиповском дуал-порт дма, тоже не понимаю нахрен его приплели.

Так вот, 10 Гц, и переменная частота сэмплинга, скажем 6.ххх, 7.ууу, 8.зззз, и 9.ккк кГц. Потом медиан, где данные не совпадают - в топку.
Придумайте какой нить другой фантастический вариант где помехи будут искажать результат с вероятностью
10^-3 х 10^-3 х 10^-3 х 10^-3 = 10^-12

Кстати, у Атмеги есть режим сниения шумов для АЦП - процессор в sleep отправляют. Так , к сведению, а то неохота спорить ещё и об этом.
Друг Кота
Аватара пользователя
Сообщения: 25585
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

MagicianT писал(а): Фильтрация не зацикливается на БИХ, откройте книжку. Есть другие методы.
Просто какой то эпический фейерверк... :))) :facepalm:
Вообще то мы о КИХ.
Это раз.
Во вторых Вы предлагали обычное усреднение.
В третьих, речь шла именно о 256 отсчетах, да еще и с целью повысить разрешение.
В ответ я и предложил антиалиасинг.
Если понизить частоту дискретизации от условных 15 кспс, то антиалиасинг нужен ТЕМ БОЛЕЕ.
Извините, но по моему Вы сильно сбились с первоначального курса.
:)
ЗЫ. Причем тут слип, когда мы вроде договорились, что речь не о внутренних помехах МК?
:dont_know: :facepalm:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 383
Зарегистрирован: Вс янв 31, 2016 18:04:39
Откуда: Montreal

Сообщение MagicianT »

Вы зациклились. Я предлагал аверейджинг как лучший, простейший способ увеличения ТОЧНОСТИ.
Метод не без недостатков, в природе вообще всё не идеально. Алаисинг твой до фонаря, если помеха в полосе пропускания, например в случае фазовых измерений.
Поскольку, неизвестно будет ли автор вообще включать прибор в розетку, питать от батареек или солнечной панели, такая идея фикс на алиасинге выглядит как симптом нервного растройства, что начальник крови попортил?

Когда аверейджинг сразу не идёт, фильтрация делается многоступенчатой, т.к. я уже говорил, что в природе нет идеальных сигналов, идеальных помех и соответственно методов измерения.
Друг Кота
Аватара пользователя
Сообщения: 25585
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

MagicianT писал(а):Вы зациклились. Я предлагал аверейджинг как лучший, простейший способ увеличения ТОЧНОСТИ.
У Вас видимо проблема с восприятием собеседника...
Ваш способ НЕ ПОВЫШАЕТ ТОЧНОСТЬ.
Он повышает разрешающую способность.
Повысить точность ЛИНЕЙНЫМИ манипуляциями с результатом преобразования невозможно В ПРИНЦИПЕ.
Вы отличаете разрешение от точности?
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 383
Зарегистрирован: Вс янв 31, 2016 18:04:39
Откуда: Montreal

Сообщение MagicianT »

На практике наиболее часто применяются следующие методы и способы повысить точность измерений:
~~~~~~~~~~
9) Выполнение многократных наблюдений с последующим усреднением их результатов.

Этот метод применяется при преобладании случайной составляющей погрешности измерений. Как известно, случайная составляющая погрешности измерений среднего значения меньше случайной составляющей погрешности измерений текущих значений.
Метод используется тогда, когда в течение интервала времени усреднения не происходит заметное изменение текущих значений измеряемой величины, но погрешность измерений текущих значений в течение этого же интервала существенно меняется.
http://metrob.ru/HTML/Stati/staty/tochnost.html
Друг Кота
Аватара пользователя
Сообщения: 25585
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Да мало ли какие глупости не напишут в интОрнетах...
А еще чаще глупо истолкуют написанное...
Точность определяется в том числе нелинейностью и смещением. И никакими фильтрациями изменить эти параметры невозможно.
Откройте даташит на МК в разделе АЦП и ознакомьтесь с величинами нелинейности и смещения.
Хоть обоверсемплись по самый небалуй... :music:
ЗЫ. отличный пример - цифровой термометр далласа-максима.
12 разрядов разрешения при точности с трудом дотягивающей до 9 разрядов в центре диапазона и даже неполные 7 разрядов по краям.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 383
Зарегистрирован: Вс янв 31, 2016 18:04:39
Откуда: Montreal

Сообщение MagicianT »

Из него следует, что если необходимо повысить точность результата (при исключени систематической погрешности) в 2 раза, то число измерений ** увеличить в 4 раза; если требуется увеличить точность в 3 *&, то число измерений увеличивают в 9 раз и т. д.
Изображение
http://allformgsu.ru/load/metrologija_s ... 69-1-0-119
Для студентов вузов, обучающихся по специальности
«Метрология и метрологическое обеспечение» и направлению
«Метрология, стандартизация и сертификация». Может быть
использована в учебном процессе вузов по
Понимаю, что дижитал лемингу всё одно не доказательство. Со всем уважением.
Ответить

Вернуться в «Цифровая техника»