我有一个脚本可以访问多组GPIO引脚,用于LED控制和电机控制。 电机控制的一个方面包含在用于线程的类中,另一个方面是一个单独的函数,它也访问相同的GPIO引脚。 我是否需要将所有电机控制器拉入同一级别,或者我可以从两个位置访问它们吗?
def MotorControl(direction,fspeed,bspeed):
print "Controlling them pins"
if direction == "fwd":
bck.ChangeDutyCycle(0)
fwd.ChangeDutyCycle(fspeed)
print "forward at" + str(fspeed) + "%"
return
if direction == "bwd":
bck.ChangeDutyCycle(bspeed)
fwd.ChangeDutyCycle(0)
print "back at" + str(bspeed) + "%"
return
class sliderControl(threading.Thread):
GPIO.setmode(GPIO.BCM)
GPIO_PWM1=14
GPIO_PWM2=15
GPIO_SW1=11
GPIO.setup(GPIO_PWM1,GPIO.OUT)
fwd = GPIO.PWM(GPIO_PWM1, 250)
fwd.start(0)
GPIO.setup(GPIO_PWM2,GPIO.OUT)
bck = GPIO.PWM(GPIO_PWM2, 250)
bck.start(0)
#Setup input for switch monitoring
GPIO.setup(GPIO_SW1, GPIO.IN, pull_up_down=GPIO.PUD_UP)
def __init__(self,stop_event):
super(sliderControl,self).__init__()
self.stop_event = stop_event
GPIO.cleanup()
def run(self):
while self.stop_event:
print 'forward loop'
bck.ChangeDutyCycle(10)
fwd.ChangeDutyCycle(0)
time.sleep(5)
print 'backwards loop'
bck.ChangeDutyCycle(0)
fwd.ChangeDutyCycle(20)
time.sleep(5)
答案 0 :(得分:0)
我不禁感到以下代码:
GPIO_PWM1=14
GPIO_PWM2=15
GPIO_SW1=11
会更好地作为整个程序顶部的常量,此时你可以从程序的任何地方调用它们输出到它们,然后整个问题就不复存在了。