KY-004 Клавишный модуль

Узнайте всё о модуле KY-004: характеристики, распиновка, схемы подключения, документация и примеры кода для ESP32, Arduino, Raspberry

Кнопки и переключатели Digital

Обзор

KY-004 — это модуль с тактильной кнопкой-переключателем, который обеспечивает цифровой выходной сигнал при нажатии. Идеально подходит для приложений с пользовательским вводом в различных электронных проектах. Модуль работает в диапазоне 3.3В–5В и совместим с ESP32, Arduino и другими микроконтроллерами.

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

KY-004 Key Switch Module
Быстрая навигация
Основные разделы статьи
Примеры кода
Популярные платформы

О модуле KY-004

KY-004 — это простой модуль с тактильной кнопкой-переключателем, который обеспечивает цифровой вход для микроконтроллеров. При нажатии кнопки сигнальный вывод подключается к земле, отправляя LOW-сигнал для запуска события. Модуль работает в диапазоне 3.3В–5В, что обеспечивает совместимость с ESP32, Arduino и другими платами.

Ключевые особенности

  • Активация кнопкой — отправляет LOW-сигнал при нажатии.
  • Рабочее напряжение3.3В–5В, широкая совместимость.
  • Простой цифровой выход — лёгкая интеграция с ESP32, Arduino.
  • Универсальное применение — используется для функций сброса, навигации по меню и управляющих интерфейсов.

Компактный дизайн и простой интерфейс делают KY-004 идеальным вариантом для пользовательского ввода, интерактивных устройств и управляемых приложений. 🚀

Где купить

Приобретите KY-004

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

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

Полные технические характеристики модуля тактильной кнопки KY-004.

Напряжение питания
3.3V до 5V
Тип выхода
Цифровой (LOW при нажатии)
Размеры
15 × 26 × 10 мм
Долговечность
100 000 циклов
Скачать полный даташит
Конфигурация пинов

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

KY-004 — это 3-пиновый модуль тактильной кнопки-переключателя.

Визуальная диаграмма распиновки
Основное
Распиновка KY-004
Всего выводов
3
Типы
Питание + Digital
Быстрые советы
  • Режим работы — активный LOW (LOW при нажатии).
  • Встроенный резистор — подтяжка к питанию на модуле.
  • Питание — 3.3В или 5В (любой GPIO).
Описание выводов
Вывод Тип Описание Примечания
1 Pin (-) Питание Подключение земли GND
2 Pin (+) Питание Питание модуля 3.3V или 5V
3 Pin (S) Communication Цифровой сигнальный вывод LOW при нажатии (активный LOW)
Руководство по подключению

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

Для подключения модуля KY-004 к ESP32 используйте цифровой GPIO вывод. Модуль уже содержит встроенную подтяжку к питанию, поэтому внешние резисторы обычно не требуются. Сигнальный вывод藍 provides LOW-сигнал при нажатии кнопки.

Схема подключения
Рекомендуемая (цифровой ввод)
Подключение KY-004 к ESP32
Подключений
3
Статус
Все обязательны
Протокол
Digital
Подключения пинов
Вывод KY-004 Подключение Вывод ESP32 Описание
1 Pin (-) обязательно GND Общая земля
2 Pin (+) обязательно 3.3V или 5V Питание модуля
3 Pin (S) обязательно GPIO4 (любой цифровой GPIO) Цифровой сигнал (LOW при нажатии)
🔘 Режим: Active LOW ⚡ Встроенная подтяжка: да 🔧 Дебаунсинг: программный 🎯 Универсальные GPIO
Помощь и поддержка

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

Распространённые проблемы и решения для модуля тактильной кнопки.

Нет реакции при нажатии кнопки
Кнопка не вызывает никакого отклика в коде

Проблема: нажатие кнопки не регистрируется программой.

Возможные причины: неправильные подключения, отсутствие питания, неверная настройка GPIO в коде.

Решение: проверьте все соединения, убедитесь в подаче напряжения (3.3В или 5В), проверьте настройку пина в коде и режим INPUT_PULLUP. Протестируйте модуль мультиметром.

