pwm函数调用
还是利用wiringPI调用树莓派的GPIO,利用PWM函数中的softPwmCreate()和softPwmWrite(),结合变色的函数,改变颜色。
softPwmCreate:该函数将会创建一个软件控制的 PWM 管脚。可以使用任何一个 GPIO 管脚,pwmRange 参数可以为 0(关) ~100(全开)。
点击查看代码
#include <wiringPi.h>
#include <softPwm.h>
#include <stdio.h>
#define uchar unsigned char
#define LedPinRed 0
#define LedPinGreen 1
#define LedPinBlue 2
void ledInit(void)
{
**softPwmCreate(LedPinRed, 0, 100);//意思是参数范围可设置Write0-100**
softPwmCreate(LedPinGreen,0, 100);
softPwmCreate(LedPinBlue, 0, 100);
}
void ledColorSet(uchar r_val, uchar g_val, uchar b_val)
{
**softPwmWrite(LedPinRed, r_val);**
softPwmWrite(LedPinGreen, g_val);
softPwmWrite(LedPinBlue, b_val);
}
int main(void)
{
int i;
if(wiringPiSetup() == -1){ //when initialize wiring failed, print message to screen初始化失败,则发送信息到屏幕
printf("setup wiringPi failed !");
return 1;
}
//printf("linker LedPin : GPIO %d(wiringPi pin)\n",LedPin); //when initialize wiring successfully,print message to screen
ledInit();
while(1){
ledColorSet(0xff,0x00,0x00); //red 11111111 0000000 000000
delay(500);
ledColorSet(0x00,0xff,0x00); //green
delay(500);
ledColorSet(0x00,0x00,0xff); //blue
delay(500);
ledColorSet(0xff,0xff,0x00); //yellow
delay(500);
ledColorSet(0xff,0x00,0xff); //pick
delay(500);
ledColorSet(0xc0,0xff,0x3e);
delay(500);
ledColorSet(0x94,0x00,0xd3); // 10010100 00000000 11010011
delay(500);
ledColorSet(0x76,0xee,0x00); // 01110110 11101110 00000000
delay(500);
ledColorSet(0x00,0xc5,0xcd); // 00000000 11000101 11001101
delay(500);
}
return 0;
}
例程
点击查看代码
#include<stdio.h>
#include<wiringPi.h> //添加库文件
#include<softPwm.h> //添加库文件
#define PWM_Pin 1 //定义PWM_Pin为引脚为wPi的1号引脚,对应GPIO1
int main()
{
printf("This is an experiment of output PWM\n");
wiringPiSetup(); //初始化wiringPi
softPwmCreate(PWM_Pin,0,100); //当前pwmRange为100,频率为100Hz,若pwmRange为50
时,频率为200,若pwmRange为2时,频率为5000。> 频率=10000/pwmRange;
softPwmWrite(PWM_Pin,50); //占空比 = value/pwmRange,当前占空比 = 50/100 =
50%
while(1)
{
}
return 0;
}
softPwmCreate(PWM_Pin,0,100); 设置频率=10000/pwmRange
softPwmWrite(PWM_Pin,50);设置占空比50%
wiringPiSetup()函数
使用前,需要包含相应的文件:
点击查看代码
#include <wiringPi.h>
#include <softPwm.h>
使用gcc编译
gcc pwm.c -o pwm -lwiringPi
运行编译好的程序
./pwm
浙公网安备 33010602011771号