Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как считать показания датчиков.
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Jenya7
У меня на плате есть два магнитных аналоговых датчика (MS1, MS2). Honeywell SM351LT. Они расположены 90 градусов один от другого. По кругу ходит магнит.
Это все видно на диаграмме. Я так понимаю что сумма выходных сигналов (OUT1+OUT2) будет уникальна для каждого положения магнита. Если бы у меня был шаговый двигатель я бы запустил его с резолюцией в 1 градус и через 360 шагов считал бы весь круг. А есть ли другие способы считать весь круг?
Сергей Борщ
Цитата(Jenya7 @ Apr 5 2016, 09:51) *
Я так понимаю что сумма выходных сигналов (OUT1+OUT2) будет уникальна для каждого положения магнита.
Кроме пары точек , где эта сумма равна нулю. В остальных точках она будет зависеть от характеристик конкретного магнита и расстояния от магнита до датчика. Поэтому, чтобы не калибровать каждый датчик под конкретный магнит, в промышленных датчиках угла считыват синусный и косинусный выход отдельно, а дальше считают арктангенс.

P.S. "резолюции" - это в совбезе ООН. В контексте вашего сообщения правильно было бы написать "с разрешением в 1 градус".
ZVA
датчики SM351LT хоть и резистивные, но с дискретным выходом.
ими положение вала не зафиксировать.
в вашем случае только направление и скорость вращения.
Alexashka
Цитата(Jenya7 @ Apr 5 2016, 10:51) *
Я так понимаю что сумма выходных сигналов (OUT1+OUT2) будет уникальна для каждого положения магнита. Если бы у меня был шаговый двигатель я бы запустил его с резолюцией в 1 градус и через 360 шагов считал бы весь круг.

А Вы ничего не путаете? SM351LT имеют цифровой выход, т.е эта плата надо понимать аналог энкодера - определяет число оборотов и направление вращения.
Упс, уже ответили sm.gif
Jenya7
Извиняюсь ошибся – датчики SS49ET. прикладывая магнит в нескольких местах я вижу изменение показаний на выходе. я думаю можно вычислить позицию магнита - именно это мне надо.

Цитата(Сергей Борщ @ Apr 5 2016, 13:41) *
Кроме пары точек , где эта сумма равна нулю. В остальных точках она будет зависеть от характеристик конкретного магнита и расстояния от магнита до датчика. Поэтому, чтобы не калибровать каждый датчик под конкретный магнит, в промышленных датчиках угла считыват синусный и косинусный выход отдельно, а дальше считают арктангенс.

P.S. "резолюции" - это в совбезе ООН. В контексте вашего сообщения правильно было бы написать "с разрешением в 1 градус".

а как результат преобразовать в синус/косинус?
Сергей Борщ
Цитата(Jenya7 @ Apr 5 2016, 11:11) *
а как результат преобразовать в синус/косинус?
Если ваши датчики имеют достаточно линейную характеристику - их выходной сигнал будет пропорционален синусу и косинусу угла поворота вала с магнитом просто потому, что датчики расположены "90 градусов один от другого". Так работают синусно-косинусные трансформаторы.
esaulenka
Предлагаю прорывную нано-технологию.
Цепляем к выходам датчика осциллограф (как выяснилось, они аналоговые. и то хорошо).
Пальцем крутим вал. Глазами смотрим на осциллограф.

Если видим там что-то похожее на две синусоиды (сдвинутые на 90 градусов), радуемся и пытаемся вспомнить школьную тригонометрию.
Если видим там что-то похожее на меандр "включено-выключено", пытаемся приспособить этот датчик к чему-то ещё.
Jenya7
Цитата(esaulenka @ Apr 5 2016, 15:45) *
Предлагаю прорывную нано-технологию.
Цепляем к выходам датчика осциллограф (как выяснилось, они аналоговые. и то хорошо).
Пальцем крутим вал. Глазами смотрим на осциллограф.

