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)脉宽来实现控制
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)脉宽来实现控制
@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的,但是为什么不行呢。
@kidswong999 tim = Timer(4, freq=xx),那我在使用电机的时候freq初始化为1000,使用舵机的时候freq初始化为50这样可以吗
@6bax 在 如何同时控制电机和舵机 中说:
电机使用教程的代码,pwm信号。如何定义P9作为舵机的引脚呢,或者说怎么样跟换定时器。换了定时器之后还是pwm吗,望解答
P7、P8控制电机,P9控制舵机,定时器具体怎么改呢