====== Четырёхкнопочная клавиатура: инструкция, подключение и примеры использования ======
Используйте эластичную четырёхкнопочную клавиатуру для создания кодовых замков, управления элементами умного дома и роботами.
{{:продукты:keypad-1x4:keypad-1x4.1.jpg|}}
===== Видеообзор =====
{{youtube>usM4J3f95aM?large}}
===== Подключение и настройка =====
На клавиатуре расположен шлейф из 5 проводов с мама-разъёмом шагом 2,54 мм. Подключите её к управляющей электронике с помощью линейки [[amp>product/pin-headers-long|штырьковых соединителей]]. Или используйте [[amp>product/breadboard-half|Breadboard]] и [[amp>product/wire-mm|провода «папа-папа»]].
{{ :продукты:keypad-1x4:kb_4x1_.png?nolink |}}
Подавая сигнал на вывод ''1'' и снимая его на проводах ''2''—''5'', можно определить какие кнопки зажаты в данный момент. Для быстрого поиска нужной кнопки мы написали библиотеку [[https://github.com/amperka/AmperkaKB|AmperkaKB]].
===== Пример работы =====
==== Iskra Neo ====
В качестве примера подключим клавиатуру к платформе [[amp>product/iskra-neo|Iskra Neo]] к пинам ''0''—''4'' и будем выводить нажатую клавишу в Serial-порт.
{{ :продукты:keypad-1x4:schemekb_1x4_iskraneo.png |}}
Прошейте плату скетчем, приведённым ниже.
// подключаем библиотеку для работы с матричной клавиатурой
#include
// создаём объект для работы с матричной клавиатурой
// указывая номера arduino подключенные к шлейфу клавиатуры
// начиная с первого вывода шлейфа
AmperkaKB KB(4, 3, 2, 1, 0);
void setup()
{
// открываем монитор Serial порта
Serial.begin(9600);
// указываем тип клавиатуры
KB.begin(KB1x4);
// второй необзятельный параметр:
// время длительного зажатия кнопки
// по умолчанию 2000, изменим на 5000 мс
// KB.begin(KB4x3, 5000);
}
void loop()
{
// считывание данных с клавиатуры
KB.read();
// опеределяем клик кнопки
if (KB.justPressed()) {
// печатаем номер кнопки и её символ в последовательный порт
Serial.print("Key is press ");
Serial.print(KB.getNum);
Serial.print(" = \"");
Serial.print(KB.getChar);
Serial.println("\"");
}
// определяем отжатие кнопки
if (KB.justReleased()) {
// печатаем номер кнопки и её символ в последовательный порт
Serial.print("Key is release ");
Serial.print(KB.getNum);
Serial.print(" = \"");
Serial.print(KB.getChar);
Serial.println("\"");
}
// определяем зажатие кнопки на 3 секунды
if (KB.isHold()) {
// печатаем номер кнопки и её символ в последовательный порт
Serial.print("Key on long press ");
Serial.print(KB.getNum);
Serial.print(" = \"");
Serial.print(KB.getChar);
Serial.println("\"");
}
}
==== Iskra JS ====
Подключим клавиатуру к платформе [[amp>product/iskra-js|Iskra JS]] к пинам ''P0''—''P4'' и будем выводить нажатую клавишу в последовательный порт.
require("KeyPad").connect([P4], [P3, P2, P1, P0], function(e) {
print("3412"[e]);
});
===== Особенности работы =====
Каждая кнопка клавиатуры является областью воздушного зазора между двумя диэлектрическими слоями с нанесенным на них токопроводящим покрытием. Дорожки покрытия одного слоя нанесены горизонтально (вывод ''1''), а другого вертикально (выводы ''2''—''5''). Нажатие на кнопку приводит к соединению дорожки одного слоя с дорожкой другого и замыканию вывода ''1'' с одним из выводов ''2''—''5''.{{ :продукты:keypad-1x4:schemekb_1x4_.png?nolink |}}
===== Характеристики =====
* Габариты: 69×20×0,8 мм
* Рабочее напряжение: до 12 В
* Максимальный ток: 100 мА
* Сопротивление изоляции: >100 МОм
* Сопротивление контактов: <200 Ом
* Вес: 5 г
===== Ресурсы =====
* [[amp>product/keypad-1x4|Четырёхкнопочная клавиатура]] в магазине.
* [[https://github.com/amperka/AmperkaKB|Библиотека для Arduino]].