Python 如何用树莓控制Arduino的伺服电机

Python 如何用树莓控制Arduino的伺服电机,python,raspberry-pi,Python,Raspberry Pi,目前我使用的是一个伺服电机和两个电机。我的目标是,如果我执行脚本,它应该首先启动电机,然后将伺服电机旋转30度,等待3秒,在初始启动时旋转伺服电机,10秒后电机应该停止。 然而,我的电机启动时没有任何问题,但伺服电机试图使180° 两个电机同时停止 在这里您可以看到我的代码: #/usr/bin/env python #进口 从时间上导入睡眠 将RPi.GPIO导入为GPIO 从picamera进口picamera #变数 in1=17 in2=27 in3=23 in4=24 enA=22 e

目前我使用的是一个伺服电机和两个电机。我的目标是,如果我执行脚本,它应该首先启动电机,然后将伺服电机旋转30度,等待3秒,在初始启动时旋转伺服电机,10秒后电机应该停止。 然而,我的电机启动时没有任何问题,但伺服电机试图使180° 两个电机同时停止 在这里您可以看到我的代码:

#/usr/bin/env python
#进口
从时间上导入睡眠
将RPi.GPIO导入为GPIO
从picamera进口picamera
#变数
in1=17
in2=27
in3=23
in4=24
enA=22
enB=25
spd=15
伺服电机=5
#设置
GPIO.setmode(GPIO.BCM)
GPIO.setup(in1,GPIO.OUT)
GPIO.setup(in2,GPIO.OUT)
GPIO.setup(输入3,输出GPIO.OUT)
GPIO.setup(输入4,输出GPIO.OUT)
GPIO.setup(enA,GPIO.OUT)
GPIO.setup(enB,GPIO.OUT)
GPIO.setup(伺服电机,GPIO.OUT)
GPIO.setup(in1,GPIO.LOW)
GPIO.setup(in2,GPIO.LOW)
GPIO.setup(输入3,GPIO.LOW)
GPIO.setup(输入4,GPIO.LOW)
#变数
a=GPIO.PWM(enA,1000)
b=GPIO.PWM(enB,1000)
#50Hz脉宽调制
servoP=GPIO.PWM(伺服电机,50)
#开始
a、 启动(spd)
b、 启动(spd)
伺服启动(0)
#代码
GPIO.output(in1,GPIO.LOW)
GPIO.输出(in2,GPIO.高)
GPIO.output(输入3,GPIO.HIGH)
GPIO.output(in4,GPIO.LOW)
睡眠(10)
GPIO.output(in1,GPIO.LOW)
GPIO.output(in2,GPIO.LOW)
GPIO.output(in3,GPIO.LOW)
GPIO.output(in4,GPIO.LOW)
伺服更换周期(15)
睡眠(3)
伺服更换周期(7.5)
伺服停止
听起来您可能有一个连续旋转(CR)伺服。即使你没有,所有伺服都有不同的PWN范围,所以你使用的伺服是一个细节,我需要给你一个更好的答案(很抱歉在回答中要求澄清,但我不能评论)

尝试将占空比设置为最小3,最大11。这似乎是一个更好的范围为伺服您正在使用。根据电机,您能告诉我它们连接到什么引脚吗?

听起来您可能有一个连续旋转(CR)伺服。即使你没有,所有伺服都有不同的PWN范围,所以你使用的伺服是一个细节,我需要给你一个更好的答案(很抱歉在回答中要求澄清,但我不能评论)


尝试将占空比设置为最小3,最大11。这似乎是一个更好的范围为伺服您正在使用。根据电机,您能告诉我它们连接的引脚是什么吗?

也许在@Marged上更好,或者在@Marged上更好,或者我想我应该有一个TowerPro MicroServo 99SG90@DizzySailor检查您的变速箱是否被拆卸或改装,因为我能找到的所有来源都说TowerPro MicroServo 99 SG90是180度伺服,而不是CR伺服。从趣闻轶事上讲,那个伺服上的变速箱很容易出故障。对不起,我再次控制了我的伺服,它只能做180°,而不是360度。我想我应该买一台TowerPro MicroServo 99SG90@DizzySailor检查您的变速箱是否被拆卸或改装,因为我能找到的所有来源都说TowerPro MicroServo 99 SG90是180度伺服,而不是CR伺服。从轶事上讲,那个伺服上的变速箱很容易出故障。对不起,我再次控制了我的伺服,它只做180°,而不是360°。