Обзор
KY-035 — это модуль аналогового датчика Холла, основанный на линейном сенсоре AH49E. Он формирует на выходе аналоговое напряжение, прямо пропорциональное силе и полярности обнаруженного магнитного поля. Это делает его отличным выбором для систем контроля двигателей, определения положения и точного измерения магнитных полей.
KY-035 — аналоговый модуль на базе датчика AH49E. Он позволяет не просто обнаруживать магнит, но и измерять его силу и определять полярность (северный/южный полюс), что важно для точных IoT‑проектов и робототехники.
Об аналоговом датчике Холла KY-035
Модуль KY-035 использует линейный датчик Холла AH49E для регистрации магнитных полей. В отличие от цифровых версий, которые просто фиксируют наличие магнита, KY-035 выдает сигнал, пропорциональный индукции поля. Это позволяет определять расстояние до магнита, его силу и полярность (южный полюс уменьшает напряжение ниже среднего уровня, северный — повышает).
⚡ Ключевые особенности
- Линейный отклик — Выходное напряжение меняется линейно в зависимости от плотности магнитного потока.
- Определение полярности — Позволяет различать полюса магнита (N / S).
- Универсальность — Подходит для измерения скорости вращения, контроля положения вала и создания бесконтактных переключателей.
Приобретите KY-035
Характеристики KY-035
Основные параметры аналогового датчика Холла KY-035.
Распиновка KY-035
Модуль KY-035 имеет 3 вывода. Обратите внимание на маркировку: вывод “S” — это выходной аналоговый сигнал, центральный вывод — питание, а вывод ”-” — земля.
- Средняя точка — Без магнита напряжение равно ~VCC/2.
- Полярность — Напряжение растет при поднесении одного полюса и падает при поднесении другого.
- Диапазон — Для ESP32 используйте 3.3В для совместимости с ADC.
| № | Название | Тип | Описание | Примечания |
|---|---|---|---|---|
| 1 | - | GND | Земля | Общий минус |
| 2 | middle | VCC | Питание | 3.3В - 5В |
| 3 | S | Output | Аналоговый сигнал | Пропорционально полю |
Подключение KY-035 к ESP32
Для работы с KY-035 используйте любой свободный пин с АЦП (ADC) на ESP32. Мы рекомендуем GPIO34, так как он работает только на вход и идеально подходит для датчиков.
| Вывод KY-035 | Подключение | Вывод ESP32 | Описание |
|---|---|---|---|
| 1 (-) обязательно | → | GND | Общая земля |
| 2 (center) обязательно | → | 3.3V | Питание (для ESP32 лучше 3.3В) |
| 3 (S) обязательно | → | GPIO34 | Аналоговый вход АЦП |
Устранение неполадок KY-035
Разрешение типичных проблем при работе с аналоговым датчиком.
Нет сигнала на выходе
Постоянные 0В или VCC
Проблема: датчик не меняет показания при поднесении магнита.
Решение: Проверьте подключение питания (центральный пин). Убедитесь, что вы используете пин с поддержкой АЦП (например, GPIO 32-39 на ESP32). Проверьте целостность пайки выводов датчика к плате модуля.
Нестабильные или зашумленные показания
Значения ADC прыгают
Причина: Наводки от Wi-Fi/Bluetooth на ESP32 или длинные провода.
Решение: Используйте программное усреднение (прочитайте 10 значений и возьмите среднее). Добавьте конденсатор 0.1 мкФ между VCC и GND модуля для фильтрации питания. Не используйте пины ADC2 (GPIO 0, 2, 4, 12, 13, 14, 15, 25, 26, 27) при включенном Wi-Fi.
Примеры программирования KY-035
Готовые скрипты для считывания магнитной индукции.
Пример для Arduino
Базовое чтение через аналоговый вход
C++
Пример для Arduino
Базовое чтение через аналоговый вход
int sensorPin = A0; // Пин, к которому подключен датчик
void setup() {
Serial.begin(9600);
Serial.println("Датчик магнитного поля Холла KY-035");
}
void loop() {
int rawValue = analogRead(sensorPin);
// Конвертация в напряжение (для 5В и 10-бит АЦП)
float voltage = rawValue * (5.0 / 1023.0) * 1000;
Serial.print("Напряжение: ");
Serial.print(voltage);
Serial.println(" мВ");
delay(1000);
}
Пример для ESP-IDF
Низкоуровневая настройка АЦП
C++
Пример для ESP-IDF
Низкоуровневая настройка АЦП
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/adc.h"
#define SENSOR_CHANNEL ADC1_CHANNEL_6 // GPIO34
void app_main(void) {
// Настройка разрешения АЦП (12 бит)
adc1_config_width(ADC_WIDTH_BIT_12);
// Настройка аттенюации для диапазона до 3.3В
adc1_config_channel_atten(SENSOR_CHANNEL, ADC_ATTEN_DB_11);
printf("KY-035: Детектор магнитного поля\n");
while (1) {
int raw = adc1_get_raw(SENSOR_CHANNEL);
// Конвертация в милливольты для 3.3В и 12 бит
float voltage = raw * (3.3 / 4095.0) * 1000;
printf("Напряжение: %.2f мВ\n", voltage);
vTaskDelay(pdMS_TO_TICKS(1000));
}
}
Пример для ESPHome
Для интеграции в Home Assistant
YAML
Пример для ESPHome
Для интеграции в Home Assistant
sensor:
- platform: adc
pin: GPIO34
name: "KY-035 Магнитное поле"
update_interval: 1s
unit_of_measurement: "mV"
filters:
- multiply: 1000 # Переводим В в мВ
Пример для MicroPython
Python-скрипт для быстрой отладки
Python
Пример для MicroPython
Python-скрипт для быстрой отладки
import machine
import time
# Настройка ADC на GPIO34
sensor_pin = machine.ADC(machine.Pin(34))
# Настройка диапазона (ATTN_11DB позволяет читать до 3.3В)
sensor_pin.atten(machine.ADC.ATTN_11DB)
while True:
raw_value = sensor_pin.read()
# Конвертация в милливольты
voltage = (raw_value / 4095) * 3300
print("Напряжение магнитного поля:", voltage, "мВ")
time.sleep(1)
Итоги KY-035
Линейный датчик Холла **KY-035** — это надежное и недорогое решение для проектов, требующих измерения силы магнитного поля. Благодаря поддержке широкого спектра платформ (Arduino, ESP32, Raspberry Pi), он легко интегрируется в любые системы автоматизации.
Рекомендации
Так как это аналоговый датчик, он чувствителен к шумам по питанию. Для работы с ESP32 обязательно используйте 3.3В, чтобы не повредить вход микроконтроллера при максимальном магнитном потоке.
Безопасность
Будьте внимательны при подключении: переполюсовка может вывести из строя чувствительный элемент AH49E на плате модуля.

