Основы ESP32: Датчик Холла (Hall Effect Sensor)
Датчик Холла (или просто датчик на эффекте Холла) — это тип датчика, который обнаруживает наличие и силу магнитного поля с помощью эффекта Холла. Он широко используется в таких приложениях, как определение приближения, позиционирование, измерение скорости и измерение тока.
Эти датчики настолько дешёвые, что можно купить дюжину за доллар. Но когда такой недорогой датчик встроен в многофункциональный микроконтроллер с поддержкой WiFi, такой как ESP32, поначалу это может показаться ненужным. Тем не менее, кто знает? Возможно, в будущем вам придёт идея его использовать. Например, WiFi-датчик состояния двери. Видите? У вас уже появляются идеи.
Итак, давайте узнаем, как считывать показания датчика Холла на ESP32. Но сначала разберёмся, как работают датчики на эффекте Холла.
Как работают датчики на эффекте Холла?
Датчик на эффекте Холла использует явление, называемое эффектом Холла, которое было открыто Эдвином Холлом в 1879 году. Основная концепция проста:
Представьте себе проводящую пластину в форме долларовой купюры. Когда к левой и правой сторонам подключается источник постоянного напряжения, это заставляет электроны течь через проводник по прямой линии. При отсутствии магнитного поля, если вы измерите напряжение между верхней и нижней сторонами пластины, оно будет практически равно нулю.
Однако когда присутствует магнитное поле с линиями магнитного потока, перпендикулярными току, сила Лоренца действует на электроны. Эта сила заставляет их отклоняться от прямолинейного пути, в результате чего они накапливаются на одной стороне проводника, а на другой стороне их становится меньше. Таким образом, одна сторона проводника становится более насыщенной электронами, чем другая. Это приводит к появлению разности потенциалов (известной как напряжение Холла) на проводнике. Это явление называется эффектом Холла.
Чем сильнее магнитное поле, тем больше отклонение электронов; чем больше ток, тем больше электронов отклоняется. В любом случае напряжение Холла будет больше. Другими словами, напряжение Холла прямо пропорционально как электрическому току, протекающему через проводник, так и напряжённости магнитного поля.
Таким образом, измерив напряжение Холла при известном токе, можно определить напряжённость магнитного поля.
Датчик Холла ESP32
ESP32 имеет встроенный датчик Холла, расположенный под металлической крышкой модуля ESP32-WROOM-32.
Будучи интегрированным в ESP32, датчик позволяет легко связать показания с функциональностью WiFi или Bluetooth, что упрощает удалённый мониторинг и управление.
Хотя встроенный датчик Холла может не заменить специализированные внешние датчики для точных применений из-за своего расположения и чувствительности, он всё же предлагает ряд потенциальных вариантов использования. Это включает базовое обнаружение магнитного поля, запуск определённых функций при приближении магнита или даже создание простых образовательных проектов для понимания эффекта Холла.
Примечание
Поскольку датчик расположен под металлической крышкой, он менее чувствителен к слабым магнитным полям, чем отдельные датчики Холла, поэтому для получения заметных показаний обычно требуются магниты значительной силы.
Чтение показаний датчика Холла
Чтение датчика Холла на ESP32 выполняется просто. В Arduino IDE для этого используется функция hallRead(). Эта функция возвращает целочисленное значение, представляющее напряжение Холла.
hallRead();
Пример кода
Давайте прочитаем показания датчика Холла, используя пример из библиотеки. Откройте Arduino IDE и перейдите в File > Examples > ESP32, затем откройте скетч HallSensor.
Этот пример просто считывает показания встроенного датчика Холла на ESP32 и выводит результат в монитор последовательного порта.
int val = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
val = hallRead();
// print the results to the serial monitor:
//Serial.print("sensor = ");
Serial.println(val);//to graph
}
После загрузки скетча откройте монитор последовательного порта на скорости 9600 бод и нажмите кнопку EN на ESP32.
Теперь попробуйте поднести магнит близко к чипу ESP32 — вы увидите, что показания изменяются в зависимости от расстояния и полярности магнита.
Визуализация сигнала в Serial Plotter поможет вам понять следующее: когда магнитное поле не обнаружено, выходное значение остаётся приблизительно на уровне 100. Если к датчику поднести южный полюс магнита, выходное значение увеличивается в сторону 200, а если поднести северный полюс магнита, выходное значение уменьшается в сторону 0.