Если видим там что-то похожее на две синусоиды (сдвинутые на 90 градусов), радуемся и пытаемся вспомнить школьную тригонометрию.
Если видим там что-то похожее на меандр "включено-выключено", пытаемся приспособить этот датчик к чему-то ещё.

мы увидем там что то похожее на синус. рабочая точка датчика (при 0 гаус) Vcc/2.
вопрос как мне пальцем отсчитать энное количество градусов.
Baser
У вас получается в каждый момент времени известны два числа, которые пропорциональны расстоянию от магнита до датчиков.
Такую задачу не решал, но вероятно нужно почитать про триангуляцию. Хотя для неё нужно три точки.
Но у вас есть дополнительное условие, что все точки находятся на окружности, так что наверное, данных должно хватить для расчетов.
Jenya7
Цитата(Baser @ Apr 5 2016, 16:25) *
У вас получается в каждый момент времени известны два числа, которые пропорциональны расстоянию от магнита до датчиков.
Такую задачу не решал, но вероятно нужно почитать про триангуляцию. Хотя для неё нужно три точки.
Но у вас есть дополнительное условие, что все точки находятся на окружности, так что наверное, данных должно хватить для расчетов.

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

все равно угол надо знать.
S = r * d@
может дельта между измерениями пропорциональна углу...
_pv
дипольное поле падает как куб расстояния, так что там не совсем синус/косинус, но может быть очень похоже на синус/косинус, в зависимости от расстояния от датчиков до магнита по вертикали.
так что арктангенс отношения показаний датчиков в первом приближении пойдёт.
ViKo
Не разбираюсь в диполях, может, там и как куб... Обычно, если поле распределяется по сфере, значит, как квадрат расстояния. В любом случае изменение сигнала будет сильно нелинейное, некая циклоида с неким смещением, в некой степени. Там будет и синус, конечно, первая гармоника этого страшенького сигнала, но вычислять расстояние, основывалась на этом синусе, мне кажется, ошибка.
Вижу такое решение. Вращать диск равномерно, снять синхронно показания датчиков, сохранить в таблицы с нужным разрешением. И в рабочем режиме определять положение по этим таблицам.
ViKo
Вышеприведенная картина соответствует конструкции, когда датчик(и) расположен(ы) в центре вращения. У ТС не так.
Alexashka
Можно попробовать так. Крутим диск, снимаем минимальное Xmin и максимальное Xmax показание по каждому каналу.
Вычисляем амплитуду Xamp=(Xmax-Xmin)/2 и среднее Xcp=(Xmax+Xmin)/2. Сохраняем эти 2 константы во флешь для последующих расчетов.

Для текущего угла 'a' поворота диска зная текущие значения каналов X и Y находим значения cos(a)= (X-Xcp)/Xamp; и также sin(a) = (Y-Ycp)/Yamp;
затем получаем угол 'a' как а = arctg(sin(a)/cos(a)).
Jenya7
Цитата(Alexashka @ Apr 6 2016, 11:14) *
Можно попробовать так. Крутим диск, снимаем минимальное Xmin и максимальное Xmax показание по каждому каналу.
Вычисляем амплитуду Xamp=(Xmax-Xmin)/2 и среднее Xcp=(Xmax+Xmin)/2. Сохраняем эти 2 константы во флешь для последующих расчетов.

Для текущего угла 'a' поворота диска зная текущие значения каналов X и Y находим значения cos(a)= (X-Xcp)/Xamp; и также sin(a) = (Y-Ycp)/Yamp;
затем получаем угол 'a' как а = arctg(sin(a)/cos(a)).

интересно. выглядит логично. надо попробовать. спасибо.

