小编use*_*697的帖子

使用带有接线端子的硬件PWM控制带有树莓派的伺服

我尝试使用wiringPi库用softPwm控制伺服,但这使得伺服卡顿.因此,我想使用Raspberry Pi(GPIO18)上的硬件PWM引脚和wiringPi库.但我不明白如何将频率设置为50 Hz并将占空比更改为脉冲宽度范围为0.8 ms至2.5 ms.

我在互联网上找到了以下关系(我不知道它是否正确):

pwmFrequency in Hz = 19.2e6 Hz / pwmClock / pwmRange.
Run Code Online (Sandbox Code Playgroud)

我知道时钟除数最大值约为4000,Raspberry Pi PWM时钟的基频为19.2 MHz.所以这给了我~4,8KHz.

我已经有这些设置,应该给我~50Hz使用以下关系:

//put PWM in mark-space mode, which will give you 
//the traditional (and easily predictable) PWM    
pwmSetMode(PWM_MODE_MS);
//setting ping GPIO 18 as a pwm output
pinMode(18,PWM_OUTPUT);
//Set clock divisor to 4000
pwmSetClock(4000);
pwmSetRange (10) ;
Run Code Online (Sandbox Code Playgroud)

我没有示波器来测试输出信号以检查什么设置改变了什么.这让我很难自己找到它.

长话短说:任何人都可以告诉我如何使用Raspberry Pi上的硬件PWM控制伺服,脉冲宽度为0.8毫秒到2,1毫秒的占空比.

c raspberry-pi pwm

9
推荐指数
3
解决办法
2万
查看次数

标签 统计

c ×1

pwm ×1

raspberry-pi ×1