在使用RPi.GPIO 库里的PWM功能时候,出现了一个问题,电机的啸叫声特别明显,低频(200以下)也是,高频(20K)更是,后来用示波器检测它的输出端,发现将占空比设置为0的时候,它还是会产生一个PWM信号。电机正反转时候,转速断断续续。

    后来,查到了一个比较靠谱的库 pigpio, 可以用pip下载。这个库的PWM非常稳定。用示波器检测,比较平稳。

    将一端口设置成PWM,四步走:

    1. 生成一个 pi()实例
    2. 设置端口模式 set_mode()
    3. 设置端口PWM的频率 set_PWM_frequency()
    4. 设置PWM占空比的范围 set_PWM_range()

    修改端口的占空比

    set_PWM_dutycycle()

    1. pi.set_mode(17,pigpio.OUTPUT) pi.set_PWM_frequency(17,127) pi.set_mode(27,pigpio.OUTPUT) pi.set_PWM_frequency(27,127) pi.set_PWM_dutycycle(17,pwm) pi.set_PWM_dutycycle(27, 0) pi.set_PWM_dutycycle(17,0) pi.set_PWM_dutycycle(27, pwm) flag = int(input("请输入前/后/停(1,0,其它):")) pwm = int(input("请输入占空比:")) pwm = int(input("请输入占空比:"))if __name__ == '__main__':

    树莓派:直流电机正反转(pigpio)_Python_weixin_38956024的博客-CSDN博客 - 图1 树莓派:直流电机正反转(pigpio)_Python_weixin_38956024的博客-CSDN博客 - 图2

    发布了58 篇原创文章 · 获赞 6 · 访问量 1万+