Содержание

Четырёхкнопочная клавиатура: инструкция, подключение и примеры использования

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

Видеообзор

Подключение и настройка

На клавиатуре расположен шлейф из 5 проводов с мама-разъёмом шагом 2,54 мм. Подключите её к управляющей электронике с помощью линейки штырьковых соединителей. Или используйте Breadboard и провода «папа-папа».

Подавая сигнал на вывод 1 и снимая его на проводах 25, можно определить какие кнопки зажаты в данный момент. Для быстрого поиска нужной кнопки мы написали библиотеку AmperkaKB.

Пример работы

Iskra Neo

В качестве примера подключим клавиатуру к платформе Iskra Neo к пинам 04 и будем выводить нажатую клавишу в Serial-порт. Прошейте плату скетчем, приведённым ниже.

KB_1x4.ino
// подключаем библиотеку для работы с матричной клавиатурой
#include <AmperkaKB.h>
 
// создаём объект для работы с матричной клавиатурой
// указывая номера 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

Подключим клавиатуру к платформе Iskra JS к пинам P0P4 и будем выводить нажатую клавишу в последовательный порт.

keyPad1x4.js
require("KeyPad").connect([P4], [P3, P2, P1, P0], function(e) {
  print("3412"[e]);
});

Особенности работы

Каждая кнопка клавиатуры является областью воздушного зазора между двумя диэлектрическими слоями с нанесенным на них токопроводящим покрытием. Дорожки покрытия одного слоя нанесены горизонтально (вывод 1), а другого вертикально (выводы 25). Нажатие на кнопку приводит к соединению дорожки одного слоя с дорожкой другого и замыканию вывода 1 с одним из выводов 25.

Характеристики

Ресурсы