树莓派使用WiringPi实现LED灯闪烁
前几天入手树莓派,刷了系统就想做一些有趣的事情。
工具:一个LED发光二极管(各颜色皆可,我选用的是3V绿色的)
一个定值电阻(为了树莓派的安全,建议使用,具体多少根据情况而定,我没有使用)
母对母杜邦线2根(可选)
一个树莓派且已烧好系统
首先安装WiringPi,安装过程不再赘述。
然后写一个简单的代码。
要是不知道WiringPi各个函数的作用可以参考
下载地址:百度网盘下载
如果链接不能用请告诉我
源代码如下:
#include
#include
#include
int main(int argc,char *argv[])
{
unsigned int pinNum,times,t,i=0;
char userchoice;
if(wiringPiSetup() == -1) return 1;
if(argc == 1)
{
printf("您没有输入GPIO号,但是程序需要一个合法的
GPIO号(且在WiringPi中的定义)\n您需要查看WiringPi中的GPIO与实际树莓派之间的映射
吗?[y/n]\n\n请输入:");
scanf("%c",&userchoice);
if(userchoice=='y') system("gpio readall");
else ;
printf("那么现在,请输入GPIO号(在WiringPi中的定
义):");
scanf("%d",&pinNum);
}
else pinNum=atoi(argv[1]);
pinMode(pinNum,OUTPUT);system("clear");
printf("请设置LED闪烁的次数:");
scanf("%d",×);
printf("请设置LED闪烁间隔的时间(毫秒):");
scanf("%d",&t);
printf("开始闪烁......\n");
for(i=0;i
$vim myfirstLED.c
编辑完之后wq保存退出
编译:
$gcc -Wall myfirstLED.c -o MyFirstLED -lwiringPi
!!注意不加 -lwiringPi 参数会报错
运行一下
#./MyFirstLED 1
我设置闪烁次数为50000次
闪烁间隔为50ms
可以使用
$gpio readall
命令来查看当前机型的GPIO以及在WiringPi中的定义
因为我选的是GPIO 1,所以我需要把LED接在针脚8和针脚12上(我的杜邦线在路上,没办法只能用手接)
我一开始并不知道怎么找针脚1,百度了以后明白:
把树莓派倒置,看针脚的焊点,有一个是方形焊点,其余的都是圆形的,那个方形的代表针脚1,它旁边那个代表针脚2,以此类推。这个是可以跨机型的方法。
如图所示:
最主要的是wPi和Physical。
至于每一项什么意思手册中都有介绍。
当然你要是觉得每次看映射关系太麻烦,可以参考手册更改程序。
效果图(由于不让上传2M以上文件我也只能截图了):