单片机/MCU论坛
直播中

张鹏

7年用户 1166经验值
私信 关注
[问答]

舵机的控制信号可以用定时器产生吗?

舵机的控制信号可以用定时器产生吗,pwm不够用,需要8路pwm,能用一个定时器加8个io的方式模拟8个pwm吗               

回帖(1)

李皓圳

2023-10-28 15:30:15
当然可以的。你之所以有这样的疑问,是你对剁鸡信号了解不够深入造成的。
其实它是这样实现的:
首先,由定时器产生50Hz(或其它频率信号)用于发送PWM信号的周期,即,50Hz的信号下,所有通道的信号,每秒发50轮。
触发后,先从第一个通道开始,例如第一个通道在中位,1500us,就算非要用定时器,可以用另一个定时器来产生1500us的宽度即可,注意不需要重载,一次性的减计数即可,因为这一个通道发送完以后,下个通道的脉宽并不相同。实际上用简单的延时也可以完成这个操作的。这个过程就是,CH1变高,延时1500us,然后再把CH1变低。
接下来,并不需要做特别的处理,就可以按CH1的方法来发送CH2,然后依次发到CH8。重点就在这里,CH1-8并不是同时发送的。因为它们有独立的端口,所以对它们自己来说,都是在以50Hz的频率收到指定的脉冲信号,但是整体上来说是轮流的,而不是同时的。
当8个通道都发送完成后,发送过程就结束了,再次等待50Hz定时器触发。
在这里特别说一下:不用担心1/50秒内完不成8个通道的发送!!!
因为,每个通道都是1-2ms宽的脉冲,且之间可以无间隔(只有PPM因为在同一条线上发送才需要有间隔),8个通道即使都是最大的2ms一共也才16ms,而1/50秒有20ms,还富余4ms,只要不做10个以上的通道,50Hz肯定是能轮过来的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分