查看: 776|回复: 0

【Tigerboard】之PWM脉宽调制输出

[复制链接]
  • TA的每日心情
    奋斗
    2022-10-13 10:27
  • 签到天数: 216 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2016-3-21 09:03:23 | 显示全部楼层 |阅读模式
    分享到:
    昨天熟悉了TigeBoard关于GPIO的输入输出控制,今天一起来看看PWM输出。脉宽调制在很多地方都有用到,比如我们常用的舵机控制,电机的无级变速控制等,这里还是通过一个简单的程序进行说明.
    程序实例:
    import RPi.GPIO as gpio
    led_pin = 33
    gpio.setmode(gpio.BOARD)
    gpio.setup(led_pin, gpio.OUT)
    pwm_led = gpio.PWM(led_pin, 500) # Create a PWM instance, first parameter is pin, second parameter is frequent.
    pwm_led.start(100) # Start PWM, the parameter 100 here is duty cycle.
    while True:
         duty_s = raw_input("Enter Brightness (0 to 100)") # Get input.
    #     duty =100- int(duty_s) # change string to int.
         pwm_led.ChangeDutyCycle(int(duty_s)) # Change the duty cycle to set the new duty cycle.
    说明:

    从 程序中可以看到,这里采用的依然是板子J3上的33管脚,当然你自己实验可以采用其他管脚,前面几行设置了GPIO的模式以及输入输出,当然还定了相应管 脚。gpio.PWM(led_pin, 500)是用来设置PWM输出接口为led_pin  频率为500,pwm_led.start(100)设置初始占空比为满占空比,最后通过一个While循环来改变占空比并输出。实际结果看波形:

    默认满占空比波形:

    修改占空比为50%:
    修改后结果:
    修改占空比为70%:
    PS:注意这里要转换为整形修改后结果:

      从上面的结果,可以看出基本上和我们想要的结果一样,那么想在你就可以通过TigeBoard上的PWM输出去控制你想要控制的小玩意了!
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 06:37 , Processed in 0.111892 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.