Освой Arduino играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
Датчик Холла OH137
Модуль KY-003
Модуль KY-024
Модуль KY-035
Униполярный датчик Холла OH137 - датчик, работающий на эффекте Холла - при помещении в магнитное поле некоторого проводника с постоянным током, в этом проводнике возникает поперечная разность потенциалов.
Подключение показано на рисунке.
Показания сигнала зависят от полюса магнита (поэтому он называется униполярным).
При подключении к плате используйте резистор на 820 Ohm и конденсатор на 20 pF.
//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) выполнен на базе элемента "44E" и позволяет обнаруживать магнитное поле. Если рядом с датчиком нет магнитного поля, то на сигнальном выходе датчика имеется высокий уровень и наоборот если поле присутствует, то на выходе низкий уровень напряжения, таким образом датчик имеет цифровой выход.
На плате модуля есть светодиод, который горит когда есть магнитное воздействие. Существуют также аналоговый (KY-035) и комбинированный датчик Холла (KY-024).
Имеет три вывода: сигнальный вывод 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 является линейным датчиком Холла (датчик магнитного поля), способный обрабатывать цифровой и аналоговые сигналы.
Цифровой выход выдаёт логический 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-003, только у него нет встроенного светодиода (стоит пустая заглушка).
Других отличий нет - схема соединений и код остаётся без изменений.
Входит в состав набора Набор из 37 датчиков
На плате ESP32 есть встроенный датчик Холла.