树莓派上手记(3)

 

能够正常运行Linux服务的树莓派显然没做到物尽其用——毕竟Web服务、BT下载这些功能并不突出,好些路由器就可以做到,也没什么折腾的噱头。要释放树莓派强大的功能,目光自然要放在可编程的GPIO端口上。

 

树莓派GPIO介绍

 

树莓派的输入输出端口由板子左上角的26个针脚构成:

 

 

 

第一版和第二版树莓派的针脚定义有些不同:

 

 

 

如果分不清哪个是1号管脚,可以把板子翻过来,只有1号管脚的焊口是正方形的,其他都是圆形(上图也有示意)。

 

26个管脚中,GPIO有17个管脚,5个GND和4个VCC(3.3V和5V各两个)。

 

点亮LED灯

 

以下需要一些简单的电子元器件进行试验,请自行淘宝。

  • 面包板

  • 导线若干(公母线、公公线、母母线)

  • LED灯(一包,电压范围2.2V – 3.3V)

  • 电阻(一包,从几十欧到1M欧都有)

 

连接方式

  • LED灯和100欧左右电阻串联

  • 正极(LED长针脚)接3.3V输出(Pin 1),负极接GND(Pin 6)

  • 不放心可以先用万用表测量一下电压

 

 

程序控制LED灯

 

GPIO的端口输出可以通过很简单的方式控制。这里需要用到一个库 wiringPi。

 

建议在自己电脑上用git clone这个库 

 

git clone git://git.drogon.net/wiringPi

 

然后把源代码scp到树莓派上,进入代码目录,然后运行./build它就可以自己编译、安装了。

 

pi@raspberrypi ~ $ gpio -v

gpio version: 2.13

Copyright (c) 2012-2013 Gordon Henderson

This is free software with ABSOLUTELY NO WARRANTY.

For details type: gpio -warranty

This Raspberry Pi is a revision 2 board.

 

wiringPi对端口的定义和树莓派有一些区别,它把树莓派不连续的GPIO端口按照0~16的顺序一一对应编号。因此使用wiringPi时,需要用wiringPi定义的方式来访问端口。比如GPIO17在wiringPi里其实就是0号端口。

 

 

这一次VCC不从3.3V的一号口引出来,而是接到了Pin 11,GPIO 17上。这个端口在wiringPi里被定义为0号。

 

 

运行下面的命令就可以点亮LED灯:

 

gpio mode 0 out # 0号端口输出模式

gpio wirte 0 1     # 0号端口输出高电平

 

通过脚本的控制,可以让LED灯发出闪烁的效果

 

#!/bin/bash

while true; do

    gpio write 0 1

    sleep 0.5

    gpio write 0 0

    sleep 0.5

done

 

最后完工全貌:

 

 

题图来源:维基百科LED条目

 

===========================

 

小白小黑开了个微信公众号,公众号 – “黑白杂谈”, 微信号 talking_ted,或者扫描下面的二维码,欢迎大家踊关注。

 

Leave a comment