сигнал наверное не будет чистый синус так как приложение магнитного поля нессиметрично но мне кажется это не критично.
ViKo
Для начала снимите сигналы, потом гадать будем.
Tarbal
Если получите синус и косинус, то надо создать объект -- модель устройства в виде машины состояний. Допустим на 16 состояний (минимум 4). За один оборот физического устройства машина состояний проходит по циклу все 16 состояной. Каждое состояние соответствует фазе с точностью 360/16 градусов. Вам надо измерять значение входной фазы с такой точностью. Если удастся реализовать такую машину состояний, то вы сможете получить много информации с нее. Если получите только меандр, то только 4 состояния возможны.
Сергей Борщ
Цитата(Tarbal @ Apr 6 2016, 16:25) *
в виде машины состояний
"Машина состояний" - дословный перевод английского "state machine". В русском языке для этого понятия есть термин "конечный автомат".
ViKo
Цитата(Сергей Борщ @ Apr 6 2016, 17:48) *
"Машина состояний" - дословный перевод английского "state machine". В русском языке для этого понятия есть термин "конечный автомат".

Формально верно. А на деле - какой смысл несет слово "конечный" в этом термине? Что состояний есть конечное, фиксированное количество? И так понятно. Лучше бы назвали "автомат состояний".
Baser
У ТС из первого поста, где пара фраз описания и схематичная картинка, не понятно, как ориентированы датчики и магнитные полюса постоянного магнита. По даташиту датчики чувствительны также и к направлению магнитного поля, так что выходные сигналы могут быть различными при различных ориентациях.

И еще, ТС даже не озвучил цель измерений. Измерение угла поворота это уже наши догадки, а не его вопрос.
Да и такая схема измерений, наверное, ему не во сне приснилась.
Небось есть исходные руководящие документы или живые носители знаний возле ТС, а он это скрывает sm.gif
Сергей Борщ
Цитата(ViKo @ Apr 6 2016, 16:52) *
Формально верно. А на деле - какой смысл несет слово "конечный" в этом термине?
Ответ на этот вопрос есть даже в Википедии. Это официальный термин. Если он вам не нравится - вы можете даже пожаловаться на него в лигу сексуальных реформ, иногда это помогает (в качестве примера приходят на ум негры и педерасты).
ViKo
Цитата(Сергей Борщ @ Apr 6 2016, 19:59) *
Ответ на этот вопрос есть даже в Википедии. Это официальный термин. Если он вам не нравится - вы можете даже пожаловаться на него в лигу сексуальных реформ, иногда это помогает (в качестве примера приходят на ум негры и педерасты).

Я не задумывался, нравится или нет. Пользовался, как все. Но вот задумался и здесь пожаловался. Этого мне достаточно.
Если бы никому ничего не надо было, то мы бы до сих пор расстояние измеряли верстами, мощность килограмм-силами, а на конце слов писали бы твердый знакЪ.
Tarbal
Цитата(Сергей Борщ @ Apr 6 2016, 18:48) *
"Машина состояний" - дословный перевод английского "state machine". В русском языке для этого понятия есть термин "конечный автомат".

Ну уж если пошла такая пьянка "finite state machine".
Спасибо за поправку. Самое смешное, что я знаю это и поначалу использовал именно этот термин "конечный автомат", но в моей сегодняшней среде обитания все используют state machine. Надеюсь вы меня простите за использование того термина, который был ближе?
Цитата(ViKo @ Apr 6 2016, 18:52) *
Формально верно. А на деле - какой смысл несет слово "конечный" в этом термине? Что состояний есть конечное, фиксированное количество? И так понятно. Лучше бы назвали "автомат состояний".

Наверное потому, что у него небесконечное количество состояний. Буду (если вспомню) использовать слово автомат вместо "машины состояний".
ViKo
Да, автоматы бывают и не конечные, согласно Википедии. Правильное название - Конечных Состояний Автомат. rolleyes.gif
Jenya7
Цитата(Baser @ Apr 6 2016, 21:39) *
У ТС из первого поста, где пара фраз описания и схематичная картинка, не понятно, как ориентированы датчики и магнитные полюса постоянного магнита. По даташиту датчики чувствительны также и к направлению магнитного поля, так что выходные сигналы могут быть различными при различных ориентациях.

