nanoFramework.Iot.Device.Charlieplex 1.2.590

前缀已保留
dotnet add package nanoFramework.Iot.Device.Charlieplex --version 1.2.590                
NuGet\Install-Package nanoFramework.Iot.Device.Charlieplex -Version 1.2.590                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="nanoFramework.Iot.Device.Charlieplex" Version="1.2.590" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以引用该包。
paket add nanoFramework.Iot.Device.Charlieplex --version 1.2.590                
#r "nuget: nanoFramework.Iot.Device.Charlieplex, 1.2.590"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将此复制到交互工具或脚本的源代码中以引用包。
// Install nanoFramework.Iot.Device.Charlieplex as a Cake Addin
#addin nuget:?package=nanoFramework.Iot.Device.Charlieplex&version=1.2.590

// Install nanoFramework.Iot.Device.Charlieplex as a Cake Tool
#tool nuget:?package=nanoFramework.Iot.Device.Charlieplex&version=1.2.590                

Charlieplex 段绑定

Charliplexing 是一种多路复用方案,它允许控制比传统布线方案更多的 LED 或其他负载或传感器。Charliplexing 允许寻址最多 n^2-n 个 LED,其中 n 是可用引脚数。例如,3 个引脚可以控制多达 6 个 LED,4 个引脚可以控制 12 个,5 个引脚可以控制 20 个。这听起来很棒,然而由于复杂性,charlieplexed 电路布线困难。

一个更大的挑战是,该方案(至少在其基本形式中)一次只能点亮一个LED。乍一看,这似乎是一个大问题。不用担心。LED的变化非常快,以至于眼睛会被骗以为同时点亮了多个LED。这意味着,在LED点亮时,您的代码不能做其他事情。这就是为什么API接受定时信息。如果您习惯于直接通过GPIO引脚或使用移位寄存器来点亮LED,那么这不可能是您预期的。

显示dotnet:使用charlieplexing动画40个LED演示了如何使用此绑定。

用法

以下代码示例演示了使用3个引脚来控制6个LED。


var pins = new int[] { 6, 13, 19 };
var ledCount = 6;
var charlie = new CharlieplexSegment(pins, ledCount);

for (int i = 0; i < ledCount; i++)
{
    // will keep lit for 500ms
    charlie.Write(i, 1, 500);
    charlie.Write(i, 0);
}

charlieplex-test示例展示了API的更广泛使用。

使用LED

以下图像展示了3针Charlieplex电路,这是charlieplexing的起点。电路中有6个LED,分为两组。每组两个LED连接到相同的两个GPIO引脚,但极性相反(阳极和阴极互换了)。

charlieplex

视频

使用LED条形图表

上图展示了在Charlieplex电路中使用LED。由于可以改变LED的阳极/阴极方向,因此LED的使用很简单。由于LED条形图表的阳极和阴极腿是固定不变的,因此不能这样做。相反,您需要在面包板上创建自己的电路,然后将电路连接到相应的引脚。下面的图像展示了这一过程。

charlieplex

视频

电路寻址方案

使用的是CharlieplexSegment类型的寻址方案,可以将其视为深度优先然后是宽度优先。每对引脚之间有一对LED或其他负载。第一个LED是阳极优先放置的,第二个是阴极优先放置的。您从第一对LED的第一和第二引脚开始,然后是第二和第三个引脚用于第二对。继续这样做,直到引脚用完。之后,您从第一个引脚重新开始,但这次是将第三个引脚配对。这种模式一直持续到达到所需的LED数量或引脚用完。

理解LED的阳极(通常较长)和阴极腿之间的差异至关重要。您将在每次放置时检查这些。

绑定包括一个API,该API返回您需要使用的电路的描述。示例代码调用此API并将这些信息打印到终端,使用与上面的代码示例相同的引脚。这些信息对于正确配置电路非常有帮助。

Node 0 -- Anode: 6; Cathode: 13
Node 1 -- Anode: 13; Cathode: 6
Node 2 -- Anode: 13; Cathode: 19
Node 3 -- Anode: 19; Cathode: 13
Node 4 -- Anode: 6; Cathode: 19
Node 5 -- Anode: 19; Cathode: 6

