Датчик Холла

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

Принцип работы

Датчик состоит из регулятора напряжения, генератора холловского напряжения, дифференциала, усилителя, триггера Шмитта и имеет выход с открытым коллектором. Когда он обнаруживает магнитный поток плотности, он выводит цифровой сигнал напряжения. Это магниточувствительный контур, который работает по униполярному принципу и подходит для прямоугольного и циллиндрического магнитов. Датчик реагирует на наличие или отсутствие поля южного полюса магнита. На северный полюс датчик не реагирует. Состояние датчика изменяется при приближении и удалении от южного полюса магнита.

Для удобства и простоты использования мы разместили всю схему с необходимой обвязкой на одной плате, к модулю необходимо подключить только питание и выводы контроллера при помощи четырехконтактного разъема.

Технические характеристики модуля

Сенсор: 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);
  }
}

Далее необходимо открыть монитор порта, туда будут выводиться данные с датчика. Если поднести магнит к датчику - данные будут меняться и встроенный светодиод на плате микроконтроллера будет соответствующе реагировать.