Как клавиатура считывает сразу много клавиш

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

Откуда берётся «лишнее» нажатие

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

Есть и обратный эффект: чтобы не принять неоднозначную комбинацию за несколько нажатий, контроллер может перестать сообщать о части действительно нажатых клавиш. Поэтому проблема не просто в том, что «две клавиши мешают друг другу»: результат зависит от того, где именно они расположены в матрице и как устроена схема.

Как обходят ограничение

Один способ — поставить диод у каждой клавиши. Диод пропускает ток только в одном направлении и мешает ему обходить нужный контакт через соседние клавиши. Такая схема позволяет надёжнее распознавать одновременные нажатия, но добавляет детали и стоимость. В более простых клавиатурах защиту могут предусмотреть лишь для некоторых сочетаний, важных, например, для игр.

Поэтому клавиатура, которая принимает одно нажатие за другим безошибочно, не обязательно распознает любую комбинацию одновременно: решающими оказываются не только число нажатых клавиш, но и их положение в матрице.