Обратная связь от датчика Холла с видео

Датчик эффекта Холла

Датчики на эффекте Холла могут обнаруживать наличие магнитного поля и генерировать выходное напряжение при его обнаружении. Датчики на эффекте Холла при использовании слинейные приводы, как правило, расположены внутри коробки передач привода вместе с магнитным диском. Когда линейный привод выдвигается или втягивается, этот диск вращается, проходя мимо датчика Холла, что заставляет датчик вырабатывать цифровой выходной сигнал в виде импульса напряжения. Эти импульсы можно подсчитать и использовать для определения того, насколько далеко сдвинулся привод.

Как считывать обратную связь с линейного привода

Позиционная обратная связь от датчика Холла

Обратной стороной использования датчика Холла для позиционной обратной связи является то, что они не измеряют абсолютное положение. Вместо этого они производят импульсы, которые можно подсчитать, чтобы определить, насколько далеко сдвинулся привод. Чтобы использовать эти импульсы для позиционной обратной связи, вам понадобится микроконтроллер для подсчета произведенных импульсов. Для этого вам необходимо использовать внешние контакты прерывания вашего микроконтроллера для подсчета этих импульсов по мере их возникновения. Внешние прерывания - это выводы, которые обнаруживают изменение напряжения и в нашем случае могут использоваться для обнаружения импульса напряжения от датчика Холла. Вам нужно будет свериться с таблицей данных вашего микроконтроллера, чтобы убедиться, какие выводы вашего микроконтроллера можно использовать в качестве контактов прерывания. Используя Ардуино Уно например, контакты 2 и 3 могут использоваться для внешних прерываний. После того, как вы выбрали соответствующий контакт прерывания, вы можете подключить провод выхода датчика Холла к этому контакту, а также подключить входное напряжение к 5 В и заземление к контакту заземления.

Подключение датчика эффекта Холла к Arduino 

В приведенном ниже примере кода показано, как настроить прерывание в среде Arduino IDE, при котором прерывание будет срабатывать по нарастающему фронту импульса напряжения. Вы можете настроить прерывание так, чтобы оно срабатывало в разных точках изменения напряжения, и вам следует обратиться к таблице данных вашего микроконтроллера, чтобы определить доступные варианты. Последний аспект, который вам нужно сделать для настройки вашего прерывания, - это написать вашу подпрограмму обслуживания прерывания, которая является функцией, которую код будет запускать каждый раз при запуске прерывания. Эта функция должна быть короткой и выполнять только простые задачи, такие как подсчет количества импульсов от нашего датчика Холла. Функция countSteps () в приведенном ниже примере кода используется для подсчета количества импульсов от датчика Холла.

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

Перемещение вашего линейного привода в исходное положение

Чтобы точно использовать позиционную обратную связь от датчика Холла, вам всегда нужно знать начальное положение вашего линейного привода. Хотя, когда вы впервые включаете свою систему, ваш микроконтроллер не сможет определить, выдвинут ли привод или нет. Это потребует от вас вернуть линейный привод в известное положение. Чтобы вернуть линейный привод в исходное положение, вам нужно будет установить его в известное положение, например, полностью втянуть. Вы также можете использовать внешние концевые выключатели для установки вашего известного положения в другое место, кроме полностью выдвинутого или втянутого. Используя приведенный ниже код Arduino в качестве примера, мы захотим настроить цикл WHILE, который будет приводить наш линейный привод к вашему известному положению, в данном случае полностью втянутому. Мы знаем, что вы находитесь в известной нам позиции, потому что датчик Холла не сработает. В этом случае мы проверяем, изменилась ли переменная steps, чтобы определить, было ли запущено прерывание. Нам также необходимо убедиться, что прошло достаточно времени, чтобы ожидать срабатывания прерывания, для этого мы используем функцию millis (), которая выводит время в миллисекундах с момента запуска кода, и мы сравниваем это с предыдущей отметкой времени. . Как только мы определили, что линейный привод находится в нашем исходном положении, мы останавливаем привод, сбрасываем переменную шагов и выходим из цикла WHILE.

Работа с ложными триггерами

Хотя датчики на эффекте Холла не так чувствительны к электрическому шуму, как потенциометр, электрический шум все же может влиять на выходной сигнал. Подскакивание переключателя также может быть проблемой с датчиками Холла, которые могут запускать подсчет ложных импульсов, что может повлиять на то, как далеко, по мнению вашего микроконтроллера, переместился линейный привод. Несколько дополнительных импульсов не сильно повлияют на позиционирование, так как на дюйм приходится 1000 импульсов, но со временем это может стать более серьезной проблемой. Вы можете бороться с этими проблемами, используя внутренний таймер для фильтрации ложных срабатываний. Поскольку вы можете определить ожидаемую частоту обнаружения новых импульсов, вы можете отфильтровать случаи, когда прерывание было вызвано шумом. В примере кода ниже trig-Delay - это временная задержка между каждым импульсом. Если прерывание было инициировано до этой задержки, то импульс не будет засчитан.

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

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

Резюме

Использование датчика Холла для позиционной обратной связи обеспечивает гораздо большее разрешение по сравнению с обратной связью от потенциометра. Поскольку на дюйм перемещения может приходиться 1000 импульсов, датчики на эффекте Холла обеспечивают точность и надежность позиционирования вашего линейного привода. Датчики на эффекте Холла также обеспечивают большую способность обеспечивать одновременное движение нескольких линейных приводов, поскольку счетчик импульсов более точен, чем изменение напряжения потенциометра. Используя наши FA-SYNC-X контроллер привода, вы даже можете обеспечить синхронное движение приводов независимо от нагрузки. Для домашних мастеров вы можете проверить, как обеспечить синхронное движение ваших приводов, используя Arduino. Вот.

Ниже приведен полный пример кода, который используется в этом блоге и предназначен для управления длиной хода 14 дюймов. Bullet Series 36 Cal. Линейный привод. Линейный привод приводится в действие с помощью водитель мотора, который вы можете узнать, как настроить Вот

[1] Монари, Г. (июнь 2013 г.) Понимание разрешения в оптических и магнитных энкодерах. Полученное из: https://www.electronicdesign.com/technologies/components/article/21798142/understanding-resolution-in-optical-and-magnetic-encoders

Tags:

Share this article

серия обогащения

Нужна помощь в поиске правильного привода?

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