Используйте матричную эластичную 12-кнопочную клавиатуру для создания кодовых замков, управления элементами умного дома и роботами.
На клавиатуре расположен шлейф из 7 проводов с мама-разъёмом шагом 2,54 мм. Подключите её к управляющей электронике с помощью линейки штырьковых соединителей. Или используйте Breadboard и провода «папа-папа».
Подавая сигнал на один из проводов 1
—4
и снимая его на проводах 5
—7
, можно определить какие кнопки в определённой группе зажаты в данный момент. Для быстрого поиска нужной кнопки мы написали библиотеку AmperkaKB.
В качестве примера подключим клавиатуру к платформе Iskra Neo к пинам 0
—6
и будем выводить нажатую клавишу в Serial-порт.
Прошейте плату скетчем, приведённым ниже.
// подключаем библиотеку для работы с матричной клавиатурой #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 к пинам P0
—P6
и будем выводить нажатую клавишу в последовательный порт.
require("KeyPad").connect([P0, P1, P2], [P3, P4, P5, P6], function(e) { print("123456789*0#"[e]); });
Клавиатура выполнена в виде матрицы 4×3
, каждая кнопка является областью воздушного зазора между двумя диэлектрическими слоями с нанесенным на них токопроводящим покрытием. Дорожки покрытия одного слоя нанесены горизонтально (выводы 1
—4
), другого — вертикально (выводы 5
-7
). Нажатие на кнопку приводит к соединению дорожки одного слоя с дорожкой другого и замыканию одного из выводов 1
—4
с одним из выводов 5
—7
.