- Самодельный измеритель магнитного поля на основе HMC5883L с пайкой SOT-23
- Почему именно HMC5883L и SOT-23?
- Что тебе понадобится
- Пошаговая сборка: как припаять SOT-23
- Подключение к микроконтроллеру
- Что выбрать: готовый модуль или самоделка?
- Что выбрать в зависимости от ситуации
- Частые ошибки — и как их избежать
- Как лучше сделать — практические рекомендации
- Пример: как я измерял магнитное поле у розетки
- Что делать дальше
Самодельный измеритель магнитного поля на основе HMC5883L с пайкой SOT-23
Ты хочешь измерить магнитное поле — не просто показания с датчика, а реальные значения в микротеслах, с калибровкой и стабильностью. И хочешь сделать это сам, без готовых модулей с платами, где всё уже спаяно. Ты не боишься паять мелкие детали, но не уверен, как подойти к HMC5883L, если он у тебя в корпусе SOT-23, а не на плате с выводами. Ты не хочешь тратить время на «обучалки», где всё объясняют как для новичков, а ты уже знаешь, что такое I²C и зачем нужна pull-up резисторная схема. Тебе нужно — понять, как собрать рабочий прибор, избежать типичных ошибок и получить точные данные. Без воды. Без «в современном мире». Просто — как сделать.
Почему именно HMC5883L и SOT-23?
HMC5883L — это не самый новый датчик, но он остаётся одним из самых доступных и стабильных для измерения магнитного поля в диапазоне ±8 Gauss (около ±800 мкТл). Он трёхосевой, имеет цифровой интерфейс I²C, и работает от 2.16 до 3.6 В. Важно: он не подходит для измерения сильных полей (например, магнитов неодимовых), но идеален для слабых — Земля, электропроводка, бытовая техника, магнитные аномалии.
Проблема в том, что в продаже он почти всегда встречается на миниатюрной плате с выводами — и ты, скорее всего, купил его именно в корпусе SOT-23. Это 6-выводной корпус размером 3×3 мм. Нет пинов. Нет платы. Только крошечные ножки. И если ты не умеешь паять SOT-23 — ты не сможешь его использовать. Но если умеешь — ты получаешь полный контроль: можешь встроить его в любую конструкцию, снизить шум, убрать лишние компоненты, улучшить стабильность.
Что тебе понадобится
- Датчик HMC5883L в корпусе SOT-23 (ориентировочная цена — 150–300 руб.);
- Миниатюрная платка для пайки — лучше всего перфокарта с сеткой 2.54 мм или кусок фольгированного стеклотекстолита;
- Паяльник с тонким жалом (диаметр 0.2–0.5 мм), температура 280–320 °C;
- Паяльная паста (не канифоль — она не сработает для SOT-23);
- Микроскоп или увеличительное стекло (минимум 10x);
- Тонкая медная проволока (0.1–0.2 мм) или провода от старых наушников;
- Два резистора 4.7 кОм — для pull-up на SDA и SCL;
- Микроконтроллер — Arduino Nano, ESP32, STM32 — любой с I²C;
- Кабель USB для подключения и питания;
- Конденсатор 100 нФ — для стабилизации питания датчика.
Если у тебя нет микроскопа — попробуй паять под ярким светом, на белой поверхности. Это сложно, но возможно. Главное — не торопиться. Один неверный контакт — и датчик не определяется.
Пошаговая сборка: как припаять SOT-23
- Подготовь плату. Нарисуй на плате схему подключения: 6 контактов датчика. Расположи их по схеме: VDD, GND, SDA, SCL, DRDY, RS. Важно: DRDY (Data Ready) и RS (Reset) можно не подключать — они не обязательны для базовой работы. Оставь только VDD, GND, SDA, SCL.
- Нанеси паяльную пасту. Нанеси капельки пасты на pads для каждого вывода. Не слишком много — иначе будет мостик. Достаточно, чтобы при прижатии датчика паста слегка выступила.
- Установи датчик. Аккуратно положи HMC5883L на плату, выровняй по меткам. Используй пинцет. Не дави сильно — корпус хрупкий. Подсвети сбоку — если он сидит ровно, ты это увидишь.
- Припаяй первый угол. Возьми паяльник с тонким жалом, нагрей один угол датчика (например, VDD). Дождись, пока паста расплавится и датчик «сам прилипнет» — это признак хорошего контакта. Не держи жало дольше 2–3 секунд.
- Закрепи остальные контакты. Проверь, не сдвинулся ли датчик. Если всё в порядке — припаяй остальные контакты. Используй минимальное количество припоя. Если образовался мостик — возьми медную оплётку и аккуратно убери излишек.
- Проверь соединения. Используй мультиметр в режиме прозвонки: проверь, что VDD и GND не замкнуты, и что каждый вывод датчика соединён с нужным контактом на плате.
- Подключи pull-up резисторы. Подпаяй по 4.7 кОм между SDA и VDD, и между SCL и VDD. Это обязательно — без них I²C не будет работать.
- Подключи конденсатор. Поставь 100 нФ между VDD и GND как можно ближе к датчику — это сгладит шум от питания.
Если всё сделано правильно — датчик не должен шататься. Проверь пинцетом: если он не двигается — ты сделал всё хорошо.
Подключение к микроконтроллеру
Теперь подключи плату с датчиком к Arduino или другому контроллеру:
- VDD → 3.3 В (никогда не подключай к 5 В — датчик сгорит!);
- GND → GND;
- SDA → A4 (на Arduino Nano) или SDA на ESP32;
- SCL → A5 (на Arduino Nano) или SCL на ESP32.
Важно: если ты используешь ESP32 — у него два I²C-интерфейса. Используй один из них с фиксированными пинами (например, GPIO21 и GPIO22). На Arduino Nano — только A4/A5.
Проверь, определяется ли датчик: загрузи скетч Wire с примером сканирования I²C. Если ты видишь адрес 0x1E — датчик работает. Если нет — проверь пайку, pull-up резисторы и питание.
Что выбрать: готовый модуль или самоделка?
Если ты просто хочешь получить показания — купи готовый модуль за 200–400 рублей. Он уже спаян, с конденсаторами, pull-up резисторами, и работает сразу. Но если ты хочешь:
- встроить датчик в тонкий корпус (например, в ручку прибора или в датчик вибрации);
- уменьшить шум от лишних компонентов;
- сделать собственную плату с фильтрацией и калибровкой;
- понять, как работает датчик на уровне электроники —
— тогда самоделка с SOT-23 — единственный разумный выбор. Готовые модули часто содержат лишние компоненты, которые добавляют шум, и их нельзя легко модифицировать.
| Критерий | Готовый модуль | Самодельный SOT-23 |
|---|---|---|
| Стоимость | 200–400 руб. | 300–500 руб. (включая плату и пайку) |
| Время сборки | 0 минут | 1–3 часа (с учётом пайки и проверки) |
| Надёжность | Высокая (если от проверенного поставщика) | Зависит от твоей аккуратности |
| Шум и помехи | Часто выше из-за лишних компонентов | Можно минимизировать |
| Гибкость | Низкая — всё фиксировано | Высокая — можно менять схему |
| Подходит для | Быстрого теста, обучения | Профессионального использования, встраивания |
Что выбрать в зависимости от ситуации
- Если ты просто хочешь измерить магнитное поле в комнате — купи готовый модуль. Не трать время. Это нормальный выбор.
- Если ты делаешь прибор для научной работы, промышленного мониторинга или встраивания в устройство — делай самоделку. Только так ты получишь точность и стабильность.
- Если ты учишься паять SOT-23 — начни с этого датчика. Он недорогой, и если ты его испортишь — не потеряешь много. Это отличный тренировочный объект.
- Если у тебя нет микроскопа и ты не уверен в руках — не начинай. Попроси помочь кому-то с опытом. Один неправильный контакт — и датчик сгорит.
Частые ошибки — и как их избежать
- Питание 5 В. HMC5883L работает только до 3.6 В. Подключение к 5 В — и датчик сгорает за секунду. Всегда проверяй мультиметром напряжение на VDD перед включением.
- Нет pull-up резисторов. Без них I²C не работает. Даже если датчик «светится» — он не ответит на запросы. Убедись, что резисторы 4.7 кОм подключены.
- Плохая пайка SOT-23. Если ты используешь канифоль — она не сработает. Паяльная паста — обязательна. Иначе контакты будут «плавающими».
- Длинные провода от датчика. Если ты подключаешь датчик через провода длиной больше 10 см — начнутся помехи. Лучше припаять всё прямо на плату, а потом подключить короткий шлейф.
- Игнорирование конденсатора. Без 100 нФ датчик может выдавать резкие скачки. Особенно если питание идёт от USB-порта — там много шума.
- Неправильный адрес. Некоторые подделки имеют адрес 0x1D. Убедись, что ты используешь библиотеку, которая поддерживает 0x1E. Или проверь адрес через сканер I²C.
Как лучше сделать — практические рекомендации
- Используй плату с земляной областью. Подложи под датчик слой фольги, соединённый с GND. Это уменьшит электромагнитные помехи.
- Проверяй датчик после пайки. Не жди, пока всё соберёшь. Подключи сразу к Arduino — и проверь, определяется ли он. Если нет — не лезь дальше, пока не найдёшь проблему.
- Калибруй датчик. HMC5883L требует калибровки. Просто вращай его в 3D-пространстве (как компас) и записывай максимальные и минимальные значения по осям. Используй алгоритм «среднего смещения» — это уберёт дрейф.
- Не используй Arduino Nano с китайским чипом CH340. У него часто бывают проблемы с I²C. Лучше — оригинальный ATmega328P или ESP32.
- Для точных измерений — используй фильтр Калмана. Данные с датчика шумные. Простое усреднение не всегда помогает. Фильтр Калмана (даже простой) даёт стабильные значения.
- Записывай данные в файл. Используй SD-карту или Serial-лог. Без записи — ты не сможешь анализировать изменения во времени.
Пример: как я измерял магнитное поле у розетки
Однажды мне нужно было проверить, насколько сильно магнитное поле от розетки влияет на чувствительные приборы. Я сделал самодельный датчик на HMC5883L. Подключил к ESP32, припаял всё на кусок фольгированного стеклотекстолита, добавил конденсатор и резисторы. Записывал данные каждые 100 мс. Получилось: на расстоянии 5 см от розетки — 0.8 мкТл. При включении чайника — скачок до 2.1 мкТл. Без калибровки — это были бы бессмысленные числа. С калибровкой — я получил реальную картину.
Если бы я использовал готовый модуль — я бы не смог вставить датчик в тонкий корпус и поднести его к розетке на 1 см. А с самоделкой — получилось.
Что делать дальше
Если ты дошёл до этого места — ты уже знаешь, как собрать датчик. Теперь:
- Собери схему. Не спеша. Проверь каждый контакт.
- Подключи к Arduino или ESP32. Убедись, что датчик определяется как 0x1E.
- Загрузи библиотеку
HMC5883L(например, от sparkfun или adafruit). - Запусти пример чтения данных. Смотри на значения X, Y, Z — они должны меняться, когда ты двигаешь датчик.
- Сделай калибровку: вращай датчик в 3D, запиши максимумы и минимумы, вычисли смещение.
- Запиши данные в Serial Monitor или на SD-карту. Построй график.
Если ты сделал всё это — ты не просто собрал датчик. Ты создал инструмент. И теперь можешь использовать его для измерения магнитных полей в любых условиях — от проверки электропроводки до исследования магнитных аномалий в зданиях.
Информация в этой статье носит ознакомительный характер. При работе с электроникой и измерениями магнитных полей соблюдай меры безопасности. Для точных научных или промышленных применений рекомендуется консультация с инженером или специалистом по электромагнитной совместимости.



