ESP32:Примеры/Считывание данных от датчика эффекта Холла
Считывание данных от датчика эффекта Холла
Плата ESP32 оснащена датчиком эффекта Холла, который расположен под металлической крышкой (см. фото ниже).
Датчик эффекта Холла может улавливать изменения в окружающем магнитном поле. Чем больше магнитное поле, тем выше будет выходное напряжение.
Датчик эффекта Холла можно использовать вместе с пороговым значением, и тогда он будет работать как переключатель. Как правило, датчики эффекта Холла используются для...
- Определения приближения объектов
- Расчета месторасположения
- Определения количества вращений колеса
- Определения закрытия двери и пр.
Считывать данные от датчика эффекта Холла ESP32 при помощи IDE Arduino очень просто – нужна лишь функция hallRead(). Скопируйте код в IDE Arduino из раздела снизу.
Этот скетч-пример просто считывает данные от датчика эффекта Холла и показывает их в мониторе порта.
val = hallRead();
// печатаем считанные данные в мониторе порта:
Serial.println(val);
Ставим в боке loop() задержку в 1 секунду, чтобы у вас была возможность прочесть эти данные.
delay(1000);
Загрузив код, откройте монитор порта на скорости 9600 бод. Приложите магнит к датчику эффекта Холла и посмотрите на значения в мониторе порта. Они должны увеличиться...
...или уменьшиться – в зависимости от того, какой магнитный полюс «смотрит» на датчик:
Чем ближе магнит к датчику, тем выше безусловные значения.
Итак, если вкратце, в этом примере мы узнали следующее:
- Плата ESP32 оснащена датчиком эффекта Холла;
- Датчик эффекта Холла способен определять изменения в окружающем магнитном поле;
- Данные от датчика Холла могут быть положительными/отрицательными в зависимости от того, какой магнитный полюс «смотрит» на датчик;
Необходимое оборудование
- Плата ESP32 - 1шт.;
Схема
Для данного примера нужна только плата.
Код
// Простой скетч-пример для получения доступа
// к данным датчика эффекта Холла ESP32.
// Значения, полученные от него, могут быть очень небольшими.
// Автор – Брайан Деггер / @sctv
int val = 0;
void setup() {
Serial.begin(9600);
}
// блок loop() предназначен для главного кода;
// т.е. код, помещенный тут, будет постоянно повторяться:
void loop() {
// считываем данные от датчика эффекта Холла:
val = hallRead();
// печатаем считанные данные в мониторе порта:
Serial.println(val);
delay(1000);
}
См.также
Внешние ссылки