主要内容

控制旋转编码器旋钮

这个例子展示了如何使用MATLAB®Arduino®硬件支持包来控制带有内置按钮的1金宝app2步旋转编码器。

硬件需求

  • Arduino Uno董事会

  • SparkFun®12步旋转编码器,内置按钮

硬件设置

将旋转编码器连接到Arduino硬件:

  • 将编码器的公共引脚C连接到Arduino硬件的GND引脚。

  • 将编码器的输出A和B连接到Arduino硬件上的数字引脚2和3。

  • 将编码器的接地脚连接到Arduino硬件上的GND脚。

  • 将编码器上的按钮引脚连接到Arduino硬件上的数字引脚4。

注意:如果您使用的是与Uno不同的Arduino板,而不是使用数字引脚2和3,请使用板上的任意两个中断引脚。看到Arduino中断有关可用中断引脚的更多信息。

创建旋转编码器对象

创建一个arduino对象,并包括“RotaryEncoder”图书馆。

一个= arduino (“COM4为”“Uno”“库”“RotaryEncoder”
更新Uno (COM4)上的服务器代码。这可能需要几分钟。
a = arduino with properties: Port: 'COM4' Board: 'Uno' AvailablePins: {'D2-D13', 'A0-A5'} AvailableDigitalPins: {'D2-D13', 'A0-A5'} AvailablePWMPins: {'D3', 'D5-D6', 'D9-D11'} AvailableAnalogPins: {'A0-A5'} AvailableI2CBusIDs: [0] Libraries:{'旋转编码器'}

为旋钮创建旋转编码器对象,指定连接的输出通道A和通道B。

channelA =“D2”;channelB =“D3”;编码器= rotaryEncoder (a channelA channelB)
encoder = RotaryEncoder with properties: ChannelA: 'D2' ChannelB: 'D3' PulsesPerRevolution: []

读旋钮的位置

旋转编码器每转有12个点击位置。每次点击增加或减少4个计数,取决于它的旋转方向。因此,旋钮位置可以用0到44之间的整数表示。

将旋钮旋到起始位置,并将计数重置为0。

resetCount(编码器);

增加了当按下按钮时显示编码器位置的逻辑。如果未按下,按钮引脚返回1。否则,返回0。

按钮=“D4”;configurePin(按钮,“引体向上”);(~readDigitalPin(a,pushbutton)) count = readCount(encoder);pos = mod(计数,48);流('当前旋钮位置:%d\n'、pos);暂停(1);结束
当前旋钮位置:0当前旋钮位置:42当前旋钮位置:24当前旋钮位置:22当前旋钮位置:4

清理

当不再需要连接时,清除旋转编码器和arduino对象。

清晰的编码器一个