Оглавление:

Датчик эффекта Холла Arduino с прерываниями: 4 шага
Датчик эффекта Холла Arduino с прерываниями: 4 шага

Видео: Датчик эффекта Холла Arduino с прерываниями: 4 шага

Видео: Датчик эффекта Холла Arduino с прерываниями: 4 шага
Видео: Датчик Холла A3144, обзор и подключение к Arduino 2024, Ноябрь
Anonim
Image
Image
Что такое датчик эффекта Холла?
Что такое датчик эффекта Холла?

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

Инструменты и материалы, использованные в видео (партнерские ссылки): Arduino Uno:

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

Разные резисторы:

Шаг 1. Что такое датчик на эффекте Холла?

Что такое датчик эффекта Холла?
Что такое датчик эффекта Холла?
Что такое датчик эффекта Холла?
Что такое датчик эффекта Холла?
Что такое датчик эффекта Холла?
Что такое датчик эффекта Холла?

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

Датчики на эффекте Холла используются для определения приближения, позиционирования, определения скорости и измерения тока.

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

Датчик имеет 3 контакта, VCC, землю и выход. Вы можете идентифицировать их в таком порядке, если будете держать датчик этикетками к себе. VCC находится слева, а выход - справа. Чтобы предотвратить дрейф напряжения, между VCC и выходом в подтягивающей конфигурации используется резистор 10 кОм.

Шаг 2: Что такое прерывание?

Что такое прерывание?
Что такое прерывание?
Что такое прерывание?
Что такое прерывание?

Чтобы подключить датчик к Arduino, мы будем использовать простую, но очень мощную функцию под названием Interrupt. Задача прерывания - убедиться, что процессор быстро реагирует на важные события. При обнаружении определенного сигнала прерывание (как следует из названия) прерывает все, что делает процессор, и выполняет некоторый код, предназначенный для реакции на любой внешний стимул, подаваемый на Arduino. Как только этот код завершен, процессор возвращается к тому, что он делал изначально, как будто ничего не произошло!

Что в этом удивительного, так это то, что он структурирует вашу систему, чтобы быстро и эффективно реагировать на важные события, которые нелегко предвидеть в программном обеспечении. Лучше всего то, что это освобождает ваш процессор для выполнения других дел, пока он ожидает появления события.

Arduino Uno имеет два контакта, которые мы можем использовать как прерывания, контакт 2 и 3. Функция, которую мы используем для регистрации контакта как прерывания, называется attachInterrupt, где в качестве первого параметра мы отправляем контакт, который будет использоваться, второй параметр - это имя функции, которую мы хотим вызвать при обнаружении прерывания, и в качестве третьего параметра мы отправляем режим, в котором мы хотим, чтобы прерывание работало. В описании видео есть ссылка на полную ссылку на эту функцию.

Шаг 3. Подключения и код

Подключения и код
Подключения и код
Подключения и код
Подключения и код
Подключения и код
Подключения и код

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

В функции настройки мы сначала указываем режимы на используемых выводах, а затем присоединяем прерывание, как объяснялось ранее. Еще одна функция, которую мы здесь используем, - это digitalPinToInterrupt, которая, как следует из названия, переводит номер контакта в номер прерывания.

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

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

Третий параметр функции attachIntertupt - это режим, в котором она работает. Когда у нас есть CHANGE, функция мигания будет выполняться каждый раз при изменении состояния прерывания, поэтому она будет вызываться один раз, когда мы приблизим магнит к датчику, и снова сработать, когда мы удалим его. Таким образом, светодиод горит, пока мы держим магнит близко к датчику.

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

Последний режим, который мы попробуем, - НИЗКИЙ. С его помощью, когда магнит находится близко, функция мигания будет постоянно срабатывать, а светодиод будет мигать, постоянно меняя свое состояние. Когда мы убираем магнит, это действительно непредсказуемо, как закончится состояние, поскольку это зависит от времени. Однако этот режим действительно полезен, если нам нужно знать, как долго была нажата кнопка, поскольку мы можем использовать функции времени, чтобы определить это.

Шаг 4: Дальнейшие действия

Дальнейшие действия
Дальнейшие действия

Прерывания - это простой способ сделать вашу систему более отзывчивой к задачам, чувствительным ко времени. У них также есть дополнительное преимущество в виде освобождения вашего основного `loop ()`, чтобы сосредоточиться на какой-то основной задаче в системе. (Я считаю, что это делает мой код немного более организованным, когда я их использую - легче увидеть, для чего был разработан основной фрагмент кода, в то время как прерывания обрабатывают периодические события.) Показанный здесь пример является чуть ли не самым лучшим. основной случай использования прерывания - вы можете использовать их для чтения устройства I2C, отправки или получения данных по беспроводной сети или даже для запуска или остановки двигателя.

Если у вас есть интересное использование датчика прерывания или датчика холла, обязательно дайте мне знать в комментариях, поставьте лайк и поделитесь этим руководством, и не забудьте подписаться на мой канал YouTube, чтобы получить больше потрясающих руководств и проектов в будущее.

Ура и спасибо за просмотр!

Рекомендуемые: