Как подключить датчик Холла 49E к Arduino

Содержание

В статье рассматривается подключение датчика Холла 49E к Arduino.

    или иная совместимая плата (я буду использовать Arduino Nano); ;

  • соединительные провода (рекомендую вот такой набор); (breadboard);
  • персональный компьютер со средой разработки Arduino IDE.

1 Описание датчика Холла 49E

Датчик Холла это прибор, который регистрирует изменение напряжённости магнитного поля. В настоящее время датчики на основе эффекта Холла нашли широкое применение. Например:

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

Приобрести такой датчик можно здесь.

2 Схема подключения модуля с датчиком Холла к Arduino

Модуль с датчиком Холла содержит следующие компоненты: подстроечный резистор, двухканальный компаратор, несколько согласующих резисторов, пару светодиодов и собственно, сам датчик Холла 49E.

Модуль с датчиком Холла 49E Модуль с датчиком Холла 49E

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

Модуль с датчиком имеет 4 вывода. Назначение выводов приведено в таблице. В третьем столбце таблицы соответствующий вывод платы Arduino, к которому будет подключаться модуль.

Вывод Назначение Вывод Arduino
G Земля. GND
+ Питание +2,310 В. 5V
AO Аналоговый выход значение напряжённости магнитного поля. A0
DO Цифровой выход индикатор превышения напряжённости магнитного поля заданного порога. 12

Вот как будет выглядеть модуль с датчиком Холла, подключённый к плате Arduino Nano:

Подключение модуля с датчиком Холла к Arduino Nano Подключение модуля с датчиком Холла к Arduino Nano

2 Скетч для считывания показаний датчика Холла 49E

Итак, давайте проверим наш датчик в действии. Напишем самый простой скетч, который только и делает, что выводит считанные значения в последовательный порт.

Загрузим скетч и посмотрим, что же выводится в порт:

Вывод в последовательный порт показаний датчика Холла Вывод в последовательный порт показаний датчика Холла

Очень интересно. Вывод цифрового канала понятен: "0" магнитное поле ниже заданного подстроечным резистором значения, "1" выше (я поднёс магнит к датчику). А что же показывает аналоговый канал? Разберёмся с этим чуть позже.

3 Скетч для определения скорости вращения диска

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

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

Установка для определения скорости вращения на основании показаний датчика Холла Установка для определения скорости вращения на основании показаний датчика Холла

Вспомним формулу угловой скорости: ω = φ / t где ω угловая скорость, φ угол поворота, t время, за которое диск повернулся на этот угол. В нашем случае угол (1 оборот) будет равен 360 или 2π радиан. Всё, что нам остаётся это подсчитать время, за которое происходит один оборот диска.

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

Временная диаграмма цифрового сигнала с датчика Холла для вращающегося диска Временная диаграмма цифрового сигнала с датчика Холла для вращающегося диска

Для определения промежутка времени используем встроенную функцию millis(), которая возвращает количество миллисекунд, прошедших с момента включения платы Arduino.

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

Скорость и период вращения диска выводятся в монитор последовательного порта Скорость и период вращения диска выводятся в монитор последовательного порта

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

Возвращаясь к идее спидометра для велосипеда, нужно вспомнить ещё одну формулу связь угловой и линейной скоростей: v = ω r

Здесь v линейная скорость, ω угловая скорость, r радиус колеса велосипеда. Теперь несложно дописать наш последний скетч с учётом этой формулы.

4 Значения с аналогового каналадатчика Холла 49E

Теперь разберёмся, что же показывают аналоговые значения с датчика Холла.

Датчик выдаёт напряжение, которое изменяется в зависимости от величины магнитного поля. Вектор индукции магнитного поля измеряется в Гауссах (Гс, GS по-английски). Согласно техническому описанию на детектор Холла, пределы измерения датчика Холла 49E ±1500 Гс с линейным участком от −1200 до +1200 Гс., а чувствительность датчика примерно 2,9 мВ/Гс. Рассмотрим график зависимости напряжения на датчике Холла от величины магнитного поля:

График зависимости напряжения на датчике Холла от величины магнитного поля График зависимости напряжения на датчике Холла от величины магнитного поля

Помните наш первый скетч? Показания, снятые с датчика, изменялись в районе 508..525 отчётов (левая шкала ординат на графике). Если перевести их в вольты, то это как раз около нуля шкалы отсчёта датчика, или 2,5 В (правая шкала). Если мы поднесём магнит одним полюсом к датчику Холла, показания будут меняться от нуля в одну сторону, если поднесём другим полюсом в другую.

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


Источник: soltau.ru