Как подключить датчик Холла 49E к Arduino
Содержание
- 1 Описание датчика Холла 49E
- 2 Схема подключения модуля с датчиком Холла к Arduino
- 2 Скетч для считывания показаний датчика Холла 49E
- 3 Скетч для определения скорости вращения диска
- 4 Значения с аналогового каналадатчика Холла 49E
В статье рассматривается подключение датчика Холла 49E к Arduino.
-
или иная совместимая плата (я буду использовать Arduino Nano); ;
- соединительные провода (рекомендую вот такой набор); (breadboard);
- персональный компьютер со средой разработки Arduino IDE.
1 Описание датчика Холла 49E
Датчик Холла это прибор, который регистрирует изменение напряжённости магнитного поля. В настоящее время датчики на основе эффекта Холла нашли широкое применение. Например:
- датчики скорости вращения широко используются в автомобилестроении и везде, где требуется определить скорость вращения колеса или иного вращающегося объекта; сенсоры на основе эффекта Холла пришли на замену механическим герконам;
- датчики приближения; типичный пример раскладной чехол на вашем смартфоне, который включает подсветку экрана при открытии;
- измерение угла поворота;
- измерение величины вибрации;
- измерение величины магнитного поля магнитометры и цифровые компасы;
- измерение силы тока (переменного и постоянного);
- измерение воздушных зазоров, уровня жидкости, и многие другие.
Приобрести такой датчик можно здесь.
2 Схема подключения модуля с датчиком Холла к Arduino
Модуль с датчиком Холла содержит следующие компоненты: подстроечный резистор, двухканальный компаратор, несколько согласующих резисторов, пару светодиодов и собственно, сам датчик Холла 49E.
Модуль с датчиком Холла 49E
Подстроечный резистор служит для настройки чувствительности датчика Холла. Первый светодиод сигнализирует о наличии напряжения питания на модуле, второй о превышении магнитным полем установленного порога срабатывания.
Модуль с датчиком имеет 4 вывода. Назначение выводов приведено в таблице. В третьем столбце таблицы соответствующий вывод платы Arduino, к которому будет подключаться модуль.
Вывод | Назначение | Вывод Arduino |
---|---|---|
G | Земля. | GND |
+ | Питание +2,310 В. | 5V |
AO | Аналоговый выход значение напряжённости магнитного поля. | A0 |
DO | Цифровой выход индикатор превышения напряжённости магнитного поля заданного порога. | 12 |
Вот как будет выглядеть модуль с датчиком Холла, подключённый к плате 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 В (правая шкала). Если мы поднесём магнит одним полюсом к датчику Холла, показания будут меняться от нуля в одну сторону, если поднесём другим полюсом в другую.
Таким образом, по показаниям аналогового канала датчика Холла можно судить о величине магнитного поля и о направлении магнитных силовых линий.
Источник: