Перейти к содержанию
    

С индукционного датчика (полумост) в микроконтроллер.

LVHB_FREQ_ADG419.PNG.99386e855a79697f11e48d44d52e85ed.PNG

Ностальгия! Использовал, в своё время, частотное преобразование. Меряется время N периодов генерации контура C1L1.1, потом N периодов C1L1.2 в тиках частоты тактирования MCU. Берется разность n1-n2, что и является выходным параметром.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не думайте что сообщения не читаю, читаю до дыр, просто притих так как пытаюсь побороть другую беду, при пределителе таймера = 1 число в защелке прирастает не кратно 1, чаще по 2, но бывают скачки вплоть до 13, причем как плавно индуктивность не меняй, на значения между этими числами попасть невозможно. Подумал что не от туда читаю, начал читать в прерывании захвата еще и значение таймера поставив перед чтениями небольшую задержку NOPами. От изменения задержки значение считанного таймера меняется, а защелка нет, а значит защелку читаю читаю от куда надо. Прикрутил к датчику рычаг(стрелку) на его калибровочную резьбу, что бы видеть на какой угол поворачиваю, поставил пределитель таймера на 8, теперь прирост идет по 1, но по стрелке  эти приращения немного с разными градусами.

Вопрос, это я косячу, или при пределителе = 1,  таймер1 в меге328p не успевает каждый такт проца в защелку захватывать? 

Изменено пользователем -=TRO=-

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что такое "чтения таймера"? Как в старые добрые времена, что ли? Есть же защёлка у TMR1.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пардон за терминологию, "захваченное число" = "защелка" (щас исправлю)

А чтение непосредственно с таймера это я отдельно в прерывании читал, что бы сравнивать с защелкой, дабы убедится что есть разница.

Короче, защелку колбасит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Делаем обычный индуктивно-резистивный мост и синхронный выпрямитель на выходе. Можно еще между резисторами потенциометр вставить для начальной балансировки моста.

Поляки во времена СЭВ выпускали датчики линейного перемещения на таком принципе, точность лучше микрона. Частота питания моста была около 15 кгц.

IndBridge.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, -=TRO=- сказал:

...Вопрос, это я косячу, или при пределителе = 1,  таймер1 в меге328p не успевает каждый такт проца в защелку захватывать? 

 

Конечно не успевает. Вход захвата заносит значение таймера в ICRx при активном перепаде на оном. Ну и устанавливает флаг ICF. К примеру, частота тактирования 8000000Гц (0,125мкс) на входе от генератора C*L1.1 20'000Гц(50мкс). Меряется 2000 периодов генератора, значение n1=800000 накапливается и запоминается. Переключается на измерение второго контура, частота генерации которого 19'999Гц(50,002500125006250312515625781289мкс). Накапливается n2= 800 040. n1-n2=-40. Допустим, коэффициент преобразования, полученный при калибровке, равен K=18193/65536. K(n1-n2)=-40*K=-0,11мкм. Числа и коэффициент вполне себе реальные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

khach, как по взрослому делать я знаю, но уж деталек многовато выходит, а специализированные микросхемки где все это внутри стоят неприличных денег.

akl, склоняюсь к вашей схеме с генератором, проще и точнее вряд ли по другому выйдет, щас активно курю схемы в поисках подходящей для генератора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще то синхронный детектор сейчас собирается на свиче типа 4053 и одном канале таймера микроконтроллера. т. е бесплатно считай т.к контроллер и так стоит для ацп и дисплея.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

khach, да бесплатно, зато потом внейшний АЦП нужного разрешения за деньги... даже если отдетектим, то разрешения и стабильности набортного АЦП окажется мало. Если просто заюзать компаратор как предложил Plain, то выйдем на АЦПшное разрешение даже с учетом прыгающего через такты захватчика. Так что пока мне  больше нравится вариант akl.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

25 минут назад, -=TRO=- сказал:

больше нравится вариант akl

Чтобы по частоте RLC посчитать L, требуется знать R и C, и я уже говорил ранее, что на фоне такого сопротивления обмотки, L едва видно. По этой же причине будет врать любой активный генератор на RLC, поэтому только пассивный:

 

bad-483.thumb.gif.c8e42d2684fcb37e32279acb855fcf44.gif

 

Между C2 и катушками подразумевается аналоговый мультиплексор 74HC4052, который поочерёдно либо отключает их, либо переключает на C2, либо на вывод МК для запускающего пинка, уровень на котором меняется каждые два цикла, чтобы не перекашивать виртуальный общий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

19 минут назад, Plain сказал:

будет врать любой активный генератор на RLC

Нелинейность полезет что ли? 

Датчик предполагается калибровать чуть ли не при каждом измерении по крайним положениям, ход у него ограничен строго фиксированно, измерю микрометром и внесу как константу. У датчика вакуумный подъем (втягивается), так что можно калибровать каждый раз автоматически при включении.

 

А дергать LC контур как струну это идея прям, интересно сколько периодов прозвенит если это ловить только компаратором МК .....

Изменено пользователем -=TRO=-

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 часов назад, -=TRO=- сказал:

Нелинейность полезет что ли?

У прямоугольника? Частота RLC зависит от потерь. Честный генератор можно сделать по топологии восстановления несущей, т.е. стробируемой ФАПЧ, например, на 74HC4046.

 

8 часов назад, -=TRO=- сказал:

сколько периодов прозвенит если это ловить только компаратором

 

bad-484.thumb.gif.09187a93033145d223f2606fc951e26a.gif

 

В схеме с усилителем, ему можно несколько раз добавить усиления.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Plain сказал:

У прямоугольника?

Я имел ввиду нелинейность по диапазону (индуктивность к частоте), все остальное нивелируется калибровкой

 

По алгоритму мысль такая, дергаем (накачиваем) контур, сразу запускаем таймер с захватом в защелку без сброса, потом на десятом или двадцатом прерывании (где еще компаратор гарантированно детектит затухающий синус) читаем защелку.

Потом можно повторить с контуром второго плеча. 

Потом можно все повторить несколько раз слегка меняя длительность накачки контура, и просуммировать результаты для наилучшего приближения.

Изменено пользователем -=TRO=-

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не думаю, что это хорошая идея. Сделайте нормальный генератор, подключите к нему контур, сделайте паузу для стабилизации частоты и только затем меряйте. Потом для второго контура. На выходе получите примерно такое.

Микрокатор с длинноходовым.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

aklу вас номиналы деталей генератора сохранились?

 

Подергать контур тоже полезно, хотя бы академически, я так еще не делал никогда, может где ещё пригодится.

Изменено пользователем -=TRO=-

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...