Андрей Смирнов
Время чтения: ~11 мин.
Просмотров: 19

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

Используйте датчик вибрации для обнаружения ударов, тряски и незваных гостей. %D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D1%8B:troyka-vibration-sensor:troyka-vibration-sensor.1.jpg

Видеообзор

Пьезоэлектрический эффект

Термин «пьезо» происходит от греческого слова «давить» или «сжимать». В 1880 году братья Жак и Пьер Кюри обнаружили, что при механической деформации некоторых материалов вырабатывается электричество. Это явление получило название пьезоэлектрический эффект. Братья Кюри открыли и обратный пьезоэлектрический эффект, если подвести к такому материалу напряжение, они меняют форму.

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

Подключения и настройка

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

При подключении к Arduino или Iskra JS удобно использовать Troyka Shield. %D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D1%8B:troyka-vibration-sensor:troyka-vibration-sensor_troykashield.png С Troyka Slot Shield можно обойтись без лишних проводов. %D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D1%8B:troyka-vibration-sensor:troyka-vibration-sensor_troykaslotshield.png

Пример использования

vibrationSensor.ino
#define VIBRO_PIN             A5#define VIBRO_INTEGRATED_PIN  A4   void setup(){// открываем монитор Serial-порта   Serial.begin(9600);}   void loop(){// считываем показания с пьезодискаint vibroValue = analogRead(VIBRO_PIN);// считываем показания уровня вибрацииint integratedVibroValue = analogRead(VIBRO_INTEGRATED_PIN);   Serial.print(vibroValue);   Serial.print("tt");   Serial.println(integratedVibroValue);}

Элементы платы

Пьезодиск и электронная обвязка модуля

Как видим, даже измерение максимальных значений амплитуды не даст четкую информацию об уровне вибрации. Чтобы получить эту информацию, нужно делать измерения максимально часто и подвергать эти данные математической обработке. Численной характеристикой вибрации является площадь под графиком мгновенной вибрации. Именно её и «считает» электронная обвязка модуля.

Потенциометр регулировки чувствительности

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

Контакты подключения трёхпроводного шлейфа

Модуль подключается к управляющей электронике двумя трёхпроводными шлейфами.

1 группа

  • Питание (V) — красный провод. На него должно подаваться напряжение от 3 до 5 В.
  • Земля (G) — чёрный провод. Должен быть соединён с землёй микроконтроллера.
  • Сигнал (E) — усиленный сигнал датчика вибрации.

2 группа

  • Сигнал (S) — фоновый сигнал датчика вибрации.
  • Не используется.
  • Не используется.

Принципиальная и монтажная схемы

Характеристики

  • Рабочее напряжение: 3,3–5 В
  • Потребляемый ток: до 10 мА
  • Габариты: 25,4×25,4 мм

Ресурсы

  • Датчик вибрации (Troyka-модуль) в магазине
  • Векторное изображение датчика вибрации
  • Векторное изображение датчика вибрации с пьезодиском

Содержание

  • Обзор
  • Технические характеристики модуля
  • Пример использования
  • Часто задаваемые вопросы FAQ

Обзор датчика вибрации Arduino

Датчик вибрации Arduino используется для определения внешних вибрационных воздействий. Они могут быть применены при создании различных сигнализаций. Основа датчика вибрации – гибкая металлическая пружинка, внутри пластиковой трубки, которая колеблется от любых воздействий на нее. Далее сигнал подается для усиления на операционный усилитель LM386, а затем на аналоговый выход. Рассмотрим 2 датчика вибрации –  Logo sensors v1.5 (рис. 1) и 140С001 (рис. 2).  

Каждый из этих датчиков имеет выводы GND, Vcc (питания) и вывод аналогового сигнала A0. Настройка чувствительности датчика осуществляется находящимся на плате потенциометром. Каждый из датчиков имеет светодиод, сигнализирующий о наличие поступающего на датчик питания. Датчик 140С001 имеет дополнительный цифровой вывод D0, на котором при достижении порогового значения величины вибрации выдается логический ноль. Порог срабатывания регулируется потенциометром. Наличие цифрового вывода D0 и светодиода уровня D0 позволяет использовать датчик  140С001 автономно, без подключения к контроллеру. Датчики имеют монтажное отверстие для крепления к поверхности.

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

Технические характеристики датчиков Logo sensors v1.5 и 140С001 представлены в таблице

Logo sensors v1.5 140С001
Напряжение питания, В 3 – 5В 3 – 5В
Ток потребления, мА 5 мА 4 мА
Выход цифровой нет есть
Выход аналоговый есть есть
Регулировка чувствительности есть есть
Размер 10×45×15 мм 16×38×8  мм

Пример использования

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

  • плата Arduino Uno
  • датчик вибрации 801S или Logo sensors v1.5
  • светодиодная шкала
  • динамик 8 Ом
  • резистор 500 Ом
  • транзистор КТ503е
  • макетная плата
  • соединительные провода

Соберем схему, показанную на рис. 1. Светодиодная шкала представляет собой сборку из 10 независимых светодиодов с катодами со стороны надписи на корпусе. Для подключения шкалы к Arduino будем использовать 10 цифровых выводов D3 – D12. Схема соединений показана на рис. Э4.3. Каждый из светодиодов шкалы выводом анода соединен  с цифровым выводом Arduino, а катодом на землю через последовательно соединенный ограничивающий резистор 220 Ом. Запустим Arduino IDE. Создадим новый скетч и внесем в него следующие строчки: Аналоговый вывод датчика подключен к аналоговому входу Arduino,  который представляет собой  аналого-цифровой преобразователь (АЦП) с разрешением  10 бит, что позволяет на выходе получать значения от 0 до 1023. В состоянии покоя датчик на аналоговом входе Arduino мы будем фиксировать значение от 0 (датчик 140С001) до 9-10 (датчик Logo sensors v1.5). В случае вибраций (например, удар по столу, к которому прикреплен датчик) значение аналогового сигнала увеличивается многократно, что видно по показаниям светодиодного индикатора. При пороговом значении (подбирается экспериментально) на динамик подаем сигнал тревоги на 10 секунд.

Часто задаваемые вопросы FAQ

Не горит светодиод питания

  1. Проверьте наличие и полярность подаваемого на датчик питания.

При вибрациях не изменяется значение выходного аналогового сигнала

  1. Проверьте соединение датчика с входом микроконтроллера.
  2. Отрегулируйте величину выходного сигнала с помощью потенциометра.
1_Mehanicheskie_datchiki-5-21-678x381.jpg

Количество датчиков предназначенных для совместной работы с платформой Arduino поистине не поддается исчислению. При желании можно приобрести почти какой угодно готовый модуль от банальной кнопки до детектора радиации. Такие датчики можно приобрести как по отдельности, так и в наборах самого разнообразного размера. Один из таких сравнительно дешевых наборов можно приобрести на Али за 10 долларов. Набор поставляется в полиэтиленовом пакете, некоторые из датчиков, примерно треть были упакованы в отдельные пакеты. Вместе с датчиками в посылку вложен отдельный листок с перечнем комплектации.

Данный набор включает в себя 37 приборов, которые позволяют регистрировать разнообразные явления и процессы, а также небольшое количество простейших устройств вывода информации [1-3]. Покупка такого набора оправдана на начальном этапе, когда требуется изучить особенности работы большого количества различных устройств. Набор можно подключить к платам типа Arduino UNO или Arduino Nano без использования пайки, что является несомненным плюсом на первом этапе работы.

В первой части данного обзора речь пойдет о механических датчиках, реагирующих на нажатие, вибрацию, поворот и т.п. Большая часть описанных ниже датчиков подключаются, по сути, аналогично цифровой кнопке. Для примера в память микроконтроллера на плате Arduino UNO можно записать программу, которая по командам от датчика зажигает светодиод, подключенный к 13 цифровому порту, код взят из [4].

Модуль тактовой кнопки KY-004 [5]

Размер модуля 24 х 15 мм, масса 1,3 г. Помимо кнопки на плате установлен резистор, сопротивлением 10 кОм. Для подключения служит трех контактный разъем, общий вывод разъема обозначен знаком «-», центральный контакт служит для подачи напряжения питания +5В, информационный контакт обозначен «S»

1_Mehanicheskie_datchiki-5-3.jpg

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

Датчик вибрации KY-002 [6]

Размер модуля 24 х 15 х 15 мм, масса 1,2 г. Конструктивно датчик представляет собой цилиндрическую металлическую пружину по оси, которой располагается проводник, который замыкается при резких ускорения, сообщаемых устройству [7]. Схема подключения, логика работы и маркировка контактов, аналогичны таковым у модуля тактовой кнопки KY-004

1_Mehanicheskie_datchiki-5-6.jpg

Следует иметь в виду, что этот датчик по-разному реагирует на ускорения в различных направлениях. Ускорения попрек оси датчика он воспринимает хорошо, а вот на ускорения вдоль оси датчика реагирует заметно хуже. Датчик припаян к плате маркировка контактов, на которой совпадает с таковой у двух предыдущих датчиков.

