使用RPi.GPIO在树莓派上点灯

作者: 分类: 树莓派 时间: 2014-05-12

点LED灯就和学程序写Hello World一样。入门必学的基础功。RPi.GPIO是一个python包装的GPIO类库,使用它可以很方便的控制io口信号。

一、安装RPi 的python库

如果使用的是debian版本的树莓派系统,应该是已经安装了该库。打开终端输入"python"进入python交互界面,输入“import RPi.GPIO",如果没有报告“ImportError: No module named RPi.GPIO”错误的话,就已经安装了该库,直接使用即可。

安装的方法1:命令 “sudo apt-get install RPi.GPIO”

安装方法2:到该页面下载最新的库文件:https://pypi.python.org/pypi/RPi.GPIO 并安装。

二、认识GPIO端口

树莓派的一边有2排共26个针脚,以SD插卡卡口方向向上,如图所示的io口说明图,其实在电路板上,也有标了“p1”字样,代表该处的针脚为第一针。

说明图有2中排号法,就是端口的命名不同,一个叫做“Raspberry Pi”命名,一个叫“Broadcom”命名。2套命名法猜测是为了和arduino一样使用数字抽象化端口,这样以后电路规格发生变化后代码具有通用性。

如图所示,绿色的为通用io端口,粉红为spi端口。其中的红色5V端口要说一下,实际测试是没有5V电压的,4点几伏特而已。

Raspberry pi gpio

 

三、 代码

先进入python的交互命令行:sudo python

需要使用管理员权限,不然无法访问gpio。

[codesyntax lang="python"]

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

GPIO.setup(17,GPIO.OUT)
GPIO.setup(18,GPIO.OUT)
GPIO.setup(22,GPIO.OUT)

GPIO.output(17,1)
GPIO.output(18,1)
GPIO.output(22,1)
def onebyone(delay):
    delay=1
    GPIO.output(17,0)
    time.sleep(delay)
    GPIO.output(17,1)
    GPIO.output(18,0)
    time.sleep(delay)
    GPIO.output(18,1)
    GPIO.output(22,0)
    time.sleep(delay)
    GPIO.output(22,1)

for i in range(10):
    onebyone(i)
print 'ok'
GPIO.cleanup()

[/codesyntax]

 

其中的代码最后一句 GPIO.cleanup() 需要特别注意。它应该在你操作完gpio或者程序结束前使用。不然会导致你下次使用gpio的时候提示该channel is use,端口被占用无法使用。

阅读全文»