我尝试使用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毫秒的占空比.