玩转树莓派

    返回首页    发表留言
本文作者:李德强
          第二节 产生PWM信号
 
 

        使用树莓派来产生PWM信号非常简单,我们只需要按一定的频率将某一个GPIO引脚输出高低电平即可。比如(引脚编号均为WiringPi编号):

  • 将1号引脚设置为输出模式
  • 循环
  • {
  •         向1号引脚输出高电平
  •         持续1.0ms
  •         向1号引脚输出低电平
  •         持续1.0ms
  • }

        这样我们就产生了一个500Hz的PWM信号,它的周期为2.0ms,占空比为50%。我们使用WiringPi来控制GPIO编写程序如下:

//初始化WiringPi
wiringPiSetup();
//设置1号引脚为输出
pinMode(1, OUTPUT);
while(1)
{
	//输出高电平
	digitalWrite(1, HIGH);
	//持续1.0ms
	usleep(1000);
	//输出低电平
	digitalWrite(1, LOW);
	//持续1.0ms
	usleep(1000);
}

        接下来,我们可以将引脚编号、高低电平持续时长的固定数值修改为变量,这样一来我们就可以动态的根据自己的需要来设定PWM的占空比了。

        另外,WiringPi的库函数中也有已经有输出PWM的函数,它叫pwmWrite(int pin, int value);其中pin为引脚编号,value为PWM的占空比值范围为0~1024。在使用时需要将GPIO引脚的输出模式修改为PWM输出模式:

//初始化WiringPi
wiringPiSetup();
//设置1号引脚为输出
pinMode(1, PWM_OUTPUT);
while(1)
{
	//输出PWM信号
	pwmWrite(1, 512);
}

        以上两种方式都是可行的,希望有兴趣的朋友将这两种方式都尝试尝试,然后选择一种适合自己的方式来使用。

 

    返回首页    返回顶部
  看不清?点击刷新

 

  Copyright © 2015-2018 问渠网 辽ICP备15013245号