Перейти к содержанию

Датчик вибрации Ардуино подключение (KY-002)

Датчик вибрации Ардуино подключение

Датчик вибрации Arduino KY-002 или модуль сенсора SW-420 используется для определения наличия внешних вибраций на модуле и применяется для создания домашней сигнализации. В этом небольшом обзоре мы рассмотрим несколько примеров использования датчика, представим несколько схем подключения датчика вибрации к плате Arduino и продемонстрируем программу с использованием цикла while().

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

  • Arduino Uno / Arduino Nano / Arduino Mega
  • датчик вибрации KY-002 или SW-420
  • светодиоды и резисторы
  • тактовая кнопка
  • макетная плата
  • коннекторы

Дополнительные материалы на эту тему:

  1. Подключение датчика температуры LM35 к Ардуино
  2. Подключение датчика температуры и влажности DHT22
  3. Подключение датчика атмосферного давления BMP180

Этот датчик может быть изготовлен в виде модуля, например, SW-420, датчики logo v1.5 или датчик вибрации 140c001 для Arduino. Основой датчика SW-420 является металлическая пружина с металлическим шариком внутри пластиковой трубки, которая начинает колебаться при вибрации. Модуль содержит усилитель сигнала, подстроечный резистор для регулировки чувствительности и три контакта для подключения к микроконтроллеру.

Датчик вибрации Arduino принцип работы, распиновка

Датчик вибрации Arduino принцип работы, распиновка

Датчик вибрации Arduino характеристики (datasheet)

  • Рабочее напряжение: 3.3 — 5 В
  • Ток потребления: 5 мА
  • Чувствительность: регулируемая
  • Интерфейс: цифровой

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

Как подключить датчик вибрации к Ардуино

Как подключить датчик вибрации Ардуино

SW-420 Arduino имеет три выхода — GND и VCC для питания и вывод аналогового сигнала A0, который подключается к любому аналоговому входу микроконтроллера. Чтобы использовать модуль KY-002 или модуль SW-420 в качестве датчика вибрации, необходимо подключить их к Arduino, следуя распиновке. Датчик HDX, как отдельный элемент, должен быть подключен через резистор к цифровому или аналоговому пину платы Ардуино.

Скетч для датчика вибрации Ардуино KY-002


#define VIB A1
#define LED 12

int val;
 
void setup() {
  pinMode(LED, OUTPUT);
  pinMode(VIB, INPUT);
  Serial.begin(9600);
}
 
void loop() {
  val = analogRead(VIB);
  Serial.print("Vibration sensor - ");
  Serial.println(val);

  if (val > 500) { digitalWrite(LED, HIGH); }
  if (val < 500) { digitalWrite(LED, LOW); }

  delay(1000);
}

Как подключить сенсор вибрации к Ардуино

Скетч для датчика вибрации Ардуино SW-420

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

Скетч для датчика вибрации Ардуино SW-420

#define LED 12
#define VIB A1
#define BUT 2

int val;
byte w = 0;
 
void setup() {
  pinMode(LED, OUTPUT);
  pinMode(VIB, INPUT);
  pinMode(BUT, INPUT);
  Serial.begin(9600);
}
 
void loop() {
  val = analogRead(VIB);
  Serial.print("Vibration sensor - ");
  Serial.println(val);

  if (sens > 500) { digitalWrite(LED, HIGH); w = 1; }
  if (sens < 500) { digitalWrite(LED, LOW); }

  while (w == 1) {
    Serial.println("DANGER");
    if (digitalRead(BUT) == HIGH) { w = 0; }
    delay(1000);
  }
 
  delay (1000);
}

Заключение. При срабатывании сенсора вибрации мы меняем значение переменной w = 1; — это нужно для того, чтобы начал выполняться цикл while() в программе. Цикл while в программе будет выполняться бесконечно, до тех пор, пока не станет ложным условие в цикле while (w == 1). Условие будет становится ложным при нажатии на тактовую кнопку — в этом случае мы меняем в программе значение переменной на «0» и покидаем цикл.

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

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

newzaym
➜