Подключение матричных клавиатур
В матричном режиме (kp.mode = 0 - PL_KP_MODE_MATRIX) объект kp. работает с «матричными» клавиатурами, образованными линиями сканирования и возврата. Объект kp. поддерживает до восьми линий сканирования и восьми линий возврата, то есть можно построить клавиатуру до 64 клавиш. Ниже показана типовая схема такой клавиатуры.
В процессе сканирования объект kp. по очереди «активирует» линии сканирования. Линия активируется установкой в LOW, при этом все остальные линии сканирования остаются в HIGH. Для каждой линии сканирования объект kp. опрашивает состояние линий возврата. Если какая-либо линия возврата находится в LOW, значит, нажата клавиша на пересечении этой линии возврата и активной в данный момент линии сканирования.
Подробное обсуждение схем матричных клавиатур выходит за рамки этого руководства. Отмечу лишь мимоходом, что диоды D1-D4 необходимы, и их нельзя исключать. Для лучших результатов используйте диоды Шоттки - у них малое падение напряжения. Подтягивающие резисторы к питанию R1-R4 не дают линиям возврата «повисать в воздухе», поэтому они тоже обязательны.

Для построения клавиатуры нужна хотя бы одна линия возврата. А вот разумное число линий сканирования начинается с двух! Одна линия сканирования равносильна их отсутствию - её можно просто заземлить (то есть всегда держать активной):

На платформах с управлением выходными буферами все предназначенные для сканирования линии нужно настроить как выходы, а все линии возврата - как входы (см. io.num, io.enabled).
Линии сканирования могут дополнительно выполнять вторую функцию - управлять светодиодами. К каждой линии сканирования можно подключить один такой светодиод, желательно через буфер, как показано на схеме ниже. Эти светодиоды можно использовать для любых целей, причём совершенно не связанных с самой клавиатурой.
Если светодиоды подключены, как показано на схеме, для их включения нужно устанавливать соответствующие линии управления в LOW (используйте для этого io.lineset).

Каждый раз, когда объект kp. собирается сканировать клавиатуру на предмет нажатых клавиш (это происходит каждые 10 мс), он сначала устанавливает все линии сканирования в HIGH. Это необходимо для процесса сканирования. Перед этим объект kp. запоминает состояние каждой линии сканирования и восстанавливает его после завершения «прохода» сканирования. Сканирование происходит так быстро, что глаз не заметит мерцания светодиодов.