Подключение матричной мембранной клавиатуры к Arduino
В этой статье расскажу как работает матричная мембранная клавиатуру и приведу простой пример подключения клавиатуры к 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#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 и определения количества строк и столбцов на клавиатуре, которую вы хотите использовать.
1 2 3 4 |
#include <Keypad.h> const byte ROWS = 4; const byte COLS = 4; |
Затем создаем массив keys[ROWS][COLS]
клавиатуры, который содержит символы, которые будут напечатаны при нажатии определенной кнопки на клавиатуре.
1 2 3 4 5 6 |
char keys[ROWS][COLS] = { {'1','2','3','4'}, {'5','6','7','8'}, {'9','0','+','-'}, {'.','*','/','='} }; |
Далее мы создаем объект библиотеки с питьями параметрами.
1 |
Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS); |
► makeKeymap(keys)
— инициализирует внутреннюю раскладку клавиатуры.
► rowPins
и colPin
s
— передаем данные о подключённых выводах строк и столбцов.
► WS
и COLS
— передаем данные о количество строк и столбцов клавиатуры.
Далее, командой getKey() проверяем какая клавиша нажата, и есть кнопка нажата передаем ее в последовательный порт
1 2 3 4 5 6 |
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