Подключение матричных клавиатур

В матричном режиме (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. запоминает состояние каждой линии сканирования и восстанавливает его после завершения «прохода» сканирования. Сканирование происходит так быстро, что глаз не заметит мерцания светодиодов.

Исходный материал Tibbo обновлён 2 августа 2022Оригинал на docs.tibbo.com · Сообщить об ошибке