Подключение матричной мембранной клавиатуры к Arduino

В этой статье расскажу как работает матричная мембранная клавиатуру и приведу простой пример подключения клавиатуры к Arduino с отображением нажатий клавиш на последовательном мониторе.
Технические параметры:
► Разъём: PLS-8;
► Тип шлейфа: плоский, гибкий, 8 pin;
► Длина шлейфа: 75 мм;
► Размер: 77×69×2 мм;
► Масса: 7 г.
Обзор матричной мембранной клавиатуры
В статье пойдет речь о матричной мембранной клавиатуре на 4×4. Так же существуют клавиатуры 4 × 3, 4 × 1 и другие, в не зависимости от размера, все они работают одинаково. Как видно из фото, на передней части располагается сами кнопки, а на обратной стороне приклеена липкая основа, которая позволяет приклеить клавиатуру к любой поверхности.

Принцип работы матричная клавиатура
В матричной мембранной клавиатуре 4 x 4 (4 столбца и 4 строки) содержится 16 кнопок, под каждой кнопкой находится мембранная переключатель. Все эти кнопки соединены с друг другом, образуя матрицу 4 × 4, это позволило уменьшит количество используемых выводов для подключения к микроконтроллеры (Arduino) с 17 контактов до 8 контактов.

Принцип работы очень простой, при нажатие кнопки замыкается контакт между столбцом и строкой, между ними начинает течь ток. Например, при нажатии клавиши «4» происходит короткое замыкание столбца 1 и строки 2. Схема клавиатуры 4 x 4 показана на рисунке ниже.

Подключение матричной мембранной клавиатура к Arduino
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Матричная мембранная клавиатура 4х4, 16 кнопок x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-F x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
Подключение:
Теперь приступим к сборке схемы, подключим контакта 1 клавиатуры к цифровому контакту 9 на Arduino. Далее необходимо подключить все остальные контакты 2 с 8 и так далее.

Установка библиотек:
В данном примере используем одну библиотеку «Keypad.h» скачать ее можно с «Менеджер библиотек» или в конце статьи.

В строке поиска вводим «Keypad» находим библиотеку «Keypad by Mark Stanley» и устанавливаем ее.

Программа:
Пример простой, копируем или скачиваем и загружаем в Arduno.
#include <Keypad.h> // Подключение библиотеки Keypad
const byte ROWS = 4; // Количество рядов
const byte COLS = 4; // Количество строк
char keys[ROWS][COLS] =
{
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {9, 8, 7, 6}; // Выводы, подключение к строкам
byte colPins[COLS] = {5, 4, 3, 2}; // Выводы, подключение к столбцам
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup()
{
Serial.begin(9600); // Открываем последовательную связь на скорости 9600
}
void loop(){
char key = keypad.getKey(); // Читаем состояние кнопок
if (key){
Serial.print("Key Pressed : ");
Serial.println(key);
}
}
Загрузите скетч и откройте «Последовательный монитор» из Arduino IDE.

Описание скетча:
Скетч начинается с включения библиотеки Keypad.h и определения количества строк и столбцов на клавиатуре, которую вы хотите использовать.
#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
Затем создаем массив keys[ROWS][COLS] клавиатуры, который содержит символы, которые будут напечатаны при нажатии определенной кнопки на клавиатуре.
char keys[ROWS][COLS] = {
{'1','2','3','4'},
{'5','6','7','8'},
{'9','0','+','-'},
{'.','*','/','='}
};
Далее мы создаем объект библиотеки с питьями параметрами.
Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
►
<strong>makeKeymap(keys)</strong> — инициализирует внутреннюю раскладку клавиатуры.
►
rowPins и
colPin
s — передаем данные о подключённых выводах строк и столбцов.
►
WSи
COLS — передаем данные о количество строк и столбцов клавиатуры.
Далее, командой getKey() проверяем какая клавиша нажата, и есть кнопка нажата передаем ее в последовательный порт
char key = keypad.getKey();
if (key){
Serial.print("Key Pressed : ");
Serial.println(key);
}

Ссылки
Библиотека Keypad.h
Купить на Aliexpress
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Комплект проводов DuPont, 2,54 мм, 20 см
Матричная мембранная клавиатура 1×4, 4×4, 4х3
