如何同时控制电机和舵机
-
电机使用教程的代码,pwm信号。如何定义P9作为舵机的引脚呢,或者说怎么样跟换定时器。换了定时器之后还是pwm吗,望解答
-
@6bax 在 如何同时控制电机和舵机 中说:
电机使用教程的代码,pwm信号。如何定义P9作为舵机的引脚呢,或者说怎么样跟换定时器。换了定时器之后还是pwm吗,望解答
P7、P8控制电机,P9控制舵机,定时器具体怎么改呢
-
P7,P8,P9使用的PWM定时器是同一个,所以多次初始化后,上一个会失效。
方案1:
如果想简单解决的话,你直接用舵机扩展板。
方案2:
如果非要用的话,不要用Motor类, 和Servo类。只用PWM定时器,从头写代码。
https://book.openmv.cc/example/02-Board-Control/pwm-control.html
舵机的频率是50HZ,所以电机也必须用50HZ。
注:OpenMV3,OpenMV4可以这样操作,OpenMV4 Plus不行,因为OpenMV4 Plus的P9不是PWM引脚。
-
@kidswong999 tim = Timer(4, freq=xx),那我在使用电机的时候freq初始化为1000,使用舵机的时候freq初始化为50这样可以吗
-
@kidswong999 在 如何同时控制电机和舵机 中说:
P7,P8,P9使用的PWM定时器是同一个,所以多次初始化后,上一个会失效。
方案1:
如果想简单解决的话,你直接用舵机扩展板。
方案2:
如果非要用的话,不要用Motor类, 和Servo类。只用PWM定时器,从头写代码。
https://book.openmv.cc/example/02-Board-Control/pwm-control.html
舵机的频率是50HZ,所以电机也必须用50HZ。
注:OpenMV3,OpenMV4可以这样操作,OpenMV4 Plus不行,因为OpenMV4 Plus的P9不是PWM引脚。
就是想要用openmv驱动2个直流电机和1个舵机,将p7和p8作为电机的pwm输出,通过使用Servo将p9作为舵机的信号输出,就是s = pyb.Servo(3) ,没有在p7和p8引脚创建舵机对象,文档中说servo类是使用定时器5来输出pwm的,而car类是使用定时器4的,但是为什么不行呢。
-
此回复已被删除!
-
import car import pyb, time from pyb import Pin,Timer pwmc = Pin('P9') tim = Timer(4,freq=50) ch = tim.channel(3, Timer.PWM, pin = pwmc) while(True): ch.pulse_width_percent(3) time.sleep_ms(10)
通过更改ch.pulse_width_percent(3)脉宽来实现控制
-
@6bax 舵机准确来说是通过脉宽长度来控制,而不是占空比。
脉宽长度和角度的对应关系可以在舵机的说明书参数里找到。
https://singtown.com/product/536/st90s/
建议你更改代码:pulse_width_percent(脉宽占空比)到pulse_width(脉宽长度)