И еще, ТС даже не озвучил цель измерений. Измерение угла поворота это уже наши догадки, а не его вопрос.
Да и такая схема измерений, наверное, ему не во сне приснилась.
Небось есть исходные руководящие документы или живые носители знаний возле ТС, а он это скрывает sm.gif

да цель измерений - измерять угол поворота. система обесточивается на техосмотор. перед обесточиванием замеряли положение магнита. включили замеряли снова. так мы знаем сколько воды утекло за время простоя. схема придумана не мной. говорят должна работать. пока нет возможности проверить - механика не готова. как будет готова замеряю сигналы.
Меджикивис
Цитата(Jenya7 @ Apr 10 2016, 13:39) *
да цель измерений - измерять угол поворота. система обесточивается на техосмотор. перед обесточиванием замеряли положение магнита. включили замеряли снова. так мы знаем сколько воды утекло за время простоя.
Для того, чтобы знать, сколько времени утекло, есть гораздо лучшие способы, чем слежение за магнитом на часовой стрелке.

Baser
Цитата(Меджикивис @ Apr 10 2016, 15:31) *
Для того, чтобы знать, сколько времени утекло, есть гораздо лучшие способы, чем слежение за магнитом на часовой стрелке.

Судя по всему, не времени, а воды. На большом промышленном механическом счетчике воды, когда электронную систему считывания показаний отключают на техобслуживание или поверку.
Меджикивис
Верно!
что-то я протупил)))))

Там внутри обычно много движущихся частей. Бывает конструкция в виде поршня, бывает турбинка. Но в любом случае несколько шестерен или кривошип какой-то есть.
Я предлагаю поставить индуктивный датчик около какого-нибудь зубчатого или периодически двигающегося элемента, и считать импульсы.
Это будет значительно точнее и легче, чем считывать положение магнита. Имхо.

отказался от этого варианта, поскольку кажется автор хочет переносимое устройство: поднес к счетчику, считал, унес с собой.
Но все равно, магнит на краю и два датчика - это очень неравномерные сигналы; когда магнит на противоположной стороне, поле будет на порядки слабее, начнутся помехи, точность будет никакая.
Гораздо лучше предложил Сергей Борщ: магнит на оси в центре, а датчик над ним. Это действительно рабочий вариант. Только надо продумать постоянство ориентации переносимого датчика относительно корпуса.

Ну и совсем уж дикий способ: фотографировать шкалу счетчика камерой смартфона - и дальше чисто программная обработка изображения, декодирование положения стрелки (или чего там на счетчике), и либо запись в файл, либо автоматическая отправка данных по майлу на сервер. (Или на почту проверяльщика, или кто там занимается учетом).
Jenya7
нет фотографировать не вариант. все должно быть автоматически. насчет положения датиков у меня тоже возникли сомнения. но мне сказали если будет плохой сигнал можно поставить магнит по центру. как у Сергея на картинке.
Alexashka
Jenya7, а чем простой потенциометр хуже?
Jenya7
Цитата(Alexashka @ Apr 11 2016, 13:29) *
Jenya7, а чем простой потенциометр хуже?

так потенциометр имеет ограничение по ходу. а там колесико крутиться по кругу все время. кроме того механический износ.
ViKo
Энкодер. Квадратурный. Хорошо - оптический.
Jenya7
Цитата(ViKo @ Apr 11 2016, 14:13) *
Энкодер. Квадратурный. Хорошо - оптический.

токовое потребление такого решения намного выше. и дороже.
Plain
Непонятно, о чём 3 страницы темы. Для получения максимально похожих на настоящие квадратурные сигналов есть только один вариант — магнит на оси вращения, датчики — на минимального от него диаметра окружности на нуле и 90 градусах соответственно. И всё это исчерпывающе следует из паспорта датчика, без лишних вопросов где-либо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.