KY-004 Модуль тактовой кнопки. Подключение к Arduino.

Модуль KY-004 представляет собой тактовую кнопку с обвязкой. А если быть точнее, то с установленным подтягивающим резистором 10 кОм. Данный модуль подключается по аналогии с подключением тактовой кнопки к Arduino, только не нужно устанавливать подтягивающий резистор. С кодом, также нет проблем, все примеры с использованием тактовой кнопки и библиотеки можно использовать, при подключении модуля KY-004.

Характеристики модуля кнопки KY-004 для Ардуино.

Модуль состоит из тактовой кнопки (переключателя) и резистора. Совместимость с популярными электронными платформами, такими как Arduino, Raspberry Pi и Esp8266.

Характеристики модуля кнопки KY-004 для Ардуино.

  • Температура окружающей среды от -25 ° C до 105 ° C.
  • Срок службы 100000 циклов срабатывания.
  • Рабочая сила нажатия: 180/230 (± 20 гс).
  • Размеры 18,5 x 15 мм.

Модуль KY-004 имеет нормально разомкнутые контакты, то есть контакты замыкаются при нажатии на кнопку, а на выходе датчика появляется напряжение низкого уровня. Между контактом выхода «S» и средним контактом, который подключается к пину «5V» Arduino, впаян резистор сопротивлением 10 кОм.

Схема подключения модуля KY-004 для Ardiono.

Подключите линию питания (посередине) c к +5 Arduino, землю (-) и GND, соответственно. Подключите сигнал (S) к контакту 4 на Arduino. Светодиод подключаем к 3 пину Arduino. Или можно использовать встроенный светодиод, который подключен к 13 пину Arduino.

Схема подключения модуля KY-004 для Ardiono NANO.

Схема подключения модуля KY-004 для Ardiono NANO.

Схема подключения модуля KY-004 для Ardiono UNO.Схема подключения модуля KY-004 для Ardiono UNO.

Благодаря тому, что на модуле KY-004 распаяна обвязка и имеются выводы для подключения перемычек, поэтому макетная плата требуется только для подключения светодиода к Ardiono.

включение светодиода с помощью модуля KY-004.

Скетч включения светодиода с помощью модуля KY-004.

В связи с тем, что модуль представляет собой тактовую кнопку с обвязкой, пример кода возьмём из моего старого урока: "Подключение кнопки и светодиода к плате Arduino". Код немного изменим. Это связанно с тем, что на выходе модуля, при нажатии, возникает сигнал низкого уровня LOW, а когда кнопка не нажата, то сигнал высоко уровня HIGH.

int led_pin=3;          // пин подключения
int button_pin = 4;     // пин кнопки
void setup() { 
    pinMode(led_pin, OUTPUT); // Инициализируем цифровой вход/выход в режиме выхода.
    pinMode(button_pin, INPUT); // Инициализируем цифровой вход/выход в режиме входа.
}
void loop() {
   if (digitalRead(button_pin) == LOW) { // Если кнопка нажата 
      digitalWrite(led_pin, HIGH);// зажигаем светодиод
 }
  else { //Иначе
      digitalWrite(led_pin, LOW);// выключаем светодиод
  }
}

Пояснение к коду.

Данный код практически не применим в практике, но нам для примера будет достаточно.

В данной строчке пин button сконфигурирован как вход, для дальнейшего приема на него сигнала.

pinMode(button_pin, INPUT); // Инициализируем цифровой вход/выход в режиме входа.

Считываем цифровое значение с pin button. Если получаем 0В, это значит LOW, а 5В значит HIGH.

if (digitalRead(button_pin) == HIGH) { // Если кнопка нажата

Конструкция if..else предоставляет больший контроль над процессом выполнения кода, чем базовый оператор if, позволяя осуществлять несколько проверок, объединенных вместе.

if (digitalRead(button_pin) == HIGH) //Если на пин button приходит сигнал HIGH то выполняем действие А
 { 
    // действие A
 }
else  //Иначе. В нашем случае если на пин button приходит LOW, выполняем действие В
 { 
    // действие B
 }

Скетч нажатия тактовой копки KY-004 без ложных срабатываний.

Второй пример возьмём из урока для начинающих. В данном блоке уроков рассказываю, как можно начать изучать Arduino без покупки Ардуино. Если считаете, что это не возможно, то посмотрите мои уроки.

int led_pin = 3;
int button_pin = 4;
boolean lastBt = false;
boolean currentBt = false;
boolean ledOn = LOW;
boolean debvence (boolean last)
{
  boolean current = digitalRead(button_pin);
  if ( last != current)
  {
    delay(5);
    current = digitalRead(button_pin);
    return current;
  }
}
void setup()
{
  pinMode(led_pin, OUTPUT);
  pinMode(button_pin, INPUT);
}
void loop()
{
  // Получаем состояние кнопки
  currentBt = debvence(lastBt);
  // Если кнопка нажата
  if (lastBt == HIGH && currentBt == LOW)
    ledOn = !ledOn;
  digitalWrite(led_pin, ledOn);
  lastBt = currentBt; 
}

Данный код поможет при одном нажатии включить светодиод, и при повторном нажатии его выключить, при этом не будет никаких ложных срабатываний. Что такое ложные срабатывания, и как с ними бороться, читайте в уроке про дребезг кнопки.

Пояснение кода.

Создадим необходимые переменные:

int led_pin = 3;
int button_pin = 4;
boolean lastBt = false;
boolean currentBt = false;
boolean ledOn = LOW;

Функция устранения дребезга кнопки.

boolean debvence (boolean last)
{
  boolean current = digitalRead(button_pin);
  if ( last != current)
  {
    delay(5);
    current = digitalRead(button_pin);
    return current;
  }
}

Осталось в скетче прописать небольшие изменения.

Для работы с функцией устранения дребезга достаточно прописать всего одну строчку кода.

// Получаем состояние кнопки
  currentBt = debvence(lastBt);

Также, нужно проверить, отпустили кнопку или нет.

// Если кнопка нажата
  if (lastBt == HIGH && currentBt == LOW)

После условия, нужно обязательно сделать переприсваивание предыдущего состояния кнопки, для дальнейшего определения нажатия кнопки.

lastBt = currentBt;

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

digitalWrite(led_pin, ledOn);

Применения модуля тактовой кнопки KY-004 в Arduino проектах.

Применения модуля тактовой кнопки KY-004 в Arduino проектах.

С помощью модуля кнопкиKY-004 можно включать и выключать лазерный светодиод , шаговый двигатель и любое другое устройство. Также можно собрать разнообразные часы, настройка которых будет производиться с помощью тактовой кнопки. Различные ночники и светильники, в которых также не обойтись без тактовой кнопки. И в других Arduino проектах.

Описание всех датчиков из набора «37 in 1 Sensors Kit for Arduino» вы можете посмотреть на странице описания данного набора модулей для Arduino.

Понравился Урок KY-004 Модуль тактовой кнопки. Подключение к Arduino? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Файлы для скачивания

Скетч включения светодиода с помощью модуля KY-004 Скетч включения светодиода с помощью модуля KY-004.ino1 Kb 653 Скачать
Скетч нажатия тактовой копки KY-004 без ложных срабатываний Скетч нажатия тактовой копки KY-004 без ложных срабатываний.ino1 Kb 686 Скачать

Комментарии

Ваше Имя*



Cлучайные товары

Цифровой акселерометр ADXL345Цифровой акселерометр ADXL345


AliExpress
AliExpress

G3MB-202P твердотельные релеG3MB-202P твердотельные реле


AliExpress
AliExpress

Читайте также

Мы в соц сетях

Подпишись на канал Telegram
Разработка проектов