Ложные срабатывания кнопки
Сигнал появляется без нажатия

Проблема: кнопка срабатывает без физического нажатия.

Причины: контакты замыкаются от вибрации, плохой контакт, помехи.

Решение: реализуйте программный дебаунсинг (задержку 10–50 мс), проверьте целостность контактов, уберите возможные короткие замыкания.

Постоянный LOW на сигнальном пине
Пин всегда в LOW, даже без нажатия

Причина: короткое замыкание на плате модуля или неисправность кнопки.

Решение: проверьте модуль на короткое замыкание мультиметром, осмотрите дорожки, при необходимости замените модуль.

Не работает с 3.3В на ESP32
Датчик не реагирует при питании 3.3В

Проблема: модуль работает только от 5В, но ESP32 имеет 3.3В GPIO.

Решение: KY-004 совместим с 3.3В, но некоторые клоны могут требовать 5В. Если 3.3В не работает, попробуйте питать модуль от 5В (VIN), а сигнальный вывод подключать к GPIO через делитель напряжения или использовать преобразователь уровня. Однако в большинстве случаев 3.3В работает нормально.

Советы по отладке

Serial монитор
Отслеживание состояний кнопки
Используйте Serial Monitor для вывода состояний кнопки. Добавляйте Serial.println() в код, чтобы видеть, когда кнопка переключается между HIGH и LOW. Это поможет определить, есть ли проблема с дебаунсингом или подключением.
Проверка мультиметром
Целостность и сопротивление
Проверьте сопротивление между выводами: когда кнопка не нажата, между S и VCC должно быть высокое сопротивление (разомкнутая цепь), при нажатии — низкое (замкнутая). Также проверьте отсутствие коротких замыканий между всеми выводами.

Дополнительные ресурсы

Примеры кода

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

Готовые примеры кода для разных платформ и фреймворков

Пример для Arduino

Совместим с Arduino IDE и платами ESP32

C++
#define BUTTON_PIN 7
#define LED_PIN 13

void setup() {
    pinMode(BUTTON_PIN, INPUT);
    digitalWrite(BUTTON_PIN, HIGH); // Включить внутреннюю подтяжку к питанию
    pinMode(LED_PIN, OUTPUT);
    Serial.begin(9600);
    Serial.println("Тест модуля KY-004 Key Switch");
}

void loop() {
    int buttonState = digitalRead(BUTTON_PIN);
    if (buttonState == LOW) {
        Serial.println("Кнопка нажата");
        digitalWrite(LED_PIN, HIGH);
    } else {
        Serial.println("Кнопка отпущена");
        digitalWrite(LED_PIN, LOW);
    }
    delay(100);
}

Этот скетч Arduino использует модуль KY-004 на пине 7 и светодиод на пине 13. При нажатии кнопки модуль выдаёт LOW-сигнал, который включает светодиод и выводит сообщение в Serial Monitor.

Не забудьте настроить режим INPUT_PULLUP или подключить внешний подтягивающий резистор, если на вашем модуле его нет.

Пример для ESP-IDF

Официальный фреймворк Espressif для разработки IoT

C++
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"

#define BUTTON_PIN GPIO_NUM_4
#define LED_PIN GPIO_NUM_2

void app_main(void) {
    gpio_set_direction(BUTTON_PIN, GPIO_MODE_INPUT);
    gpio_set_pull_mode(BUTTON_PIN, GPIO_PULLUP_ONLY);
    gpio_set_direction(LED_PIN, GPIO_MODE_OUTPUT);
    printf("Тест модуля KY-004 Key Switch\n");

    while (1) {
        int button_state = gpio_get_level(BUTTON_PIN);
        if (button_state == 0) {
            printf("Кнопка нажата\n");
            gpio_set_level(LED_PIN, 1);
        } else {
            printf("Кнопка отпущена\n");
            gpio_set_level(LED_PIN, 0);
        }
        vTaskDelay(pdMS_TO_TICKS(100));
    }
}

