Датчик Холла - датчик магнитного поля, который используется в охранных сигнализациях, как датчик тока для бесщеточных моторов постоянного тока либо для бесконтактного управления положением переключателя.
Датчик состоит из регулятора напряжения, генератора холловского напряжения, дифференциала, усилителя, триггера Шмитта и имеет выход с открытым коллектором. Когда он обнаруживает магнитный поток плотности, он выводит цифровой сигнал напряжения. Это магниточувствительный контур, который работает по униполярному принципу и подходит для прямоугольного и циллиндрического магнитов. Датчик реагирует на наличие или отсутствие поля южного полюса магнита. На северный полюс датчик не реагирует. Состояние датчика изменяется при приближении и удалении от южного полюса магнита.
Для удобства и простоты использования мы разместили всю схему с необходимой обвязкой на одной плате, к модулю необходимо подключить только питание и выводы контроллера при помощи четырехконтактного разъема.
Сенсор: AH201
Тип: биполярный
Рабочее напряжение: 4,5 - 24 В.
Габариты: 22×29 мм
Подключение модуля осуществляется с помощью разъема XH-2.54-4P, выводы которого имеют следующие назначения:
VCC - питание датчика (+5V)
CH2 - подключается к контроллеру
CH1 - не задействован
GND - земля (общий)
Чтобы начать работу с датчиком его необходимо подключить к микроконтроллеру по схеме ниже. Для быстрого и надежного подключения используйте QuatroPort A050.
Далее необходимо загрузить следующую программу в микроконтроллер.
const int sensorPin = 2; // Данные с датчика приходят на пин 2 const int ledPin = 13; // Встроенный светодиод на пине 13 int sensorState = 0; // Переменная для хранения состояния датчика void setup() { pinMode(ledPin, OUTPUT); // Настраиваем пин светодиода на выход pinMode(sensorPin, INPUT); // Настраиваем пин для датчика Холла на вход Serial.begin(9600); // Настраиваем монитор порта, чтобы следить за состоянием данных с датчика } void loop() { buttonState = digitalRead(buttonPin); // Считываем данные с цифрового датчика Serial.println(buttonState); // Пишем в последовательный монитор данные, пришедшие с датчика. if (buttonState == HIGH) { // Зажигаем светодиод, если пришла 1. digitalWrite(ledPin, HIGH); } else { // Гасим светодиод, если пришел 0. digitalWrite(ledPin, LOW); } }
Далее необходимо открыть монитор порта, туда будут выводиться данные с датчика. Если поднести магнит к датчику - данные будут меняться и встроенный светодиод на плате микроконтроллера будет соответствующе реагировать.