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);
}
См.также
Внешние ссылки