Спецификация
| Что | Комментарии | |
|---|---|---|
| Идентификатор | KEY_MATRIX_4_4 | ![]() |
| Интерфейс | 8 GPIO | GPIO 1: L1 GPIO 2: L2 GPIO 3: L3 GPIO 4: L4 GPIO 5: H1 GPIO 6: H2 GPIO 7: H3 GPIO 8: H4 Lx: столбцы Hx: строки |
| Предоставляет | key1 key2 key3 key4 key5 key6 key7 key8 key9 key10 key11 key12 key13 key14 key15 key16 | 1 = клавиша нажата 0 = клавиша отпущена |
| Свойства | repeat | 1 = включить функцию повтора, 0 = отключить. При включении этот датчик вызывает обратный вызов при нажатии и удержании клавиши на клавиатурной матрице. |
| repeat delay | Когда вы нажимаете и удерживаете клавишу на клавиатурной матрице, датчик вызывает обратный вызов. Пауза между нажатием клавиши и началом повтора - это задержка повтора, выраженная в миллисекундах. Значение по умолчанию - 1500 мс. | |
| repeat rate | После нажатия и удержания клавиши на клавиатурной матрице клавиша начинает повторяться после истечения задержки повтора. Скорость повтора выражается в миллисекундах. Значение по умолчанию - 500 мс. | |
| Обратные вызовы? | yes |
Примечания
- Этот датчик требует 8 GPIO. Мы рекомендуем использовать внешний GPIO с подтяжками, такой как чип PCA9505.
- Этот датчик выполняет сканирование всей клавиатурной матрицы каждую 1 мс. Вы можете найти принцип работы в этой статье.
- Аппаратные подтяжки не требуются.
- Многие дешевые клавиатурные матрицы не включают диоды для каждой клавиши, поэтому вы можете столкнуться с проблемами призраков и маскировки, если используете эти клавиатурные матрицы.
- Вы можете использовать клавиатурные матрицы с диодами с этим датчиком.
Код
-- Подключить клавиатурную матрицу, используя чип внешнего GPIO
km = sensor.attach("KEY_MATRIX_4_4", 40, 41, 42, 43, 44, 45, 46, 47)
km:callback(
function(data)
if (data.key1 == 1) then
print("клавиша1")
end
if (data.key2 == 1) then
print("клавиша2")
end
if (data.key3 == 1) then
print("клавиша3")
end
if (data.key4 == 1) then
print("клавиша4")
end
if (data.key5 == 1) then
print("клавиша5")
end
if (data.key6 == 1) then
print("клавиша6")
end
if (data.key7 == 1) then
print("клавиша7")
end
if (data.key8 == 1) then
print("клавиша8")
end
if (data.key9 == 1) then
print("клавиша9")
end
if (data.key10 == 1) then
print("клавиша10")
end
if (data.key11 == 1) then
print("клавиша11")
end
if (data.key12 == 1) then
print("клавиша12")
end
if (data.key13 == 1) then
print("клавиша13")
end
if (data.key14 == 1) then
print("клавиша14")
end
if (data.key15 == 1) then
print("клавиша15")
end
if (data.key16 == 1) then
print("клавиша16")
end
end
)
