ESP32:Примеры/Считывание данных от датчика эффекта Холла: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
 
Нет описания правки
 
(не показаны 3 промежуточные версии 2 участников)
Строка 1: Строка 1:
{{ESP32 панель перехода}}
{{ESP32 панель перехода}}
{{Перевод от Сubewriter}}
{{Перевод от Сubewriter}}
{{Myagkij-редактор}}
{{Myagkij-редактор}}
{{Черновик}}


=Считывание данных от датчика эффекта Холла=
=Считывание данных от датчика эффекта Холла=
Строка 26: Строка 23:
Этот скетч-пример просто считывает данные от датчика эффекта Холла и показывает их в мониторе порта.
Этот скетч-пример просто считывает данные от датчика эффекта Холла и показывает их в мониторе порта.


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
val = hallRead();
val = hallRead();
   // печатаем считанные данные в мониторе порта:
   // печатаем считанные данные в мониторе порта:
Строка 34: Строка 31:
Ставим в боке loop() задержку в 1 секунду, чтобы у вас была возможность прочесть эти данные.
Ставим в боке loop() задержку в 1 секунду, чтобы у вас была возможность прочесть эти данные.


<syntaxhighlight lang="c" enclose="div">
<syntaxhighlight lang="c">
delay(1000);
delay(1000);
</syntaxhighlight>
</syntaxhighlight>
Строка 65: Строка 62:
==Код==
==Код==


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
// Простой скетч-пример для получения доступа
// Простой скетч-пример для получения доступа
// к данным датчика эффекта Холла ESP32.
// к данным датчика эффекта Холла ESP32.
Строка 93: Строка 90:


<references />
<references />
{{Навигационная таблица/Портал/ESP32}}


[[Категория:ESP32]]
[[Категория:ESP32]]

Текущая версия от 09:18, 18 июня 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Считывание данных от датчика эффекта Холла

Плата 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);
}

См.также

Внешние ссылки