本帖最后由 糖悦之果飞 于 2016-3-22 10:14 编辑
昨天熟悉了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输出去控制你想要控制的小玩意了!
GPIO&PWM控制案例.rar
(12.02 KB, 下载次数: 6)
|