Подключение датчика вибрации SW-420 к Arduino Uno


В современном мире существует ряд механизмов (машин), для функционирования которых критически важно отсутствие вибрации. Наличие вибрации может повредить эти машины. Обнаружение и измерение силы вибраций в настоящее время не является технически сложной проблемой – на рынке сейчас можно приобрести датчики вибрации различных типов. Самые лучшие результаты показывают датчики вибрации на основе акселерометров – они обнаруживают вибрацию при помощи измерения ускорения или скорости. Однако подобные датчики достаточно дороги. Но одновременно с этим существуют несколько специализированных и дешевых датчиков, которые предназначены только для обнаружения вибраций. Одним из таких датчиков является SW-420. В статье мы рассмотрим подключение этого датчика вибрации к плате Arduino Uno.

Внешний вид подключения датчика вибрации SW-420 к Arduino Uno

Модуль датчика вибрации SW-420

Внешний вид этого модуля показан на следующем рисунке.

Внешний вид модуля датчика вибрации SW-420

Модуль датчика вибрации (Vibration Sensor Module) SW-420 может работать с напряжением от 3.3V до 5V. В составе этого модуля присутствует компаратор LM393, который позволяет обнаруживать вибрации выше определенной границы и, таким образом, обеспечивать на цифровом выходе модуля датчика сигнал логической 1 или логического 0. При отсутствии вибраций (нормальный режим функционирования) на выходе датчика присутствует сигнал логического 0, а при обнаружении вибраций на выходе датчика формируется сигнал логической 1. В составе модуля датчика есть и светодиоды: один для индикации подаваемого питания на модуль, а другой – для индикации состояния выхода. Также присутствует потенциометр, с помощью которого можно регулировать границу срабатывания, то есть устанавливать чувствительность датчика. В нашем проекте для питания модуля датчика вибрации SW-420 мы будем использовать напряжение 5V.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Модуль датчика вибрации SW-420 (купить на AliExpress).
  3. Светодиод (купить на AliExpress).
  4. Соединительные провода.
  5. USB кабель для загрузки программы.

Работа схемы

Схема подключения датчика вибрации SW-420 к плате Arduino Uno представлена на следующем рисунке.

Схема подключения датчика вибрации SW-420 к плате Arduino UnoСветодиод подключен к контакту D13. Модуль датчика вибрации SW-420 запитывается от контакта 5V платы Arduino. Выход модуля датчика вибрации подключен к контакту A5 платы Arduino.

На следующем рисунке представлена та же самая схема нашего проекта, но нарисованная с помощью программы fritzing – может быть для кого-нибудь она покажется более удобной.

Схема подключения датчика вибрации SW-420 к плате Arduino Uno (fritzing)

Объяснение программы для Arduino

Написание программы для работы с датчиком вибрации не потребует от нас больших усилий – нам всего лишь нужно проверять состояние контакта платы Arduino, к которому подключен датчик, и на основании результата проверки формировать соответствующие управляющие команды. Полный текст программы приведен в конце статьи, здесь же мы кратко рассмотрим ее основные фрагменты.

Первым делом в программе нам необходимо подключить используемые библиотеки. Поскольку мы писали программу в среде Eclipse IDE, то нам необходимо в программе подключить библиотеку <Arduino.h> - при использовании Arduino IDE необходимости в подключении этого заголовочного файла нет.

Также в программе определим два макроса: ON и OFF.

Далее дадим имена используемым в проекте контактам: датчик вибрации подключен к контакту A5, светодиод – к контакту 13 (встроенный светодиод платы также используется в проекте и он тоже подключен к контакту 13).

Затем в программе объявим две переменные целого типа – для хранения текущего и предыдущего состояния датчика чтобы обнаруживать были ли вибрации или нет.

Далее в функции void setup() мы задаем режим работы используемых контактов – на ввод и вывод данных.

Также мы запрограммируем функцию для того, чтобы мигнуть светодиодом 2 раза. Вы можете по своему желанию изменить задержку между миганиями.

В функции void loop() мы будем сравнивать текущее и предыдущее состояние датчика. Если они отличаются, то светодиод начнет мигать до тех пор пока они не станут одинаковыми. В начале работы программы эти две переменные (previous_condition и present_condition) равны нулю, а светодиод выключен. При появлении вибраций переменная present_condition становится равной 1 и светодиод начинает мигать. Когда вибрация останавливается обе переменные снова становятся равными нулю и светодиод перестает мигать.

Тестирование работы проекта

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

Тестирование работы проекта

Исходный код программы (скетча)

Статья переведена с иностранного сайта, поэтому я не стал убирать из программы первые строчки, в которых указан автор программы.

Видео, демонстрирующее работу датчика вибрации

(Проголосуй первым!)
Загрузка...
2 049 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *