KY-031 Датчик удара (Knock Sensor)

Полное руководство по датчику удара KY-031: характеристики, распиновка, схемы подключения, документация и примеры кода для Arduino, ESP32 и Raspberry Pi.

KY-0xx module Digital

Где купить

Приобретите KY-031 Датчик удара (Knock Sensor)

Обзор

KY-031 — это модуль датчика удара, который определяет физические воздействия или вибрации. При обнаружении удара он выдает цифровой сигнал, что делает его подходящим для интерактивных проектов, систем безопасности или любых установок, требующих обнаружения касаний.

KY-031 — это простой модуль датчика удара, разработанный для обнаружения резких ударов или сильных вибраций. Внутри модуля находится пружинный контакт, который замыкается при механическом воздействии.

KY-031 Датчик удара
<div class="rounded-2xl border border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-900 p-5">
  <h3 class="text-sm font-semibold text-slate-900 dark:text-white uppercase tracking-wider mb-4">Примеры кода</h3>
  <div class="space-y-2">
    <a href="#arduino" class="flex items-center gap-3 p-2 rounded-xl hover:bg-slate-50 dark:hover:bg-slate-800/50 transition-colors group">
      <div class="w-8 h-8 rounded-lg bg-blue-100 dark:bg-blue-900/30 flex items-center justify-center shrink-0">
        <img src="/img/UacrygeoB1-40.png" alt="Arduino" class="w-5 h-5 !my-0" />
      </div>
      <div class="min-w-0">
        <div class="text-sm font-medium text-slate-700 dark:text-slate-300 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors">Arduino</div>
        <div class="text-[10px] text-slate-500 uppercase">C++ Framework</div>
      </div>
    </a>
    <a href="#esp-idf" class="flex items-center gap-3 p-2 rounded-xl hover:bg-slate-50 dark:hover:bg-slate-800/50 transition-colors group">
      <div class="w-8 h-8 rounded-lg bg-orange-100 dark:bg-orange-900/30 flex items-center justify-center shrink-0">
        <img src="/img/32WN7tz--V-40.png" alt="ESP-IDF" class="w-5 h-5 !my-0" />
      </div>
      <div class="min-w-0">
        <div class="text-sm font-medium text-slate-700 dark:text-slate-300 group-hover:text-orange-600 dark:group-hover:text-orange-400 transition-colors">ESP-IDF</div>
        <div class="text-[10px] text-slate-500 uppercase">Native SDK</div>
      </div>
    </a>
    <a href="#micropython" class="flex items-center gap-3 p-2 rounded-xl hover:bg-slate-50 dark:hover:bg-slate-800/50 transition-colors group">
      <div class="w-8 h-8 rounded-lg bg-yellow-100 dark:bg-yellow-900/30 flex items-center justify-center shrink-0">
        <img src="/img/U_FT8ja_jJ-40.png" alt="MicroPython" class="w-5 h-5 !my-0" />
      </div>
      <div class="min-w-0">
        <div class="text-sm font-medium text-slate-700 dark:text-slate-300 group-hover:text-yellow-600 dark:group-hover:text-yellow-400 transition-colors">MicroPython</div>
        <div class="text-[10px] text-slate-500 uppercase">Python</div>
      </div>
    </a>
  </div>
</div>

Где купить

Приобрести KY-031

Доступен в большинстве магазинов электроники

~ $1.00 за модуль

Почему этот модуль?

  • Очень низкая стоимость и простота подключения.

  • Не требует сложных библиотек — работает как обычная кнопка.

  • Совместим с логикой 3.3В и 5В.

Цены указаны ориентировочно. Мы можем получать комиссию от покупок (Amazon Associate).

Технические данные

Характеристики KY-031

Модуль KY-031 является простым датчиком вибрации/удара, работающим на принципе механического замыкания контактов.

Напряжение питания
3.3В – 5В
Тип выхода
Цифровой (ВКЛ/ВЫКЛ)
Габариты
19мм x 15мм
Вес
2 грамма
Скачать технический даташит (PDF)
Подключение контактов

Распиновка KY-031

Модуль оснащен 3-контактным разъемом для подключения к контроллеру.

Распиновка KY-031
Описание пинов
Пин Назначение
1 - GND (Общий - Земля)
2 Middle VCC (Питание 3.3В - 5В)
3 S Signal (Цифровой выход)
<div class="grid grid-cols-1 sm:grid-cols-2 gap-4">
  <div class="p-4 rounded-xl border border-slate-100 dark:border-slate-800 bg-slate-50 dark:bg-slate-800/50">
    <div class="flex items-center gap-2 mb-2">
      <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="text-purple-500"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
      <span class="text-xs font-bold uppercase text-slate-500">Защита</span>
    </div>
    <p class="text-xs text-slate-600 dark:text-slate-400 !my-0">Используйте резистор 10кОм, если на пине Signal есть шумы.</p>
  </div>
  <div class="p-4 rounded-xl border border-slate-100 dark:border-slate-800 bg-slate-50 dark:bg-slate-800/50">
    <div class="flex items-center gap-2 mb-2">
      <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="text-purple-500"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg>
      <span class="text-xs font-bold uppercase text-slate-500">Тип выхода</span>
    </div>
    <p class="text-xs text-slate-600 dark:text-slate-400 !my-0">Активный уровень (HIGH) выдается только в момент удара.</p>
  </div>
