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

梯形旋转编码器(ESP32)

旋转编码器是一种检测角位置的工具。其中一种用途类似于 FM 收音机的音量控制,用户旋转轴,则广播的响度会改变。增量旋转编码器不提供其确切位置的信息,但提供了它们已移动的距离及方向的信息。

此版本是为 ESP32 设备特定的,因为它优点是利用了 GpioPulseCounter 类(在 nanoFramework.Hardware.Esp32 NuGet 中可用)。

image of rotary encoder

通常,梯形旋转编码器将有两个输出 A 和 B,可能称为时钟和数据。对于每次旋转的部分,A 引脚将提供时钟信号,而 B 引脚将提供与时钟不同步的数据信号。引脚之间相位差的符号表示旋转的方向。

encoder

从上面来看,如果我们将在A引脚(clk)下降沿时刻观察B引脚(数据),如果P引脚的值为1,则方向为顺时针;如果为0,则旋转为逆时针。

用法

此示例演示了如何使用ScaledQuadradureEncoder绑定来实现FM收音机调谐器的控制。它简单地打印调谐值到控制台,当旋转旋钮时。

rotary example

此绑定实现了可缩放的差分旋转编码器作为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. 
兼容的目标框架
包含的目标框架(在包中)
了解更多关于目标框架.NET Standard

NuGet包

此包未被任何NuGet包使用。

GitHub仓库

此包未被任何流行的GitHub仓库使用。

版本 下载 最后更新
1.0.315 60 7/24/2024
1.0.290 95 6/14/2024
1.0.268 70 5/15/2024
1.0.156 135 11/10/2023
1.0.150 109 11/10/2023
1.0.104 124 9/6/2023
1.0.49 125 5/26/2023
1.0.33 115 5/12/2023
1.0.17 128 5/3/2023
1.0.1 168 3/30/2023