Датчик удара KY-031 [8]

Размер модуля 30 х 18 мм, масса 1,6 г. Датчик представляет собой пружинный контакт в прямоугольном пластиковом корпусе. Датчик чувствителен к ускорениям направленным поперек продольной оси датчика

1_Mehanicheskie_datchiki-5-9.jpg

Датчик поворота KY-020 [9]

Размер модуля 24 х 15 мм, масса 1,3 г. Датчик представляет собой металлический шарик, который замыкает контакты, в том случае, когда плата изменяет свое положение в пространстве примерно на 90 градусов.

Полезное:  Датчик MQ2

Устройство подключается полностью идентично кнопке KY-004.

1_Mehanicheskie_datchiki-5-12.jpg

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

Механический датчик поворота

Механический датчик поворота (Валкодер или энкодер) KY-040 [10-15]. Валкодер представляет собой группу механических контактов по последовательности замыкания, которых можно судить о скорости и направлении вращения его штока. Непосредственно под штоком располагается кнопка, которую можно использовать нажимая на шток. К сожалению, в экземпляре, доставшемся автору, эта кнопка сильно залипает, так что о надежном срабатывании нет и речи.

Размер модуля 30 х 18 мм, высота 28 мм, масса 6,5 г. В плате имеется два крепежных отверстия, диаметром 3 мм, на расстоянии 14 мм друг от друга. Модуль имеет пять выводов:

  • “GND” – общий,
  • “+” – питание 5 В,
  • “SW” – вывод кнопки,
  • “DT” и “CLK” – выводы сигналов с валкодера.

Работа с кнопкой аналогична таковой для любой цифровой кнопки, например KY-004, или аналогичной. С выводов “DT” и “CLK” при вращении штока устройства можно считать последовательности сигналов высокого и низкого логического уровня, сдвинутые по фазе примерно на четверть периода. Определяя с помощью этих меандров скорость и направление вращения ручки валкодера можно например управлять яркостью светодиода [14]. Главное преимущество данного устройства перед переменным резистором, в том, что угол поворота штока валкодера ничем не ограничен.

Джойстик KY-040 [16-17]

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

Размер модуля 40 х 26 мм, высота 28 мм, масса 9,8 г. В плате есть четыре крепежных отверстия, диаметром 3 мм, расположенных в вершинах прямоугольника со сторонами 20 и 26 мм. На плате имеется пять выводов:

  1. “GND” – общий,
  2. “+5V” питание,
  3. “VRx” — выводы переменного резистора кодирующего перемещение по оси X,
  4. “VRy” — выводы переменного резистора кодирующего перемещение по оси Y,
  5. “SW” — вывод кнопки.

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

  • 1) https://arduino-kit.ru/catalog/id/37-v-1-nabor-datchikov
  • 2) https://arduinomaster.ru/arduino-kit/nabor-arduino-sensor-kit-37-v-1/
  • 3) https://mysku.ru/blog/china-stores/37299.html
  • 4) http://robocraft.ru/blog/arduino/57.html
  • 5) https://arduino-kit.ru/catalog/id/modul-taktovoy-knopki
  • 6) https://arduino-kit.ru/catalog/id/modul-datchika-vibratsii
  • 7) https://arduino-kit.ru/userfiles/image/SW-1801_a.jpg
  • 8) https://arduino-kit.ru/catalog/id/modul-datchika-udara
  • 9) https://arduino-kit.ru/catalog/id/modul-datchika-naklona_
  • 10) https://arduino-kit.ru/catalog/id/modul-datchika-vrascheniya-_valkoder_
  • 11) https://mysku.ru/blog/aliexpress/40668.html
  • 12) https://datagor.ru/microcontrollers/281-chto-est-valkoder….html
  • 13) http://www.zi-zi.ru/docs/modules/info_KY-040.pdf
  • 14) http://cxem.net/arduino/arduino8.php
  • 15) http://mypractic.ru/urok-55-rabota-s-inkrementalnym-enkoderom-v-arduino-biblioteka-encod_er-h.html
  • 16) http://soltau.ru/index.php/arduino/item/384-kak-podklyuchit-dzhojstik-k-arduino
  • 17) http://www.zi-zi.ru/module/module-ky023

Вторую часть обзора читайте здесь. Специально для 2 Схемы.ру — Denev

Используемые источники:

  • http://wiki.amperka.ru/продукты:troyka-vibration-sensor
  • https://3d-diy.ru/wiki/arduino-datchiki/datchik-vibracii-arduino/
  • https://2shemi.ru/mehanicheskie-datchiki-dlya-arduino/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации