Як це може працювати без мультиплексора?
Це не так. Здається, що на клавіатурі є просто комутатори, можливо, деякі діоди ми не бачимо. Однак на лівій дошці схоже, що на ній є процесор. Майже напевно, мультиплексування проводиться в прошивці.
Алгоритм мультиплексування працює приблизно так:
- Проїжджайте один ряд високо, інші низько.
- Увімкнути пасивні витягування на рядках стовпців.
- Подивіться, які рядки стовпців високі. Натискаються кнопки на перетинах цих ліній стовпців з однією ствердженою лінією рядків. Інші кнопки в цьому рядку відпущені.
- Повторіть назад до першого кроку, послідовно затверджуючи наступний рядок.
Вищеописаний процес повторюється досить швидко, щоб всі кнопки перевірялися протягом часу, який все ще відчуває себе миттєвим для людини-спостерігача. Межа людини "миттєвого" в цьому контексті становить близько 50 мс. Навіть мікроконтролер низького рівня може сканувати клавіатуру 4x4 за набагато менше часу, ніж це.
Чи може це виявити точно натискання декількох кнопок?
Напевно, так. Один із способів - поставити діод послідовно з кожною кнопкою. Вони можуть бути в нижній частині дошки, яку ви показуєте. З діодами алгоритм, описаний вище, просто працює.
Інший спосіб - це встановлення послідовно резисторів з лініями та вимірювання їх аналогової напруги. Навіть за допомогою декількох кнопок, що скорочують кілька рядків рядків / стовпців разом, ви можете з часом визначити, які кнопки натиснуті. Для цього потрібні введення вводу / виводу в мікро, а не лише цифрові входи, як при використанні діодів.