Модуль KY-004 представляет собой тактовую кнопку с обвязкой. А если быть точнее, то с установленным подтягивающим резистором 10 кОм. Данный модуль подключается по аналогии с подключением тактовой кнопки к Arduino, только не нужно устанавливать подтягивающий резистор. С кодом, также нет проблем, все примеры с использованием тактовой кнопки и библиотеки можно использовать, при подключении модуля KY-004.
Характеристики модуля кнопки KY-004 для Ардуино.
Модуль состоит из тактовой кнопки (переключателя) и резистора. Совместимость с популярными электронными платформами, такими как Arduino, Raspberry Pi и Esp8266.
- Температура окружающей среды от -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 UNO.
Благодаря тому, что на модуле KY-004 распаяна обвязка и имеются выводы для подключения перемычек, поэтому макетная плата требуется только для подключения светодиода к Ardiono.
Скетч включения светодиода с помощью модуля 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 проектах.
Описание всех датчиков из набора «37 in 1 Sensors Kit for Arduino» вы можете посмотреть на странице описания данного набора модулей для Arduino.
Понравился Урок KY-004 Модуль тактовой кнопки. Подключение к Arduino? Не забудь поделиться с друзьями в соц. сетях.
А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.
Спасибо за внимание!
Технологии начинаются с простого!
Фотографии к статье
Файлы для скачивания
|
Скетч включения светодиода с помощью модуля KY-004.ino | 1 Kb | 749 |
Скачать
Вы можете скачать файл.
|
|
Скетч нажатия тактовой копки KY-004 без ложных срабатываний.ino | 1 Kb | 782 |
Скачать
Вы можете скачать файл.
|
Комментарии