Матричная клавиатура для Arduino: 4×4, 4×3 и как сэкономить выводы
Когда кнопок больше пяти, подключать каждую отдельным проводом становится расточительно: шестнадцать кнопок съели бы все цифровые выводы Arduino UNO. Поэтому кнопки объединяют в матрицу — сетку из строк и столбцов.
Шестнадцать кнопок в матрице четыре на четыре требуют всего восьми выводов: четыре на строки и четыре на столбцы. Кнопка стоит на пересечении и замыкает свою строку со своим столбцом.
Разборы конкретных моделей
Как подключить плёночную матричную клавиатуру 4×4 к Arduino: распиновка восьми выводов, интерактивная схема, как работает сканирование матрицы, библиотека Keypad и скетч ввода пароля.
Тактовая кнопкаКак подключить кнопку к Arduino: схема без внешнего резистора через INPUT_PULLUP, почему кнопка срабатывает несколько раз за одно нажатие и как убрать дребезг в скетче.
Виды клавиатур
Тонкая наклейка с шестнадцатью кнопками: цифры, решётка, звёздочка и четыре буквы. Занимает восемь выводов, толщина меньше миллиметра, приклеивается на любую поверхность. Нажатие ощущается плохо, зато влага ей не страшна.
Двенадцать кнопок, как на телефоне. Занимает семь выводов вместо восьми. Если буквы не нужны, это разумная экономия.
Собирается вручную из обычных кнопок. Нажатие чёткое и приятное, ремонтопригодно, размер под себя. Требует пайки и места.
Кнопки включены в цепочку резисторов разного номинала, и каждая даёт своё напряжение. Занимает один аналоговый вход вместо восьми цифровых. Расплата: две кнопки одновременно нажать нельзя, а при разбросе номиналов соседние значения могут путаться.
Как работает матричное сканирование
Плата по очереди подаёт низкий уровень на каждую строку и в этот момент проверяет все столбцы. Если на каком-то столбце появился ноль — значит, нажата кнопка на пересечении этой строки и этого столбца. Весь цикл занимает доли миллисекунды и повторяется постоянно, поэтому нажатие кажется мгновенным.
Отсюда следует известное ограничение: при одновременном нажатии трёх кнопок, стоящих углом, матрица может увидеть четвёртую, ненажатую. Эффект называется фантомным нажатием и лечится диодами в каждой кнопке — в дешёвых плёночных клавиатурах их нет.