Поддержка внешней клавиатуры

WM2000 поддерживает как матричные, так и двоичные клавиатуры. Типичная матричная клавиатура показана на принципиальной схеме ниже:

Схема подключения типичной матричной клавиатуры.

Благодаря гибкому отображению линий сканирования и возврата, которое обеспечивает объект kp., для подключения клавиатуры можно назначить любую комбинацию линий GPIO. Можно назначить до восьми линий сканирования и восьми линий возврата. Учтите, что у WM2000 только десять линий GPIO, поэтому подключить клавиатуру 8 x 8 на самом деле нельзя. Максимальный размер матрицы - 5 x 4 (или 4 x 5).

В WM2000 все линии сканирования должны быть настроены как выходы, а все линии возврата - как входы.

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

Схема подключения клавиатуры без линий сканирования.

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

Если светодиоды подключены, как показано на схеме, их включают, устанавливая соответствующие линии управления в LOW.

Схема подключения клавиатуры, линии сканирования которой управляют светодиодами.

Двоичным клавиатурам (то есть клавиатурам, выдающим двоичные коды клавиш) сканирование не требуется: в них есть схема (обычно на микроконтроллере), которая выполняет сканирование и выдаёт закодированный двоичный код нажатых клавиш. Такие клавиатуры иногда называют «кодирующими».

Схема подключения «кодированной» клавиатуры.

WM2000 может работать с двоичными клавиатурами, у которых до восьми линий данных.

Подробнее см. документацию по объекту io. и объекту kp.

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