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                
#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                

按键矩阵

M×N 按键矩阵驱动程序。

(M 是输出引脚数,N 是输入引脚数。)

文档

这些按键矩阵看起来像这样

4x4-Keypad

这是一个 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进行连接

Connection using MCU

使用MCP23017进行连接

Connection using a MCP23017

产品 兼容的和额外的计算目标框架版本。
.NET 框架 net 兼容。
兼容的目标框架
包含的目标框架(在包中)
更多关于目标框架.NET 标准的信息。

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