Инструменты пользователя

Инструменты сайта


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

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

Видеообзор

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

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

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

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

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

KB_4x4.ino
// подключаем библиотеку для работы с матричной клавиатурой
#include <AmperkaKB.h>
 
// создаём объект для работы с матричной клавиатурой
// указывая номера arduino подключенные к шлейфу клавиатуры
// начиная с первого вывода шлейфа
AmperkaKB KB(7, 6, 5, 4, 3, 2, 1, 0);
 
void setup()
{
  // открываем монитор Serial порта
  Serial.begin(9600);
  // указываем тип клавиатуры
  KB.begin(KB4x4);
  // второй необзятельный параметр:
  // время длительного зажатия кнопки
  // по умолчанию 2000, изменим на 5000 мс
  // KB.begin(KB4x4, 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 к пинам P0P7 и будем выводить нажатую клавишу в последовательный порт.

keyPad1x4.js
require("KeyPad").connect([P0, P1, P2, P3], [P4, P5, P6, P7], function(e) {
  print("123A456B789C*0#D"[e]);
});

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

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

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

  • Габариты: 68×77×0,8 мм
  • Рабочее напряжение: до 12 В
  • Максимальный ток: 100 мА
  • Сопротивление изоляции: >100 МОм
  • Сопротивление контактов: <200 Ом
  • Вес: 10 г

Ресурсы