Датчик магнитного поля KY-003

Узнайте всё о датчике магнитного поля KY-003: спецификации, распиновка, схемы подключения, документация и примеры кода для ESP32, Arduino, Raspberry

Датчики положения Digital

Обзор

KY-003 — это модуль датчика магнитного поля на основе Hall-эффекта с использованием чипа A3144. Датчик выдает цифровой сигнал при обнаружении магнитного поля и широко применяется для бесконтактного обнаружения proximity, измерения скорости и отслеживания положения.

KY-003 — модуль Hall-сенсора, обнаруживающий магнитные поля с помощью чипа A3144. При наличии магнитного поля он выдает цифровой сигнал (LOW), что идеально подходит для proximity-датчиков, измерения скорости и отслеживания положения в электронных проектах.

Датчик KY-003
Быстрая навигация
Основные разделы статьи
Примеры кода
Популярные платформы

О датчике магнитного поля KY-003

Модуль KY-003 — это Hall-датчик на основе чипа A3144, который обнаруживает магнитные поля и выдает цифровой сигнал (LOW) при их наличии. Датчик широко используется в системах бесконтактного обнаружения, измерения скорости вращения, отслеживания положения и магнитных переключателей.

Ключевые особенности

  • Обнаружение магнитного поля — активируется при приближении магнита.
  • Чип A3144 — обеспечивает стабильный цифровой вывод.
  • Простой интерфейс — легко интегрируется с ESP32, Arduino и другими микроконтроллерами.
  • Низкое энергопотребление — подходит для автономных и battery-powered приложений.
  • Универсальность — применяется в системах безопасности, автоматизации и робототехнике.
Где купить

Приобретите KY-003

Технические характеристики

Характеристики KY-003

Полные технические характеристики модуля Hall-датчика KY-003.

Напряжение питания
3.3В – 5В
Тип выхода
Цифровой
Чип сенсора
A3144
Размеры модуля
18.5 × 15 мм
Скачать полный даташит
Конфигурация пинов

Распиновка KY-003

Модуль KY-003 имеет три вывода: GND (земля), VCC (питание) и S (цифровой выход сигнала). Сенсор основан на чипе A3144, который при обнаружении магнитного поля переключает выход в состояние LOW.

Визуальная диаграмма распиновки
Основное
Распиновка KY-003
Всего выводов
3
Типы
Питание + Digital
Быстрые советы
  • Выход — активный 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.

Схема подключения
Рекомендуемая (Digital)
Подключение KY-003 к ESP32
Подключений
3
Статус
Все обязательны
Протокол
Digital
Подключения пинов
Вывод KY-003 Подключение Вывод ESP32 Описание
- (GND) обязательно GND Общая земля
+ (VCC) обязательно 3.3В Питание (3.3В или 5В)
S (Signal) обязательно GPIO4 Цифровой вход (любой GPIO)
📍 Выход: цифровой (LOW при магните) 🔢 Чип: A3144 Hall-эффект ⚡ Питание: 3.3В (рекомендуется) 🎯 Полюс: южный магнит 📏 Дальность: 1-15 мм 🔋 Низкое энергопотребление
Помощь и поддержка

Устранение неполадок 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 монитор
Просмотр значений выхода
Подключитесь к Serial Monitor (скорость 9600 или 115200) и добавьте отладочный вывод для цифрового пина. Отслеживайте изменения состояния (HIGH/LOW) при приближении магнита. Это поможет подтвердить правильность работы датчика.
Проверка напряжения
Мультиметр и целостность
Используйте мультиметр для проверки напряжения на выводах VCC и GND (должно быть 3.3В или 5В), а также для проверки сопротивления между GPIO и VCC/GND при намагничивании. Убедитесь в отсутствии коротких замыканий и правильной пайке.

Дополнительные ресурсы

Примеры кода

Примеры программирования KY-003

Готовые к использованию примеры кода для различных платформ и фреймворков

Пример для Arduino

Совместим с Arduino IDE и платами ESP32

C++
#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++
#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
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.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
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 и воплотить идеи в жизнь!