查看: 2717|回复: 0

【Tigerboard】之PWM脉宽调制输出

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

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2016-3-19 09:53:48 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 糖悦之果飞 于 2016-3-22 10:14 编辑

      昨天熟悉了TigeBoard关于GPIO的输入输出控制,今天一起来看看PWM输出。脉宽调制在很多地方都有用到,比如我们常用的舵机控制,电机的无级变速控制等,这里还是通过一个简单的程序进行说明.

    程序实例:
    1. import RPi.GPIO as gpio
    2. led_pin = 33
    3. gpio.setmode(gpio.BOARD)
    4. gpio.setup(led_pin, gpio.OUT)
    5. pwm_led = gpio.PWM(led_pin, 500)  # Create a PWM instance, first parameter is pin, second parameter is frequent.
    6. pwm_led.start(100)  # Start PWM, the parameter 100 here is duty cycle.
    7. while True:
    8.         duty_s = raw_input("Enter Brightness (0 to 100)")  # Get input.
    9. #      duty =100- int(duty_s) # change string to int.
    10.         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循环来改变占空比并输出。实际结果看波形:


    默认满占空比波形:
    360截图20160319094745049.jpg

    修改占空比为50%:
    360截图20160319091821888.jpg

    修改后结果:
    360截图20160319095022173.jpg

    修改占空比为70%:
    360截图20160319092432581.jpg
    PS:注意这里要转换为整形
    修改后结果:
    IMG_20160319_091816.jpg


      从上面的结果,可以看出基本上和我们想要的结果一样,那么想在你就可以通过TigeBoard上的PWM输出去控制你想要控制的小玩意了!
    GPIO&PWM控制案例.rar (12.02 KB, 下载次数: 6)
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-12-19 05:38 , Processed in 0.116666 second(s), 16 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.