Как это может работать без мультиплексора?
Это не так. Клавиатура, кажется, имеет только переключатели, возможно, с некоторыми диодами, которые мы не видим. Тем не менее, левая плата выглядит так, как будто на ней установлен процессор. Почти наверняка мультиплексирование делается в прошивке.
Алгоритм мультиплексирования работает примерно так:
- Ведите один ряд высоко, остальные низко.
- Включите пассивные раскрывающиеся строки.
- Посмотрите, какие строки столбца высокие. Нажаты кнопки на пересечении этих строк столбцов с одной утвержденной строкой. Другие кнопки в этом ряду отпущены.
- Повторите процедуру до первого шага, утверждая следующую строку в последовательности.
Вышеописанный процесс повторяется достаточно быстро, так что все кнопки проверяются в течение времени, которое все еще ощущается человеком-наблюдателем. Человеческий предел «мгновенного» в этом контексте составляет около 50 мс. Даже младший микроконтроллер может сканировать клавиатуру 4x4 за гораздо меньшее время.
Может ли это точно определять нажатия нескольких кнопок?
Вероятно, да. Одним из способов является последовательное включение диода с каждой кнопкой. Они могут быть на нижней стороне доски, которую вы показываете. С диодами описанный выше алгоритм просто работает.
Другой способ заключается в последовательном соединении резисторов с линиями и измерении их аналогового напряжения. Даже если несколько кнопок закорачивают несколько строк строк / столбцов, вы можете в конечном итоге выяснить, какие кнопки были нажаты. Для этого требуются входы A / D в микро, а не только цифровые входы, как при использовании диодов.