(十三)树莓派3B+ wiringPi库的使用--软件PWM
Posted 小猿猪哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(十三)树莓派3B+ wiringPi库的使用--软件PWM相关的知识,希望对你有一定的参考价值。
在《(十一)树莓派3B+ wiringPi库的使用–硬件PWM》介绍的是硬件PWM,其实wiringPi库还提供了软件PWM的方法。
电路图还是和之前的一样,效果也差不多。
代码
#include <wiringPi.h>
#include <softPwm.h>
#define pwm_pin 1 //定义PWM引脚 GPIO.1
int main (void)
wiringPiSetup (); // wiringPi库初始化
softPwmCreate (pwm_pin, 0, 100) ; // 设置GPIO.1为PWM输出
int val = 0;
while(1)
val ++;
if(val >= 100)
val = 0;
softPwmWrite(pwm_pin,val); // 输出占空比为val/100的pwm波
delay(3); // 延时3毫秒
return 0 ;
怎么使用
1.引入头文件
#include <softPwm.h>
2.初始化端口
int softPwmCreate (int pin, int initialValue, int pwmRange) ;
参数pin
,树莓派的任何一个GPIO引脚都可以被设置成软件PWM的输出引脚。
参数initialValue
,PWM初始值,这值得范围在0~100之间。
参数pwmRange
,PWM输出范围,这值得范围在0~100之间。
3.设置输出值
void softPwmWrite (int pin, int value) ;
给作为PWM输出的引脚设置输出值,这个值在pwmRange
范围之内。
wiringPi库提供的软件PWM就这个两个方法,但是有些是需要注意的。
注意点
- PWM输出的每一个“周期”都需要10毫秒,默认范围值为100,因此,尝试每秒改变PWM值超过100次将是徒劳的。(也就是说软件PWM的固定输出频率是100HZ,这个对于驱动一般的电机是足够了)
您需要保持您的程序运行,以维护PWM输出! - 在软PWM模式下激活的每个引脚使用大约0.5%的CPU。
- 目前还没有办法禁用软PWM上的一个引脚,而程序在运行中。
- 您需要保持您的程序运行,以维护PWM输出!
以上是关于(十三)树莓派3B+ wiringPi库的使用--软件PWM的主要内容,如果未能解决你的问题,请参考以下文章