CharlieplexLayout.cs中的测试调用此API并通过不同数量的引脚演示了电路地址方案。

给定一个包含6个LED的电路,charlie.Write(5,1)将点亮图中的LED6。API使用0基于的方案。因此,charlie.Write(6,1)将抛出异常。

Two LED charlieplex circuit

此图像展示了2针电路。除了作为学习练习外,没有理由使用2针的Charlieplex电路。

Three LED charlieplex circuit

此图像展示了3针电路。

Six LED charliplex circuit

此图像展示了6针电路。

使用Charlieplexing从5个Arduino引脚控制20个LED包括更大的布线图,与绑定使用的方案相匹配。

替代方案

Charlieplex电路的替代方案是移位寄存器。参见SN74HC595 -- 8位移位寄存器。移位寄存器比Charlieplex电路更有效地利用引脚,并且更容易配置。

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

NuGet包

此包不被任何NuGet包使用。

GitHub仓库

此包不支持任何流行的GitHub仓库。

版本 下载 最后更新
1.2.590 64 7/17/2024
1.2.570 87 6/14/2024
1.2.560 90 5/29/2024
1.2.552 87 5/17/2024
1.2.548 90 5/15/2024
1.2.536 90 4/15/2024
1.2.514 108 3/22/2024
1.2.436 198 11/10/2023
1.2.416 79 11/8/2023
1.2.329 129 5/26/2023
1.2.313 112 5/12/2023
1.2.308 119 5/11/2023
1.2.302 128 5/10/2023
1.2.297 136 5/3/2023
1.2.273 195 3/17/2023
1.2.212 288 1/5/2023
1.2.208 287 1/3/2023
1.2.203 283 12/28/2022
1.2.159 332 11/14/2022
1.2.153 350 11/5/2022
1.2.141 357 10/25/2022
1.2.128 353 10/22/2022
1.2.122 404 10/12/2022
1.2.114 360 10/8/2022
1.2.95 411 9/22/2022
1.2.87 459 9/15/2022
1.2.73 389 9/8/2022
1.1.116.8772 414 6/24/2022
1.1.113.2032 433 6/23/2022
1.1.3 472 4/15/2022
1.1.1 416 4/14/2022
1.0.300 431 3/31/2022
1.0.288-preview.114 119 3/25/2022
1.0.288-preview.113 111 3/25/2022
1.0.288-preview.100 119 3/19/2022
1.0.288-preview.99 114 3/18/2022
1.0.288-preview.98 109 3/18/2022
1.0.288-preview.94 120 3/15/2022
1.0.288-preview.93 114 3/15/2022
1.0.288-preview.90 106 3/11/2022
1.0.288-preview.87 111 3/10/2022
1.0.288-preview.86 123 3/8/2022
1.0.288-preview.65 111 2/18/2022
1.0.288-preview.48 137 2/4/2022
1.0.288-preview.41 139 1/31/2022
1.0.288-preview.29 129 1/28/2022
1.0.288-preview.20 132 1/27/2022
1.0.288-preview.19 132 1/27/2022
1.0.288-preview.5 134 1/24/2022
1.0.288-preview.3 119 1/21/2022
1.0.288-preview.1 129 1/21/2022
1.0.272 160 1/10/2022
1.0.259 298 12/9/2021
1.0.218 195 10/18/2021
1.0.195 317 10/1/2021
1.0.136 229 7/17/2021
1.0.135 158 7/16/2021
1.0.134 173 7/15/2021
1.0.133 184 7/14/2021
1.0.131 165 7/8/2021
1.0.121 213 6/29/2021
1.0.120 185 6/29/2021
1.0.119 228 6/28/2021
1.0.118 200 6/20/2021
1.0.112 195 6/16/2021
1.0.110 232 6/9/2021
1.0.109 164 6/8/2021
1.0.106 193 6/1/2021
1.0.104 261 5/29/2021
1.0.63 167 5/26/2021
1.0.40 181 5/24/2021