Датчик наклона и вибрации SW-520D: подключение к Arduino

Датчик наклона и вибрации SW-520D: подключение к Arduino

Устройство модуля SW-520D, его характеристики, подключение к Arduino через прерывание и пример GSM-сигнализации.

Назначение и состав модуля

SW-520D фиксирует вибрацию и изменение положения в пространстве. Обычно он продаётся в виде модуля: сам датчик в цилиндрическом корпусе с двумя выводами распаян на плате с обвязкой. На плате находятся компаратор LM393, подстроечный резистор для регулировки чувствительности и два SMD-светодиода. Один показывает наличие питания, второй загорается при срабатывании. Выводов три: два для питания и один сигнальный.

Внешний вид и распиновка модуля SW-520D

Микросхема LM393 сравнивает на входах два сигнала: опорный и полезный, идущий от датчика. Уровень опорного задаётся подстроечным резистором R3, от него и зависит чувствительность. По результату сравнения на выходе D0 устанавливается высокий или низкий логический уровень. Светодиод LED1 индицирует питание, а LED2 светится, когда на D0 присутствует логический ноль, то есть датчик сработал.

Электрическая схема модуля SW-520D

Как работает чувствительный элемент

Датчик представляет собой полый цилиндр, внутри которого свободно перекатываются два металлических шарика. В зависимости от положения корпуса они замыкают или размыкают электроды. Поэтому поведение датчика определяется углом наклона, и без знания его внутреннего устройства оно может показаться нелогичным.

Схема срабатывания датчика SW-520D при наклоне

Коммутация механическая, так что ресурс ограничен: для подобных датчиков называют порядка 100000 срабатываний. Контакты способны коммутировать напряжение до 20 В. Корпус датчика герметичен и не боится воды и пыли, но на плату модуля это не распространяется. По заявлению производителей, SW-520D может заменять ртутные датчики наклона. Датчик можно использовать и отдельно, без платы модуля.

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

Вертикальный угол срабатывания45
Горизонтальный угол срабатывания10
Максимальный ток электродов300 мА
Рабочее напряжение3,3–5 В
Выходной ток компаратораболее 15 мА
Тип выходацифровой
Сопротивление разомкнутых контактовболее 10 МОм
Сопротивление замкнутых контактовменее 30 Ом
Размер платы32×14 мм
Размер модуля с датчиком45×14 мм

Подключение к Arduino

Для подключения нужны три провода: питание, земля и сигнал. В примере сигнальный вывод соединён со входом D2.

Схема подключения модуля SW-520D к Arduino

Состояние датчика можно просто читать с цифрового входа, но в большой программе контроллер способен пропустить короткое срабатывание. Надёжнее использовать внешние прерывания. На Arduino Nano и подобных платах они доступны на выводах D2 и D3. В простейшем скетче прерывание назначается вызовом attachInterrupt(0, detectFunc, CHANGE), то есть реагирует на любую смену уровня на D2. Обработчик только поднимает флаг, а основной цикл, увидев его, выводит сообщение в терминал на скорости 9600 и сбрасывает флаг.

Пример: GSM-сигнализация

Модуль применяют в квест-комнатах, игрушках, охранных и противоугонных системах, спортивных тренажёрах, бытовых приборах, детекторах детонации. В качестве примера рассматривается сигнализация, в которой датчик закреплён на окне охраняемого помещения.

Основа схемы: плата Arduino Nano и GSM-модуль SIM800L, который питается через DC-DC преобразователь MP2307DN. Логические уровни между контроллером и модемом согласуются резисторами. Выход SW-520D заведён на вход внешнего прерывания D2. С модемом контроллер общается через библиотеку SoftwareSerial на выводах 10 и 9 со скоростью 9600.

После подачи питания Arduino следит за уровнем на D2. При любой его смене в терминал выводится сообщение о тревоге, а модему отправляется AT-команда набора номера вида ATD<номер>;. Номер владельца записан в программе в международном формате. Если модем ответил OK, вызов продолжается 20 секунд, после чего командой ATH соединение разрывается. При неудачном наборе попытка повторяется через 200 мс. Ответа модема на каждую команду программа ждёт до 2 секунд.

← Все статьи