</div>
Схема подключения

Подключение KY-031 к ESP32

Ниже представлена типичная схема подключения модуля к контроллеру ESP32.

Схема подключения KY-031 к ESP32
Таблица соединений
Пин KY-031 Пин ESP32 Описание
- (GND) GND Общий провод
Middle (VCC) 3.3V Питание модуля
S (Signal) GPIO 16 Вход датчика (Digital Read)
<div class="bg-amber-50 dark:bg-amber-900/10 rounded-xl p-4 border border-amber-100 dark:border-amber-900/20">
  <div class="flex items-center gap-2 mb-2">
    <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="text-amber-600 dark:text-amber-400"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>
    <span class="text-sm font-bold text-amber-700 dark:text-amber-400 uppercase tracking-wider">Важное замечание</span>
  </div>
  <p class="text-xs text-amber-800/80 dark:text-amber-400/80 !my-0 leading-relaxed">
    Поскольку датчик имеет механические контакты, может возникать «дребезг» контактов (bounce). Для корректной работы рекомендуется программное устранение дребезга (debounce) или использование небольшого конденсатора.
  </p>
</div>
Решение проблем

Устранение неполадок KY-031

Датчик не реагирует на удары

Решение: Проверьте правильность подключения пина «S» к цифровому входу контроллера. Убедитесь, что напряжение питания подается верно. Также попробуйте наносить более резкие удары, так как малая чувствительность может быть особенностью пружины внутри модуля.

Ложные срабатывания (шум)

Решение: Активируйте встроенный подтягивающий резистор (PULLUP или PULLDOWN) в коде микроконтроллера. Используйте программный фильтр (delay или счетчик) для игнорирования повторных дребезжащих сигналов после первого срабатывания.

Примеры программирования

Примеры кода KY-031

Ниже приведены проверенные примеры кода для различных платформ.

Arduino

Arduino IDE / ESP32

C++ / Wiring

Простой скетч для чтения состояния датчика через пин 10 (или GPIO 16 на ESP32).

```cpp // Определяем пин подключения датчика const int knockPin = 10; int val;

void setup() { pinMode(knockPin, INPUT); // Устанавливаем пин на вход Serial.begin(9600); // Открываем последовательный порт Serial.println(“KY-031 Готов к работе…”); }

void loop() { val = digitalRead(knockPin); // Считываем состояние

// Если обнаружен удар (сигнал HIGH или LOW зависит от версии модуля) if (val == HIGH) { Serial.println(“УДАР ОБНАРУЖЕН!”); delay(200); // Задержка для защиты от дребезга контактов } }

    </div>
  </details>

  <!-- MicroPython -->
  <details class="group rounded-2xl border border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-900 overflow-hidden">
    <summary class="flex items-center justify-between p-5 cursor-pointer list-none hover:bg-slate-50 dark:hover:bg-slate-800/50 transition-colors">
      <div class="flex items-center gap-4">
        <div class="w-10 h-10 rounded-xl bg-yellow-100 dark:bg-yellow-900/40 flex items-center justify-center shrink-0">
          <img src="/img/U_FT8ja_jJ-40.png" alt="MicroPython" class="w-6 h-6 !my-0" />
        </div>
        <div>
          <h3 class="font-bold text-slate-900 dark:text-white">MicroPython</h3>
          <p class="text-xs text-slate-50 uppercase tracking-wide">Python (ESP32/RP2040)</p>
        </div>
      </div>
      <div class="flex items-center gap-3">
        <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="text-slate-400 group-open:rotate-180 transition-transform"><polyline points="6 9 12 15 18 9"/></svg>
      </div>
    </summary>
    <div class="p-5 border-t border-slate-100 dark:border-slate-800 bg-slate-50/50 dark:bg-slate-900/50">
```python
from machine import Pin
import time

# Настройка пина 16 с подтяжкой к земле
knock_sensor = Pin(16, Pin.IN, Pin.PULL_DOWN)

print("Датчик KY-031 активирован...")

while True:
    if knock_sensor.value() == 1:
        print("Вибрация / Удар!")
        time.sleep(0.5) # Пауза для предотвращения повторных срабатываний
    time.sleep(0.01)
</div>

Итоги

Датчик KY-031 Knock Sensor Module — это надежное и недорогое решение для базового обнаружения механических воздействий. Хотя он не подходит для измерения силы удара, его простота делает его идеальным выбором для начинающих и простых проектов автоматизации.

Совет по использованию

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

Безопасность

Не превышайте напряжение питания 5В, чтобы не повредить чувствительные элементы модуля.