回答

收藏

[原创] 【Tigerboard】之PWM脉宽调制输出

#拆解/开源硬件 #拆解/开源硬件 3086 人阅读 | 0 人回复 | 2016-03-19

本帖最后由 糖悦之果飞 于 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循环来改变占空比并输出。实际结果看波形:


默认满占空比波形:


修改占空比为50%:


修改后结果:


修改占空比为70%:

PS:注意这里要转换为整形
修改后结果:



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

使用道具 举报

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

本版积分规则

关闭

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