每个人,你好!
我最近购买了两台增量式旋转编码器。其中之一是KY-040,它在3.3v下运行:
在Python下使用它的建议代码是:
from RPi import GPIO
from time import sleep
clk = 17
dt = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(clk, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(dt, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
counter = 0
clkLastState = GPIO.input(clk)
try:
while True:
clkState = GPIO.input(clk)
dtState = GPIO.input(dt)
if clkState != clkLastState:
if dtState != clkState:
counter += 1
else:
counter -= 1
print counter
clkLastState = clkState
sleep(0.01)
finally:
GPIO.cleanup()
到目前为止,这非常有效,因为我将这些引脚用于我的Raspberry Pi的GPIO。
现在,当我有一个更强大和敏感的编码器(although wildly sold on Ebay/Amazon, it seems to have no real maker/type?):
我根本无法阅读任何内容。我可以在使用相同的代码前一天发誓并且它有效。
它们都看似增量编码器,并且都具有2相输出。到底是怎么回事?为什么我不能让它工作?
答案 0 :(得分:1)
该编码器被描述为具有集电极开路输出,这意味着您需要上拉电阻才能看到它们的高逻辑电平。您可以将GPIO引脚配置为下拉式。