2014-12-04 66 views
-1

我有一個腳本訪問LED控制和電機控制的GPIO引腳組。 電機控制的一個方面包含在一個線程類中,另一個方面是一個單獨的功能,它也訪問相同的GPIO引腳。 我是否需要將所有電機控制器都拉入同一班級,還是可以在兩個地方訪問它們?訪問類內外的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

我不禁覺得下面的代碼:

GPIO_PWM1=14 
GPIO_PWM2=15 
GPIO_SW1=11 

將作爲常量在你的整個程序的頂部更好,在這一點,你可以在他們從任何地方只需調用在輸出給他們的程序中,然後這個問題就不復存在了。

+0

有時需要有人指出出血明顯 – Nowski 2014-12-04 15:14:27