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

Как считать показания датчиков.

У меня на плате есть два магнитных аналоговых датчика (MS1, MS2). Honeywell SM351LT. Они расположены 90 градусов один от другого. По кругу ходит магнит.

Это все видно на диаграмме. Я так понимаю что сумма выходных сигналов (OUT1+OUT2) будет уникальна для каждого положения магнита. Если бы у меня был шаговый двигатель я бы запустил его с резолюцией в 1 градус и через 360 шагов считал бы весь круг. А есть ли другие способы считать весь круг?

post-71075-1459842636_thumb.png

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


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

Я так понимаю что сумма выходных сигналов (OUT1+OUT2) будет уникальна для каждого положения магнита.
Кроме пары точек , где эта сумма равна нулю. В остальных точках она будет зависеть от характеристик конкретного магнита и расстояния от магнита до датчика. Поэтому, чтобы не калибровать каждый датчик под конкретный магнит, в промышленных датчиках угла считыват синусный и косинусный выход отдельно, а дальше считают арктангенс.

 

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

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


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

датчики SM351LT хоть и резистивные, но с дискретным выходом.

ими положение вала не зафиксировать.

в вашем случае только направление и скорость вращения.

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


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

Я так понимаю что сумма выходных сигналов (OUT1+OUT2) будет уникальна для каждого положения магнита. Если бы у меня был шаговый двигатель я бы запустил его с резолюцией в 1 градус и через 360 шагов считал бы весь круг.

А Вы ничего не путаете? SM351LT имеют цифровой выход, т.е эта плата надо понимать аналог энкодера - определяет число оборотов и направление вращения.

Упс, уже ответили :)

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


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

Извиняюсь ошибся – датчики SS49ET. прикладывая магнит в нескольких местах я вижу изменение показаний на выходе. я думаю можно вычислить позицию магнита - именно это мне надо.

 

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

 

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

а как результат преобразовать в синус/косинус?

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


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

а как результат преобразовать в синус/косинус?
Если ваши датчики имеют достаточно линейную характеристику - их выходной сигнал будет пропорционален синусу и косинусу угла поворота вала с магнитом просто потому, что датчики расположены "90 градусов один от другого". Так работают синусно-косинусные трансформаторы.

 

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


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

Предлагаю прорывную нано-технологию.

Цепляем к выходам датчика осциллограф (как выяснилось, они аналоговые. и то хорошо).

Пальцем крутим вал. Глазами смотрим на осциллограф.

 

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

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

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


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

Предлагаю прорывную нано-технологию.

Цепляем к выходам датчика осциллограф (как выяснилось, они аналоговые. и то хорошо).

Пальцем крутим вал. Глазами смотрим на осциллограф.

 

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

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

мы увидем там что то похожее на синус. рабочая точка датчика (при 0 гаус) Vcc/2.

вопрос как мне пальцем отсчитать энное количество градусов.

 

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


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

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

Такую задачу не решал, но вероятно нужно почитать про триангуляцию. Хотя для неё нужно три точки.

Но у вас есть дополнительное условие, что все точки находятся на окружности, так что наверное, данных должно хватить для расчетов.

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


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

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

Такую задачу не решал, но вероятно нужно почитать про триангуляцию. Хотя для неё нужно три точки.

Но у вас есть дополнительное условие, что все точки находятся на окружности, так что наверное, данных должно хватить для расчетов.

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

 

все равно угол надо знать.

S = r * d@

может дельта между измерениями пропорциональна углу...

Изменено пользователем Jenya7

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


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

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

так что арктангенс отношения показаний датчиков в первом приближении пойдёт.

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


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

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

Вижу такое решение. Вращать диск равномерно, снять синхронно показания датчиков, сохранить в таблицы с нужным разрешением. И в рабочем режиме определять положение по этим таблицам.

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


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

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


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

Вышеприведенная картина соответствует конструкции, когда датчик(и) расположен(ы) в центре вращения. У ТС не так.

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


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

Можно попробовать так. Крутим диск, снимаем минимальное 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)).

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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