ELECTRONICS

Матричная клавиатура для Arduino: 4×4, 4×3 и как сэкономить выводы

Когда кнопок больше пяти, подключать каждую отдельным проводом становится расточительно: шестнадцать кнопок съели бы все цифровые выводы Arduino UNO. Поэтому кнопки объединяют в матрицу — сетку из строк и столбцов.

Шестнадцать кнопок в матрице четыре на четыре требуют всего восьми выводов: четыре на строки и четыре на столбцы. Кнопка стоит на пересечении и замыкает свою строку со своим столбцом.

Разборы конкретных моделей

Виды клавиатур

Плёночная матричная 4×4

Тонкая наклейка с шестнадцатью кнопками: цифры, решётка, звёздочка и четыре буквы. Занимает восемь выводов, толщина меньше миллиметра, приклеивается на любую поверхность. Нажатие ощущается плохо, зато влага ей не страшна.

Плёночная матричная 4×3

Двенадцать кнопок, как на телефоне. Занимает семь выводов вместо восьми. Если буквы не нужны, это разумная экономия.

Матрица из тактовых кнопок на плате

Собирается вручную из обычных кнопок. Нажатие чёткое и приятное, ремонтопригодно, размер под себя. Требует пайки и места.

Аналоговая клавиатура на одном выводе

Кнопки включены в цепочку резисторов разного номинала, и каждая даёт своё напряжение. Занимает один аналоговый вход вместо восьми цифровых. Расплата: две кнопки одновременно нажать нельзя, а при разбросе номиналов соседние значения могут путаться.

Как работает матричное сканирование

Плата по очереди подаёт низкий уровень на каждую строку и в этот момент проверяет все столбцы. Если на каком-то столбце появился ноль — значит, нажата кнопка на пересечении этой строки и этого столбца. Весь цикл занимает доли миллисекунды и повторяется постоянно, поэтому нажатие кажется мгновенным.

Отсюда следует известное ограничение: при одновременном нажатии трёх кнопок, стоящих углом, матрица может увидеть четвёртую, ненажатую. Эффект называется фантомным нажатием и лечится диодами в каждой кнопке — в дешёвых плёночных клавиатурах их нет.