这样的程序一旦定义舵机,舵机就会直接到一端的极点不动了,为啥
-
这样的缩进不对吗,我要怎么改呢?感谢感谢~
-
代码一定要让别人可以运行的文本,不要贴图片
-
刚才说是新用户,两分钟才能发,发慢了
from pyb import Pin
import time
import car
from pyb import Servo
s3 = Servo(3) # P8
p_in1 = Pin('P4', Pin.IN, Pin.PULL_UP)#设置p_in为输入引脚,并开启上拉电阻
p_in2 = Pin('P5', Pin.IN, Pin.PULL_UP)#设置p_in为输入引脚,并开启上拉电阻while(True):
value1 = p_in1.value() # get value, 0 or 1#读入p_in引脚的值
value2 = p_in2.value() # get value, 0 or 1#读入p_in引脚的值if value2==0:
car.run(10,10)
time.sleep(100)
else:
s3.angle(80)
time.sleep(10)
-
必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
你重新编辑一下代码。
-
好,缩进、逻辑没什么问题吧,那我重新打一次代码
-
还是不行啊
from pyb import Pin
import time,car
from pyb import Servo
s3 = Servo(3)
p_in1 = Pin('P4',Pin.IN,Pin.PULL_UP)
p_in2 = Pin('P5',Pin.IN, Pin.PULL_UP)while(True):
value1 = p_in1.value()
value2 = p_in2.value()if value2==0:
car.run(10,10)
time.sleep(100)
else:
s3.angle(80)
time.sleep(10)
-
什么叫做不行,说具体现象
-
还是和刚才的现象一样,舵机直接转到最右端,然后就无法控制了
-
from pyb import Pin import time import car from pyb import Servo p_in1 = Pin('P4',Pin.IN,Pin.PULL_UP) p_in2 = Pin('P5',Pin.IN, Pin.PULL_UP) s3 = Servo(3) # P8 while True: s3.angle(-90) time.sleep(1000) s3.angle(90) time.sleep(1000)
你只运行这个代码,有没有问题?
-
有,和我刚才的现象一样
-
这为啥啊?太郁闷了……
-
@kidswong999 有能解决的方法嘛?抱拳/
-
我知道了,因为car.py里面驱动P7P8的pwm需要定时器4。
所以P9作为Servo也需要定时器4,就不能用了,冲突了。
-
那有什么解决方法吗?不可以同时控制一个舵机和两个电机吗?
-
不能,舵机的周期是50HZ的,这个周期驱动电机有点慢。
-
可以用其他Pin脚控制舵机吗?要怎样才可以同时控制两个电机和一个舵机呢?
-
再加一个舵机扩展板就解决了。
-
@kidswong999 现在已经来不及买了,没有其他方法了嘛~控制舵机可以不用时间,让以最快速度转到指定角度就好~