Jump to content

    

-=TRO=-

Участник
  • Content Count

    239
  • Joined

  • Last visited

Community Reputation

0 Обычный

About -=TRO=-

  • Rank
    Местный
  • Birthday 06/25/1972

Контакты

  • Сайт
    Array

Информация

  • Город
    Array

Recent Profile Visitors

1672 profile views
  1. Plain, не считал, просто в симуляторе поглядел время затухания на максимуме индуктивности, и взял с запасом. Сначала поставил 5, но в симуляторе начал младший разряд дышать, увеличил до 10 и стало стабильно, решил не рисковать, тем более что меня пока устраивает, оптимизация будет потом. Кстати со схемой оказалось не все гладко, возможно рано я радовался, уже в конце дня передвигая ползунок датчика заметил какие то очень резкие участки чуть в стороне от среднего положения, причем аналогично в обе стороны, разбираться было некогда уже, если не забуду возьму на работу карманный осцилограф и посмотрю что там происходит, а то интуитивно догадаться не могу. Хочется верить что это программный косяк, но с моим везением надежды на это мало.
  2. Спасибо, буду знать. Итак вся схема свелась к одному резистору и одному конденсатору. Концы индуктивного полумоста подключил к двум произвольным выводам (дёргалкам). Средний вывод через резистор 10к на вход компаратора, а второй вход компаратора на минусе. Этот же средний вывод через конденсатор подключен к минусу питания. Для измерения переключаю вывод (дергалку) с входа на выход, и даю высокий уровень на 10 миллисекунд, потом даю низкий уровень запускаю таймер и считаю спады на компараторе, на пятом спаде читаю защелку компаратора, и отключаю вывод (дергалку, переключаю на вход). Со вторым плечём то же самое. Потом усреднение и фильтрация как писал выше. Итого разрешение в микронах стоит как вкопанное. Дальше предстоит калибровка и устранение нелинейности, но это уже рутина и немного математики. Основная задача выполнена, хотел простыми способами получить хотя бы сотки, а будут микроны. R3 и R12 это активное сопротивления обмоток датчика, резистор 10к на вход в компаратор.
  3. Сделал десять замеров подряд с суммированием, подобрал паузы между замерами, потом еще плавающее среднее на буфер из 5 чисел, и результат поделил на 5 (получив прирост разрешения в 10 раз). Получилось вообще хорошо, если до этого скакал хаотичный шум эквивалентный 5 микронам, то теперь шумит 1-2 десятых микрона, и очень хорошо наблюдается температурный дрейф (Поставил рядом чашку с утренним горячим кофе, вижу как каждые ~5 секунд набегает в плюс по одной десятой микрона). Теперь надо найти термостабильный конденсатор меньшей ёмкости, и по аналогии сделать замер второго плеча.
  4. У большинства дешевых датчиков проблема в том что они намагничиваются постоянным током, от чего у них уплывает нуль, при чем прилично уплывает. Дашь эдак 100А, а ноль уже 2-3А показывает, даёш обратный ток минус 100А, ноль начинает те же 2-3А в минус врать.... А чтобы размагнитить надо затухающий переменный ток давать. Слегка спасает калибровка нуля при включении (когда ток еще не идет), но это больше окозамыливание для конечного потребителя. В дорогих есть разного рода компенсации, но те которыми уже метрологически можно пользоваться имеют совсем не гуманные ценники.
  5. Подключил одно плечо в железе, начало диапазона видно на фото, 7421, и скачет в пределах 5 едениц (Обвешано блокировочными конденсаторами питание , без них было хуже, питаюсь пока от USB программатора) Конец диапазона 12702, и скачет тоже в пределах 5 едениц. Думаю сделать чуть короче паузы и ввести плавающее среднее хотя бы на 5 чисел. На прикреплённом фото на дисплее 5 периодов, но реально захват на шестом спаде, счёт идет с нулевого. Удивительно но надежно цепляется вплоть до 9 (десятый спад , а протеус меня слал подальше уже на седьмом), но погрешность (шумы) уже растут больше чем прирост разрешения, так что дальше шестого спада лезть смысла нету. Второй вход компаратора пока тупо на минусе питания. akl, Спасибо за номиналы, думаю чуть попозже дойдет дело и до генератора. Стыдно признаться, но только что гуглил что такое NP0 конденсатора , с номиналом буду еще играться, пока подключен около 68 нанофарад (под руку высоковольтный попался), после его уменьшения надо будет еще раз выгодный период поискать, так как я еще в процессе симуляций догадался что спасибо.
  6. Засимулировал в протеусе пассивный резонансный контур в купе с микроконтроллером и дисплеями. Затухает сильно, каждая положительная полуволна в среднем по амплитуде меньше в ~5 раз чем предыдущая. Видно что шестая полуволна еле дотягивает до 2мВ, её спад в симуляторе уверенно детектится компаратором микроконтроллера. Конденсатор контура выбрал большой, 47нанофарад, индуктивность 0,3 миллигенри, на дисплее кажет 1824 отсчета. На осциллограмках один и тот же сигнал, просто на первой 1в на кубик, а на второй 2мВ. Если текучка не помешает, то завтра на работе попробую в железе, и оба плеча.
  7. Plain, Спасибо конечно, но у этой схемы коммутировать катушки не удобно, у схемы akl катушка на минусе , достаточно двумя мосфетами к минусу катушки переключать, что бы поочередно оба плеча измерять.
  8. akl, у вас номиналы деталей генератора сохранились? Подергать контур тоже полезно, хотя бы академически, я так еще не делал никогда, может где ещё пригодится.
  9. Я имел ввиду нелинейность по диапазону (индуктивность к частоте), все остальное нивелируется калибровкой По алгоритму мысль такая, дергаем (накачиваем) контур, сразу запускаем таймер с захватом в защелку без сброса, потом на десятом или двадцатом прерывании (где еще компаратор гарантированно детектит затухающий синус) читаем защелку. Потом можно повторить с контуром второго плеча. Потом можно все повторить несколько раз слегка меняя длительность накачки контура, и просуммировать результаты для наилучшего приближения.
  10. Нелинейность полезет что ли? Датчик предполагается калибровать чуть ли не при каждом измерении по крайним положениям, ход у него ограничен строго фиксированно, измерю микрометром и внесу как константу. У датчика вакуумный подъем (втягивается), так что можно калибровать каждый раз автоматически при включении. А дергать LC контур как струну это идея прям, интересно сколько периодов прозвенит если это ловить только компаратором МК .....
  11. khach, да бесплатно, зато потом внейшний АЦП нужного разрешения за деньги... даже если отдетектим, то разрешения и стабильности набортного АЦП окажется мало. Если просто заюзать компаратор как предложил Plain, то выйдем на АЦПшное разрешение даже с учетом прыгающего через такты захватчика. Так что пока мне больше нравится вариант akl.
  12. khach, как по взрослому делать я знаю, но уж деталек многовато выходит, а специализированные микросхемки где все это внутри стоят неприличных денег. akl, склоняюсь к вашей схеме с генератором, проще и точнее вряд ли по другому выйдет, щас активно курю схемы в поисках подходящей для генератора.
  13. Пардон за терминологию, "захваченное число" = "защелка" (щас исправлю) А чтение непосредственно с таймера это я отдельно в прерывании читал, что бы сравнивать с защелкой, дабы убедится что есть разница. Короче, защелку колбасит.
  14. Не думайте что сообщения не читаю, читаю до дыр, просто притих так как пытаюсь побороть другую беду, при пределителе таймера = 1 число в защелке прирастает не кратно 1, чаще по 2, но бывают скачки вплоть до 13, причем как плавно индуктивность не меняй, на значения между этими числами попасть невозможно. Подумал что не от туда читаю, начал читать в прерывании захвата еще и значение таймера поставив перед чтениями небольшую задержку NOPами. От изменения задержки значение считанного таймера меняется, а защелка нет, а значит защелку читаю читаю от куда надо. Прикрутил к датчику рычаг(стрелку) на его калибровочную резьбу, что бы видеть на какой угол поворачиваю, поставил пределитель таймера на 8, теперь прирост идет по 1, но по стрелке эти приращения немного с разными градусами. Вопрос, это я косячу, или при пределителе = 1, таймер1 в меге328p не успевает каждый такт проца в защелку захватывать?
  15. Plain, хочу спросить, вы на схемах учитываете что индуктивность датчика имеет активное сопротивление 20 Омм ?