nanoFramework.Iot.Device.RotaryEncoder.Esp32 1.0.315
已保留前缀
dotnet add package nanoFramework.Iot.Device.RotaryEncoder.Esp32 --version 1.0.315
NuGet\Install-Package nanoFramework.Iot.Device.RotaryEncoder.Esp32 -Version 1.0.315
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="nanoFramework.Iot.Device.RotaryEncoder.Esp32" Version="1.0.315" />
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件以引用包。
paket add nanoFramework.Iot.Device.RotaryEncoder.Esp32 --version 1.0.315
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以获取支持。
#r "nuget: nanoFramework.Iot.Device.RotaryEncoder.Esp32, 1.0.315"
#r 指令可用于 F# Interactive 和多语言笔记本。将此复制到交互工具或脚本的源代码中以引用包。
// Install nanoFramework.Iot.Device.RotaryEncoder.Esp32 as a Cake Addin #addin nuget:?package=nanoFramework.Iot.Device.RotaryEncoder.Esp32&version=1.0.315 // Install nanoFramework.Iot.Device.RotaryEncoder.Esp32 as a Cake Tool #tool nuget:?package=nanoFramework.Iot.Device.RotaryEncoder.Esp32&version=1.0.315
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以获取支持。
梯形旋转编码器(ESP32)
旋转编码器是一种检测角位置的工具。其中一种用途类似于 FM 收音机的音量控制,用户旋转轴,则广播的响度会改变。增量旋转编码器不提供其确切位置的信息,但提供了它们已移动的距离及方向的信息。
此版本是为 ESP32 设备特定的,因为它优点是利用了 GpioPulseCounter
类(在 nanoFramework.Hardware.Esp32
NuGet 中可用)。
板
通常,梯形旋转编码器将有两个输出 A 和 B,可能称为时钟和数据。对于每次旋转的部分,A 引脚将提供时钟信号,而 B 引脚将提供与时钟不同步的数据信号。引脚之间相位差的符号表示旋转的方向。
从上面来看,如果我们将在A引脚(clk)下降沿时刻观察B引脚(数据),如果P引脚的值为1,则方向为顺时针;如果为0,则旋转为逆时针。
用法
此示例演示了如何使用ScaledQuadradureEncoder
绑定来实现FM收音机调谐器的控制。它简单地打印调谐值到控制台,当旋转旋钮时。
此绑定实现了可缩放的差分旋转编码器作为ScaledQuadratureEncoder
。值是一个双精度数。例如,您可以将其配置为FM收音机调谐旋钮,范围为88.0到108.0,步进为0.1。
下面的代码示例显示了如何将编码器用作FM调谐器控制。
// create a RotaryEncoder that represents an FM Radio tuning dial with a range of 88 -> 108 MHz
ScaledQuadratureEncoder encoder = new ScaledQuadratureEncoder(pinA: 5, pinB: 6, PinEventTypes.Falling, pulsesPerRotation: 20, pulseIncrement: 0.1, rangeMin: 88.0, rangeMax: 108.0) { Value = 88 };
// 2 milliseconds debonce time
encoder.Debounce = TimeSpan.FromMilliseconds(2);
// Register to Value change events
encoder.ValueChanged += (o, e) =>
{
Debug.WriteLine($"Tuned to {e.Value}MHz");
};
此绑定还具备以下功能:
- 对时钟信号的消抖功能。
- 加速功能,以便旋转编码器时,旋转速度越快,移动的距离越远。
- 当值发生变化时发生事件。
此外,还有一个QuadratureRotaryEncoder
绑定,其属性代表编码器的旋转和原始脉冲。
限制
此绑定适用于手动和小量旋转,在这种情况下,如果有几个旋转丢失,不会造成很大问题。
此绑定不适用于需要极高速率和非常精确计数的电机控制。
精度确实取决于您使用的硬件,无法给出具体的适用范围。您可能需要尝试以了解它是否适用于您。
产品 | 版本 兼容和额外的计算目标框架版本。 |
---|---|
.NET框架 | net is compatible. |
-
- nanoFramework.CoreLibrary (>= 1.15.5)
- nanoFramework.Hardware.Esp32 (>= 1.6.19)
- nanoFramework.Runtime.Native (>= 1.6.12)
- nanoFramework.System.Diagnostics.Stopwatch (>= 1.2.195)
- nanoFramework.System.Math (>= 1.5.43)
- nanoFramework.System.Threading (>= 1.1.32)
NuGet包
此包未被任何NuGet包使用。
GitHub仓库
此包未被任何流行的GitHub仓库使用。