Обзор
KY-020 — это модуль датчика наклона, который определяет изменение ориентации в пространстве. Он выдаёт цифровой сигнал, что делает его отличным выбором для систем обнаружения движения, охранных сигнализаций и управления на основе наклона.
KY-020 — модуль датчика наклона, работающий на принципе замыкания контактов металлическим шариком. При изменении угла наклона шарик перемещается, замыкая или размыкая цепь, что позволяет микроконтроллеру легко определить состояние устройства.
О модуле датчика наклона KY-020
Модуль датчика наклона KY-020 предназначен для обнаружения ориентации или наклона. Внутри него находится металлический шарик, который замыкает или размыкает контакты в зависимости от угла наклона модуля. Когда устройство наклоняется, шарик перемещается, изменяя состояние цепи, что считывается микроконтроллером как цифровой сигнал. Этот модуль работает при напряжении от 3.3 В до 5 В, что делает его универсальным для различных проектов на базе Arduino или ESP32.
Приобретите KY-020
Характеристики KY-020
Полные технические характеристики модуля датчика наклона KY-020.
Распиновка KY-020
Модуль KY-020 имеет 3 контакта, которые легко подключаются к большинству современных микроконтроллеров.
- Интерфейс — цифровой выход для детекции наклона.
- Принцип — металлический шарик внутри корпуса.
- Питание — поддерживает уровни 3.3В и 5В.
| № | Название | Тип | Описание | Примечания |
|---|---|---|---|---|
| 1 | GND (-) | Питание | Общий провод (GND) | Отрицательный полюс |
| 2 | VCC (Средний) | PПитание | Положительное питание (VCC) | 3.3В до 5В |
| 3 | Digital (S) | Цифровой | Цифровой выходной сигнал | Меняет состояние при наклоне |
Подключение KY-020 к ESP32
Чтобы подключить KY-020 к ESP32 для обнаружения наклона, выполните следующие соединения:
| Вывод KY-020 | Подключение | Вывод ESP32 | Описание |
|---|---|---|---|
| GND (-) обязательно | → | GND | Земля |
| VCC обязательно | → | 3.3V | Питание (3.3В для ESP32) |
| Signal (S) обязательно | → | GPIO4 | Цифровой вход (любой GPIO) |
Устранение неполадок KY-020
Распространённые проблемы и решения, которые помогут вам заставить датчик работать корректно.
Датчик не реагирует
Нет сигнала при наклоне
Проблема: Сенсор не выдаёт сигнал при изменении положения.
Решение: Проверьте надёжность всех соединений. Убедитесь, что на модуль подаётся питание (3.3В - 5В). Проверьте корректность настройки пина ввода в коде микроконтроллера.
Ложные срабатывания
Сигнал появляется без наклона
Проблема: Датчик срабатывает от вибраций или наводок.
Решение: Убедитесь в стабильности крепления датчика. Используйте программный антидребезг (debouncing) для фильтрации быстрых переключений шарика.
Советы по отладке
Serial монитор
Проверка логов и сигналов
Мультиметр
Проверка цепи
Примеры программирования KY-020
Готовые к использованию примеры кода для различных платформ
Пример для Arduino
Совместим с Arduino IDE и ESP32
C++
Пример для Arduino
Совместим с Arduino IDE и ESP32
int tilt_switch = 10; // Вывод, к которому подключен датчик
int value; // Переменная для хранения значения
void setup() {
pinMode(tilt_switch, INPUT); // Инициализация пина как вход
Serial.begin(9600); // Настройка монитора порта
Serial.println("Тест датчика наклона KY-020");
}
void loop() {
// Считываем сигнал с датчика
value = digitalRead(tilt_switch);
// Если обнаружен наклон (цепь разомкнута или замкнута в зависимости от схемы)
if (value == LOW) {
Serial.println("Обнаружен наклон!");
delay(1000); // Задержка 1 секунда
}
}
Этот код настраивает KY-020 на 10-м цифровом пине. Он считывает состояние датчика и выводит сообщение в Serial Monitor при обнаружении наклона.
Пример для ESP-IDF
Нативный фреймворк Espressif
C++
Пример для ESP-IDF
Нативный фреймворк Espressif
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#define TILT_SWITCH_PIN GPIO_NUM_4
void app_main(void) {
gpio_config_t io_conf = {
.pin_bit_mask = (1ULL << TILT_SWITCH_PIN),
.mode = GPIO_MODE_INPUT,
.pull_up_en = GPIO_PULLUP_ENABLE,
.pull_down_en = GPIO_PULLDOWN_DISABLE,
.intr_type = GPIO_INTR_DISABLE
};
gpio_config(&io_conf);
printf("Тест датчика KY-020\n");
while (1) {
if (gpio_get_level(TILT_SWITCH_PIN) == 0) {
printf("Обнаружен наклон!\n");
vTaskDelay(pdMS_TO_TICKS(1000));
}
vTaskDelay(pdMS_TO_TICKS(100));
}
}
Код для ESP-IDF настраивает GPIO4 как вход с подтяжкой. При низком уровне сигнала выводится сообщение.
Пример для ESPHome
Конфигурация для Home Assistant
YAML
Пример для ESPHome
Конфигурация для Home Assistant
binary_sensor:
- platform: gpio
pin:
number: GPIO4
mode: INPUT_PULLUP
name: "Датчик наклона KY-020"
filters:
- delayed_on: 50ms
- delayed_off: 50ms
on_press:
- then:
- lambda: |-
ESP_LOGD("sensor", "Обнаружен наклон!");
Конфигурация ESPHome для использования KY-020 в качестве бинарного сенсора с фильтром дребезга.
Пример для MicroPython
Python для микроконтроллеров
Python
Пример для MicroPython
Python для микроконтроллеров
import machine
import time
tilt_pin = machine.Pin(4, machine.Pin.IN, machine.Pin.PULL_UP)
while True:
if tilt_pin.value() == 0:
print("Обнаружен наклон!")
time.sleep(1)
time.sleep(0.1)
MicroPython скрипт для отслеживания состояния пина GPIO4.
Итоги KY-020
Модуль **KY-020 Tilt Switch** — это простое и надёжное решение для обнаружения наклона в ваших проектах. Широкая поддержка платформ (Arduino, ESP-IDF, ESPHome, MicroPython) делает его доступным для разработчиков любого уровня.
Рекомендации
Для исключения ложных срабатываний всегда используйте программный антидребезг. Убедитесь, что модуль надёжно закреплён, если вы не планируете использовать его для детекции вибраций.
Безопасность
Проверяйте напряжение питания перед подключением. Модули KY-020 обычно безопасны, но помните, что внутри находится подвижный элемент — не подвергайте модуль сильным ударам.
Готовы начать создавать?
Теперь у вас есть всё необходимое для интеграции KY-020 в ваш проект!
Изучите альтернативные датчики
Ищете альтернативы KY-020? Посмотрите эти похожие модули:

