Рубрики
Проекты на Raspberry Pi

Подключение датчика Холла к Raspberry Pi

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

В данной статье мы рассмотрим подключение датчика Холла к плате Raspberry Pi. Более подробно о принципах работы датчика Холла вы можете прочитать в статье про его подключение к микроконтроллеру AVR. Также мы рассматривали подключение датчика Холла к плате Arduino.

Необходимые компоненты

  1. Плата Raspberry Pi (купить на AliExpress).
  2. Датчик Холла A3144 (купить на AliExpress).
  3. Светодиод (купить на AliExpress).
  4. SD карта.
  5. LAN кабель.
  6. Источник питания.
  7. Макетная плата.
  8. Соединительные провода.

Внешний вид датчика Холла A3144 показан на следующем рисунке.

Схема проекта

Схема подключения датчика Холла к плате Raspberry Pi представлена на следующем рисунке.

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

Внешний вид собранной на макетной плате конструкции проекта показан на следующем рисунке.

Объяснение программы для Raspberry Pi

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

В этом проекте мы использовали подключение к плате Raspberry Pi с помощью программы putty по протоколу SSH, однако вы можете непосредственно подключать плату к монитору. Для нашего случая удаленной работы с платой мы в корневом каталоге платы создали специальный каталог, в котором будут храниться все файлы нашего проекта. Мы назвали этот каталог «hallsensor«, однако вы можете использовать любое другое имя.

Для создания этого каталога мы использовали следующую команду:

Затем перейдем в этот созданный каталог:

Далее запустим редактор:

Первым делом в коде программы мы подключим (импортируем) библиотеку для работы с контактами (RPI.GPIO).

Далее мы установим режим работы с контактами по их физическим номерам (BCM) и отключим показ любых предупреждений (warnings).

Затем мы объявим (дадим осмысленные названия) используемые контакты.

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

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

Чтобы сохранить и выйти из файла нажмите CTRL + X, а затем Y.

Затем запускаем нашу программу на выполнение с помощью команды:

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

Этот проект можно использовать для конструирования, к примеру, спидометра, хотя, конечно, вычислительная мощность платы Raspberry Pi для создания спидометра будет все же избыточна и его целесообразнее все же собирать на основе платы Arduino.

Исходный код программы на Python

Видео, демонстрирующее работу проекта

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *