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

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


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

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

Видеообзор

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

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

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

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

Iskra Neo

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

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

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

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

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

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

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

Ресурсы