因此,我正在使用Raspberry Pi做一个小项目,其中涉及到移动伺服电机。在Python 3的以下代码中,我首先以大约45度启动伺服。在代码的后面,将根据先前的角度确定不同的角度,并更改占空比。

def main():
    #Import functions
    import measure, move
    import time
    import RPi.GPIO as GPIO
    #Declare Variables
    Servo_pin = 35
    angle = 45
    freq = 50
    #Setup board
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(Servo_pin, GPIO.OUT)
    servo = GPIO.PWM(Servo_pin,freq)
    #Determine Duty Cycle
    dc = 1/18 * (angle) + 2
    print("Starting Duty Cycle: ",dc)
    #Start servo
    servo.start(dc)

    i = 1
    #Determine angle based on previous angle
    while True:
        if (i == 0):
            angle = 45
        elif (i == 1):
            angle = 90
        elif (i == 2):
            angle = 180
        elif (i > 2):
            angle = 45
            i = 0
        i = i+1
        #Change servo's position
        #Convert angle to Duty Cycle
        dc = 1/18 * (angle) + 2
        print("Setting Duty Cycle: ",dc)
        #Change position
        servo.ChangeDutyCycle(dc)
        #Give servo time to finish moving
        time.sleep(0.3)
main()


我已将伺服器连接到电池组(4节AA电池),但是伺服器不会随该代码一起移动。现在,我承认我是一个初学者,这可能真的很简单,如果是这种情况,我事先表示歉意。

任何帮助表示赞赏!

最佳答案

必须有一个共同点。我当时使用的是两个单独的面包板,但没有连接公共地线。一旦连接到公共接地,伺服就开始按照我的意愿运行。

感谢您的编码帮助!

关于python - Raspberry Pi Python代码不会移动伺服,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39651222/

10-16 22:21