nanoFramework.Iot.Device.KeyMatrix 1.2.570
前缀已保留
dotnet add package nanoFramework.Iot.Device.KeyMatrix --version 1.2.570
NuGet\Install-Package nanoFramework.Iot.Device.KeyMatrix -Version 1.2.570
该命令旨在与 Visual Studio 中的包管理器控制台一起使用,因为它使用 NuGet 模块版本的 Install-Package。
<PackageReference Include="nanoFramework.Iot.Device.KeyMatrix" Version="1.2.570" />
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件中以便引用该包。
paket add nanoFramework.Iot.Device.KeyMatrix --version 1.2.570
NuGet 团队不提供对该客户端的支持。请联系其 维护者 以获取支持。
#r "nuget: nanoFramework.Iot.Device.KeyMatrix, 1.2.570"
#r 指令可以在 F# Interactive 和 Polyglot Notebooks 中使用。将此内容复制到交互工具或脚本的源代码中以便引用该包。
// Install nanoFramework.Iot.Device.KeyMatrix as a Cake Addin #addin nuget:?package=nanoFramework.Iot.Device.KeyMatrix&version=1.2.570 // Install nanoFramework.Iot.Device.KeyMatrix as a Cake Tool #tool nuget:?package=nanoFramework.Iot.Device.KeyMatrix&version=1.2.570
NuGet 团队不提供对该客户端的支持。请联系其 维护者 以获取支持。
按键矩阵
M×N 按键矩阵驱动程序。
(M 是输出引脚数,N 是输入引脚数。)
文档
这些按键矩阵看起来像这样
这是一个 4x4 矩阵。 这里是原理图
理论上,您可以通过使用 M+N 个 GPIO 引脚来连接任何 MxN 按键矩阵。
您还可以使用任何兼容的 GPIO 控制器,如 Mcp23xxx,而不是原生控制器。
用法
您需要创建两个整数列表,一个用于输入,一个用于输出。
int[] outputs = new int[] { 26, 19, 13, 6 };
int[] inputs = new int[] { 21, 20, 16, 12 };
KeyMatrix mk = new KeyMatrix(outputs, inputs, TimeSpan.FromMilliseconds(20));
您还可以在以下示例中使用任何 GpioController,例如 MCP23017
var settings = new System.Device.I2c.I2cConnectionSettings(1, 0x20);
var i2cDevice = System.Device.I2c.I2cDevice.Create(settings);
var mcp23017 = new Iot.Device.Mcp23xxx.Mcp23017(i2cDevice);
GpioController gpio = new GpioController(PinNumberingScheme.Logical, mcp23017);
int[] outputs = new int[] { 26, 19, 13, 6 };
int[] inputs = new int[] { 21, 20, 16, 12 };
KeyMatrix mk = new KeyMatrix(outputs, inputs, TimeSpan.FromMilliseconds(20), gpio, true);
读取按键
要读取按键,只需使用 ReadKey
函数
KeyMatrixEvent? key = mk.ReadKey();
KeyMatrixEvent 包含发生的事件。请注意,读取按键在被检测到事件之前是阻塞的。
基于事件的途径
KeyMatrix
支持“事件”。只需订阅事件并有一个处理事件的功能。
Debug.WriteLine("This will now start listening to events and display them for 60 seconds.");
mk.KeyEvent += KeyMatrixEventReceived;
mk.StartListeningKeyEvent();
Thread.Sleep(60000);
mk.StopListeningKeyEvent();
void KeyMatrixEventReceived(object sender, KeyMatrixEvent keyMatrixEvent)
{
// Do something here, you have an event!
}
技巧和技巧
- 对于每个按钮使用二极管(例如 1N4148)可防止“鬼影”或“掩盖”问题。
- 如果您的微控制器(MCU)没有自带下拉电阻,输入引针需要接地连接收集电阻。例如,您需要在MCU上添加下拉电阻。
- 如果您的键盘矩阵工作不正常,请尝试交换输出和输入引脚。一些包含了二极管,如果用反方向使用将无法正常工作。
键盘矩阵样本
此图显示了如何连接矩阵。
重要:请务必在输入矩阵上放置下拉电阻。
使用板载GPIO进行连接
使用MCP23017进行连接
-
- nanoFramework.CoreLibrary (>= 1.15.5)
- nanoFramework.Runtime.Events (>= 1.11.18)
- nanoFramework.System.Device.Gpio (>= 1.1.41)
NuGet 包
此程序包没有被任何NuGet包使用。
GitHub 仓库
此程序包没有被任何流行的GitHub仓库使用。
版本 | 下载 | 最后更新 |
---|---|---|
1.2.570 | 84 | 6/14/2024 |
1.2.560 | 87 | 5/29/2024 |
1.2.548 | 80 | 5/15/2024 |
1.2.436 | 216 | 11/10/2023 |
1.2.329 | 156 | 5/26/2023 |
1.2.313 | 129 | 5/12/2023 |
1.2.297 | 139 | 5/3/2023 |
1.2.203 | 306 | 12/28/2022 |
1.2.141 | 385 | 10/25/2022 |
1.2.122 | 422 | 10/12/2022 |
1.2.114 | 363 | 10/8/2022 |
1.2.95 | 393 | 9/22/2022 |
1.2.87 | 442 | 9/15/2022 |
1.2.73 | 380 | 9/8/2022 |
1.1.113.2032 | 387 | 6/23/2022 |
1.1.58.10097 | 414 | 5/23/2022 |
1.1.1 | 431 | 4/14/2022 |
1.0.300 | 397 | 3/31/2022 |
1.0.277-preview.125 | 119 | 3/25/2022 |
1.0.277-preview.110 | 110 | 3/18/2022 |
1.0.277-preview.105 | 118 | 3/15/2022 |
1.0.277-preview.98 | 121 | 3/8/2022 |
1.0.277-preview.77 | 114 | 2/18/2022 |
1.0.277-preview.41 | 126 | 1/28/2022 |
1.0.277-preview.32 | 132 | 1/27/2022 |
1.0.277-preview.17 | 127 | 1/24/2022 |
1.0.277-preview.15 | 116 | 1/21/2022 |
1.0.277-preview.13 | 125 | 1/21/2022 |
1.0.277-preview.1 | 126 | 1/11/2022 |
1.0.259 | 295 | 12/9/2021 |
1.0.218 | 191 | 10/18/2021 |
1.0.155 | 280 | 8/31/2021 |
1.0.135 | 274 | 7/16/2021 |
1.0.134 | 167 | 7/15/2021 |
1.0.133 | 186 | 7/14/2021 |
1.0.129 | 156 | 7/6/2021 |
1.0.125 | 183 | 7/5/2021 |
1.0.121 | 200 | 6/29/2021 |
1.0.119 | 219 | 6/28/2021 |
1.0.33 | 160 | 5/24/2021 |