Освой Arduino играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Датчик Холла

Датчик Холла OH137
Модуль KY-003
Модуль KY-024
Модуль KY-035

Датчик Холла OH137

Униполярный датчик Холла OH137 - датчик, работающий на эффекте Холла - при помещении в магнитное поле некоторого проводника с постоянным током, в этом проводнике возникает поперечная разность потенциалов.

OH137
  • Тип: Униполярный
  • Рабочий ток источника питания: 5 mA
  • Максимальный выходной ток: 25 mA
  • Рабочая точка, макс.: 18 mT
  • Точка сброса мин.: 2 mT
  • Рабочая температура: -40...85 C
  • Рабочее напряжение питания: 24 V
  • Тип корпуса: TO-92
  • Тип выхода: open-collector
  • Напряжение питания: 4.5 V - 24 V

Подключение показано на рисунке.

OH137

Показания сигнала зависят от полюса магнита (поэтому он называется униполярным).

OH137

При подключении к плате используйте резистор на 820 Ohm и конденсатор на 20 pF.

OH137

//OH137 Hall Sensor Tutorial

int hallPin = 2; // Use Pin 0 as our Input
int hallVal = HIGH; // This is where we record the OH137 Input
boolean isMagneticField = false;

unsigned long lastDetectTime; // Record the time that we measured a Magnetic Field
int magFieldHoldTime = 500; // How long to hold the magnetic field detection on.

void setup ()
{
    Serial.begin(9600);  
    pinMode (hallPin, INPUT);
}
  
void loop ()
{
    hallVal = digitalRead (hallPin);
  
    if (hallVal == LOW) // means magnetic field detected
    {
        lastDetectTime = millis(); // record the last time mag field was detected
        if (!isMagneticField)
		{
            Serial.println("MAGNETIC SOUTH POLE DETECTED");
            isMagneticField = true;
        }
    }
    else
    {
        if( (millis()-lastDetectTime) > magFieldHoldTime  &&  isMagneticField)
		{
            Serial.println("no magnetic field");
            isMagneticField = false;
        }
    }
}

Модуль KY-003

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

На плате модуля есть светодиод, который горит когда есть магнитное воздействие. Существуют также аналоговый (KY-035) и комбинированный датчик Холла (KY-024).

KY-003

Имеет три вывода: сигнальный вывод S подключается к цифровому выводу платы, средний к питанию, а крайний левый к земле.


KY-003 | Arduino
----------------
     S | D
     + | 5V 		 
     - | GND 

При появлении магнитного поля будет включаться светодиод на выводе 13.


int ledPin = 13;
int hallPin = 3;
int val;

void setup()
{
  pinMode(ledPin, OUTPUT);
  pinMode(hallPin, INPUT);
}

void loop()
{
  val = digitalRead(hallPin);
  if (val == LOW) //when magnetic field is detected, turn led on
  {
    digitalWrite(ledPin, HIGH);
  }
  else
  {
    digitalWrite(ledPin, LOW);
  }
}

Входит в состав набора Набор из 37 датчиков

Модуль KY-024

Linear magnetic Hall sensors KY-024

Модуль KY-024 является линейным датчиком Холла (датчик магнитного поля), способный обрабатывать цифровой и аналоговые сигналы.

Цифровой выход выдаёт логический 0 если магнита рядом нет и логическую 1, если магнит в поле чувствительности датчика. А на аналоговом выходе можно отслеживать изменение напряжения, когда магнитное поле есть и когда его нет.

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

Модуль определяет присутствие поля постоянного магнита или магнитного поля катушки проволоки, подключённой к постоянному току. Часто применяется для определения скорости вращения различных деталей механизмов.

Имеет четыре вывода: На + подаём 5В, на G – землю (GND), A0 – аналоговый выход, D0 – цифровой выход.


KY-024 | Arduino
----------------
    A0 | A0
     G | GND 
     + | 5V
    D0 | D	 

Скетч.


const int digital = 2; // Цифровой пин 2
const int analog = A0; // Аналоговый пин A0
 
void setup()
{
    pinMode(digital, INPUT);
    Serial.begin(9600);
}
 
void loop()
{
    Serial.print("Digital: ");
    Serial.print(digitalRead(digital)); // Цифровой сигнал с датчика
    Serial.print(", Analog: ");
    Serial.println(analogRead(analog)); // Аналоговый сигнал с датчика
    delay(500);
}

Входит в состав набора Набор из 37 датчиков

Модуль KY-035

Аналоговый датчик Холла KY-035 внешне практически не отличается от датчика KY-003, только у него нет встроенного светодиода (стоит пустая заглушка).

Других отличий нет - схема соединений и код остаётся без изменений.

KY-035

Входит в состав набора Набор из 37 датчиков

Дополнительные материалы

На плате ESP32 есть встроенный датчик Холла.

Реклама