В этом примере для ESP-IDF настроен GPIO4 как цифровой вход для модуля KY-004 и GPIO2 как выход для светодиода. При нажатии кнопки (модуль выдаёт LOW) светодиод включается, и сообщение выводится в консоль.

Функция gpio_set_pull_mode() включает внутренний подтягивающий резистор к питанию (pull-up), что необходимо для стабильной работы кнопки.

Пример для ESPHome

Конфигурация ESPHome для Home Assistant

YAML
binary_sensor:
  - platform: gpio
    pin:
      number: GPIO4
      mode: INPUT_PULLUP
    name: "KY-004 Key Switch"
    filters:
      - delayed_on: 10ms
      - delayed_off: 10ms
    on_press:
      - then:
          - lambda: |-`
              ESP_LOGD("sensor", "Кнопка нажата!");

Эта конфигурация ESPHome создаёт бинарный сенсор для модуля KY-004 на GPIO4 с режимом INPUT_PULLUP. Фильтры delayed_on и delayed_off добавляют задержку 10 мс для подавления дребезга контактов. При нажатии кнопки выполняется лямбда-функция, выводящая сообщение в лог.

Пример для PlatformIO

Профессиональная среда разработки

C++

platformio.ini

[env:esp32]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
lib_deps =
    arduino-libraries/Wire

main.cpp

#define BUTTON_PIN 4
#define LED_PIN 2

void setup() {
    pinMode(BUTTON_PIN, INPUT_PULLUP);
    pinMode(LED_PIN, OUTPUT);
    Serial.begin(115200);
    Serial.println("Тест модуля KY-004 Key Switch");
}

void loop() {
    if (digitalRead(BUTTON_PIN) == LOW) {
        Serial.println("Кнопка нажата");
        digitalWrite(LED_PIN, HIGH);
    } else {
        Serial.println("Кнопка отпущена");
        digitalWrite(LED_PIN, LOW);
    }
    delay(100);
}

Конфигурация PlatformIO для ESP32 использует фреймворк Arduino. В main.cpp настраивается GPIO4 как вход с внутренней подтяжкой (INPUT_PULLUP) и GPIO2 как выход для светодиода. Код прост и идентичен Arduino-примеру, но удобно работает внутри IDE PlatformIO.

Пример для MicroPython

Python для микроконтроллеров

Python
import machine
import time

BUTTON_PIN = machine.Pin(4, machine.Pin.IN, machine.Pin.PULL_UP)
LED_PIN = machine.Pin(2, machine.Pin.OUT)

while True:
    if BUTTON_PIN.value() == 0:
        print("Кнопка нажата")
        LED_PIN.on()
    else:
        print("Кнопка отпущена")
        LED_PIN.off()
    time.sleep(0.1)

Этот скрипт MicroPython настраивает GPIO4 как цифровой вход с внутренней подтяжкой (PULL_UP) для модуля KY-004 и GPIO2 как выход для светодиода. При нажатии кнопки (значение пина становится 0) светодиод включается, и в консоль выводится сообщение. Задержка 0.1 секунды (100 мс) помогает сгладить дребезг контактов.

Итоги KY-004

Модуль тактильной кнопки KY-004 — это простой и надёжный цифровой датчик для пользовательского ввода. Он совместим с Arduino, ESP-IDF, ESPHome, PlatformIO и MicroPython, что делает его универсальным выбором для множество проектов на базе микроконтроллеров.

Рекомендации

Используйте режим **INPUT_PULLUP** для цифрового входа. Для стабильной работы реализуйте **программный дебаунсинг** (задержка 10–50 мс). При необходимости добавляйте внешний подтягивающий резистор, если на модуле его нет.

Безопасность прежде всего

Проверяйте напряжение питания: модуль работает от 3.3В или 5В. Не превышайте максимальный ток через кнопку (обычно до 100 мА). При пайке будьте осторожны, чтобы не перегреть контакты.

Готовы начать создавать?

Теперь, когда у вас есть вся необходимая информация, пора интегрировать KY-004 в проект на ESP32 и воплотить идеи в жизнь!