Оглавление:
- Шаг 1. Что такое датчик на эффекте Холла?
- Шаг 2: Что такое прерывание?
- Шаг 3. Подключения и код
- Шаг 4: Дальнейшие действия
Видео: Датчик эффекта Холла Arduino с прерываниями: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
Всем привет, Сегодня я покажу вам, как подключить датчик холла к 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, чтобы получить больше потрясающих руководств и проектов в будущее.
Ура и спасибо за просмотр!
Рекомендуемые:
Датчик эффекта Холла: рождественская музыкальная шкатулка: 4 ступени
Датчик эффекта Холла: рождественская музыкальная шкатулка: это музыкальная шкатулка, которая воспроизводит музыку после открытия (посмотрите видео!). Это отличный, особенный и уникальный способ упаковать подарки для любимого человека! Он использует датчик Холла, чтобы проверить, открыта ли крышка из-за отсутствия магнитного поля
Тональный генератор Arduino без библиотеки или последовательных функций (с прерываниями): 10 шагов
Тональный генератор Arduino без библиотеки или последовательных функций (с прерываниями): я обычно не делаю инструкций по этому поводу, я предпочитаю свои металлоконструкции, но поскольку я студент-электротехник и должен пройти курс по микроконтроллерам ( Проектирование встроенных систем), я подумал, что сделаю инструктаж на одном из своих п
Датчик эффекта Холла на Arduino с использованием Fidget Spinner: 3 шага (с изображениями)
Датчик эффекта Холла на Arduino с использованием Fidget Spinner: Аннотация В этом проекте я объясняю, как работает датчик эффекта Холла, измеряющий скорость Fidget Spinner с помощью платы Arduino. Работа: -Датчик эффекта Холла - это преобразователь, который изменяет свое выходное напряжение в ответ на магнитное поле. Эффект Холла
СДЕЛАЙТЕ контроллер постоянства визуального эффекта со светодиодами: 4 шага
СДЕЛАЙТЕ постоянство эффекта зрения контроллера с помощью светодиодов: Здравствуйте, это моя первая инструкция, и я надеюсь, вам она понравится. Это простой проект, использующий MAKE Controller (очень полезный контроллер с www.makezine.com), который создает эффект постоянства зрения с помощью светодиодов. Когда вы быстро перемещаете доску, вы можете
Перевод вашей камеры в режим «военное ночное видение», добавление эффекта ночного видения или создание режима ночного видения на любой камере !!!: 3 шага
Перевод вашей камеры в режим «военное ночное видение», добавление эффекта ночного видения или создание режима ночного видения на любой камере !!!: *** Это было внесено в ЦИФРОВОЙ DAYS PHOTO КОНКУРС, пожалуйста, проголосуйте за меня ** * Если вам нужна помощь, напишите по электронной почте: [email protected] Я говорю на английском, французском, японском, испанском и других языках, если вы