Обзор
KY-003 — это модуль датчика магнитного поля на основе Hall-эффекта с использованием чипа A3144. Датчик выдает цифровой сигнал при обнаружении магнитного поля и широко применяется для бесконтактного обнаружения proximity, измерения скорости и отслеживания положения.
KY-003 — модуль Hall-сенсора, обнаруживающий магнитные поля с помощью чипа A3144. При наличии магнитного поля он выдает цифровой сигнал (LOW), что идеально подходит для proximity-датчиков, измерения скорости и отслеживания положения в электронных проектах.
О датчике магнитного поля KY-003
Модуль KY-003 — это Hall-датчик на основе чипа A3144, который обнаруживает магнитные поля и выдает цифровой сигнал (LOW) при их наличии. Датчик широко используется в системах бесконтактного обнаружения, измерения скорости вращения, отслеживания положения и магнитных переключателей.
⚡ Ключевые особенности
- Обнаружение магнитного поля — активируется при приближении магнита.
- Чип A3144 — обеспечивает стабильный цифровой вывод.
- Простой интерфейс — легко интегрируется с ESP32, Arduino и другими микроконтроллерами.
- Низкое энергопотребление — подходит для автономных и battery-powered приложений.
- Универсальность — применяется в системах безопасности, автоматизации и робототехнике.
Приобретите KY-003
Характеристики KY-003
Полные технические характеристики модуля Hall-датчика KY-003.
Распиновка KY-003
Модуль KY-003 имеет три вывода: GND (земля), VCC (питание) и S (цифровой выход сигнала). Сенсор основан на чипе A3144, который при обнаружении магнитного поля переключает выход в состояние LOW.
- Выход — активный LOW (LOW при магните).
- Чувствительность — реагирует на южный полюс магнита.
- Питание — 3.3В или 5В (совместим с ESP32).
| № | Название | Тип | Описание | Примечания |
|---|---|---|---|---|
| 1 | - (GND) | Питание | Подключение к земле | Общий провод |
| 2 | + (VCC) | Питание | Питание модуля | 3.3В или 5В |
| 3 | S (Signal) | Digital | Цифровой выход | LOW при обнаружении магнита |
Подключение KY-003 к ESP32
Подключите KY-003 к ESP32, используя цифровой GPIO пин. При обнаружении магнитного_field (южный полюс) выход модуля переходит в состояние LOW.
| Вывод KY-003 | Подключение | Вывод ESP32 | Описание |
|---|---|---|---|
| - (GND) обязательно | → | GND | Общая земля |
| + (VCC) обязательно | → | 3.3В | Питание (3.3В или 5В) |
| S (Signal) обязательно | → | GPIO4 | Цифровой вход (любой GPIO) |
Устранение неполадок KY-003
Распространённые проблемы и решения для запуска датчика Hall-эффекта.
Нет реакции на магнит
Датчик не обнаруживает магнит
Проблема: датчик не меняет состояние выхода при приближении магнита.
Возможные причины: неправильная полярность (нужен южный полюс), слишком большое расстояние, недостаточная сила магнита, неправильное питание.
Решение: используйте неодимовый магнит (южный полюс), уменьшите расстояние до 1-5 мм, проверьте напряжение питания (3.3В или 5В) и правильность подключения GPIO.
Ложные срабатывания
Срабатывает без магнита
Проблема: выход хаотично переключается без присутствия магнита.
Возможные причины: электромагнитные помехи от ближайших устройств, несоблюдение рекомендаций по расположению, отсутствие программного дебаунсинга.
Решение: увеличьте расстояние до источников EMI, используйте экранирование, добавьте задержку (delay) или аппаратный RC-фильтр для подавления помех, проверьте целостность проводки.
Выход постоянно LOW
Не переходит в HIGH
Проблема: выход固定的 в LOW вне зависимости от магнита.
Возможные причины: повреждение модуля, короткое замыкание на плате, неправильная конфигурация GPIO (pull-up резистор).
Решение: проверьте модуль мультиметром, убедитесь в правильности подключения (VCC и GND), убедитесь, что в коде активирован внутренний или внешний pull-up резистор на выходном пине (например, `pinMode(pin, INPUT_PULLUP)` в Arduino).
Советы по отладке
Serial монитор
Просмотр значений выхода
Проверка напряжения
Мультиметр и целостность
Дополнительные ресурсы
Примеры программирования KY-003
Готовые к использованию примеры кода для различных платформ и фреймворков
Пример для Arduino
Совместим с Arduino IDE и платами ESP32
C++
Пример для Arduino
Совместим с Arduino IDE и платами ESP32
#define HALL_SENSOR_PIN 7
#define LED_PIN 13
void setup() {
pinMode(HALL_SENSOR_PIN, INPUT);
digitalWrite(HALL_SENSOR_PIN, HIGH); // Enable internal pull-up resistor
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
Serial.println("KY-003 Hall Magnetic Sensor Test");
}
void loop() {
int sensorValue = digitalRead(HALL_SENSOR_PIN);
if (sensorValue == LOW) {
Serial.println("Magnetic field detected");
digitalWrite(LED_PIN, HIGH);
} else {
Serial.println("No magnetic field detected");
digitalWrite(LED_PIN, LOW);
}
delay(1000);
}
Этот Arduino-скетч настраивает KY-003 на цифровом пине 7 и LED на пине 13. При обнаружении магнитного полявыход датчика переходит в LOW, что зажигает LED и выводит сообщение в Serial Monitor. Внутренний pull-up резистор включается командой digitalWrite(pin, HIGH) после установки INPUT.
Пример для ESP-IDF
Официальный фреймворк Espressif для разработки IoT
C++
Пример для ESP-IDF
Официальный фреймворк Espressif для разработки IoT
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#define HALL_SENSOR_PIN GPIO_NUM_4
#define LED_PIN GPIO_NUM_2
void app_main(void) {
gpio_set_direction(HALL_SENSOR_PIN, GPIO_MODE_INPUT);
gpio_set_pull_mode(HALL_SENSOR_PIN, GPIO_PULLUP_ONLY);
gpio_set_direction(LED_PIN, GPIO_MODE_OUTPUT);
printf("KY-003 Hall Magnetic Sensor Test\n");
while (1) {
int sensor_value = gpio_get_level(HALL_SENSOR_PIN);
if (sensor_value == 0) {
printf("Magnetic field detected\n");
gpio_set_level(LED_PIN, 1);
} else {
printf("No magnetic field detected\n");
gpio_set_level(LED_PIN, 0);
}
vTaskDelay(pdMS_TO_TICKS(1000));
}
}
Этот ESP-IDF пример настраивает GPIO4 как цифровой вход с внутренней подтяжкой (pull-up) для KY-003 и GPIO2 как выход для LED. При обнаружении магнита (выход LOW) LED включается и выводится сообщение в консоль через printf.
Пример для ESPHome
Конфигурация ESPHome для Home Assistant
YAML
Пример для ESPHome
Конфигурация ESPHome для Home Assistant
binary_sensor:
- platform: gpio
pin:
number: GPIO4
mode: INPUT_PULLUP
name: "KY-003 Hall Magnetic Sensor"
filters:
- delayed_on: 10ms
- delayed_off: 10ms
on_press:
- then:
- lambda: |-`
ESP_LOGD("sensor", "Magnetic field detected!");
Конфигурация ESPHome определяет KY-003 как бинарный сенсор на GPIO4 с подтяжкой INPUT_PULLUP. Фильтры delayed_on/delayed_off (по 10 мс) удаляют дребезг. При срабатывании (магнит обнаружен) выводится отладочное сообщение через ESP_LOGD.
Пример для PlatformIO
Профессиональная среда разработки
C++
Пример для PlatformIO
Профессиональная среда разработки
platformio.ini
[env:esp32]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
src/main.cpp
#define HALL_SENSOR_PIN 4
#define LED_PIN 2
void setup() {
pinMode(HALL_SENSOR_PIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
Serial.begin(115200);
Serial.println("KY-003 Hall Magnetic Sensor Test");
}
void loop() {
if (digitalRead(HALL_SENSOR_PIN) == LOW) {
Serial.println("Magnetic field detected");
digitalWrite(LED_PIN, HIGH);
} else {
Serial.println("No magnetic field detected");
digitalWrite(LED_PIN, LOW);
}
delay(1000);
}
Настройка PlatformIO для ESP32 использует фреймворк Arduino. Код идентичен Arduino-примеру, но с использованием INPUT_PULLUP для включения встроенного подтягивающего резистора на пине 4. Измерения выводятся в Serial Monitor каждую секунду.
Пример для MicroPython
Python для микроконтроллеров
Python
Пример для MicroPython
Python для микроконтроллеров
from machine import Pin
import time
HALL_SENSOR_PIN = Pin(4, Pin.IN, Pin.PULL_UP)
LED_PIN = Pin(2, Pin.OUT)
while True:
if HALL_SENSOR_PIN.value() == 0:
print("Magnetic field detected")
LED_PIN.on()
else:
print("No magnetic field detected")
LED_PIN.off()
time.sleep(1)
Скрипт MicroPython настраивает GPIO4 как вход с подтяжкой PULL_UP для KY-003 и GPIO2 как выход для LED. Цикл опрашивает значение пина: при 0 (магнит) включается LED и выводится сообщение. Датчик требует южный полюс магнита на расстоянии 1–15 мм.
Итоги KY-003
Модуль Hall-датчика KY-003 — это простой и надежный цифровой датчик магнитного поля на базе чипа A3144. Он поддерживает разные платформы разработки, включая Arduino, ESP-IDF, ESPHome, PlatformIO и MicroPython, поэтому хорошо подходит для проектов автоматизации, безопасности и робототехники.
Рекомендации
Для стабильной работы используйте неодимовый магнит (южный полюс), держите расстояние 1–5 мм, применяйте подтягивающий резистор (внутренний или внешний 10кОм) на цифровом входе и избегайте сильных электромагнитных помех в непосредственной близости от датчика.
Безопасность прежде всего
Проверяйте полярность питания при подключении (3.3В или 5В). Не эксплуатируйте датчик в условиях экстремальных температур и влажности за пределами указанных в даташите. Избегайте статического электричества при обращении с модулем.
Готовы начать создавать?
Теперь, когда у вас есть вся необходимая информация, пора интегрировать KY-003 в проект на ESP32 и воплотить идеи в жизнь!
Изучите альтернативные датчики
Ищете альтернативы KY-003? Посмотрите эти похожие датчики — возможно, они лучше подойдут под задачи вашего проекта.

KY-008 Laser Transmitter Module
KY-008 — лазерный передатчик, излучающий красный луч (650 нм) мощностью 5 мВт. Подходит для указателей, линий и秋水...

KY-039 Heartbeat Sensor Module
KY-039 — модуль датчика пульса, использующий ИК-светодиод и фототранзистор для обнаружения сердечного ритма...

KY-019 5V Relay Module
KY-019 — модуль реле на 5В, позволяющий микроконтроллерам управлять высоковольтными нагрузками. Поддерживает как AC, так и DC...