• Датчик
• Вибрации
• Удара
• Колебания
• Встряски
• Модуль
• Ардуино
• ESP
• Робот
• Землетрясение
Датчик вибрации чётко детектирует наличие колебания, встряски, ударов и вибрации. Датчик вибрации воспринимает механические воздействия на прибор, в котором он установлен. Может использоваться в охранных системах. Возможно применять в движущейся робототехнике для регистрации столкновения с препятствием.
На плате модуля установлен механический датчик SW-18010P или SW-18015P. Датчик вибрации имеет простую конструкцию: внутри пластиковой трубки расположена металлическая гибкая пружина, колеблющаяся от внешних воздействий.
В центре пружины– металлический стержень, о который при ударе касается пружина.Один контакт датчика идёт на стержень, а второй – на пружину. Эти колебания передаются на операционный усилитель и выводятся на аналоговый выход.
Датчик вибрации подключается к Arduino через Vcc вывод. Дополнительно модуль имеет два выхода: цифровой и аналоговый. Устройство может работать под любым углом и в любом направлении.
Датчик вибрации имеет на корпусе два светодиода: красный загорается в случае подключения его к питанию, а зелёный – в случае обнаружения вибрации.
Основные достоинства
- Компактность
- Отверстие для монтажа
- Низкая цена
- Чувствительность датчика можно настраивать путём регулировки подстроечного резистора
Примеры использования
- Создание охранной сигнализации
- Регистрация столкновения с объектом в движущейся робототехнике
- Контроль над оборудованием
- Система автоматики дома
- Детектирование землетрясений
- Назначение контактов:
- ► VCC и GND — питание модуля
- ► D0 — цифровой выход
- ► A0 — аналоговый выход

- Скетч для ардуино
- Следующий скетч обрабатывает и цифровой, и аналоговый выходы датчика. При наличии вибрации в последовательный порт выводятся значения обоих портов. Хорошо видна особенность работы сенсора по аналоговым значениям.
- #define PIN_SENSOR_DIGITAL 3 // выход датчика DO подключен к пину 3
- #define PIN_SENSOR_ANALOG A0 // выход датчика АO подключен к пину А0
-
- int analog_val_old = 0;
-
- void setup() {
- Serial.begin(9600);
- }
-
- void loop() {
- int digital_val = digitalRead(PIN_SENSOR_DIGITAL); // Считваем значение с датчика
- int analog_val =analogRead(PIN_SENSOR_ANALOG);
-
- if(analog_val < analog_val_old - 5){ // вывод в порт только изменившихся значений
- Serial.print("digital=");
- Serial.print(digital_val);
- Serial.print(" analog=");
- Serial.println(analog_val);
- }
- analog_val_old = analog_val;