模块编程手册"/>
RPi.GPIO 模块编程手册
下家山翻译
参考资料:
/
1:导入这个模块
要导入这个模块,需要执行下面的代码:
import RPi.GPIO as GPIO
By doing it this way, you can refer to it as just GPIO through the rest of your script.
通过这种方式,后续代码(也称为脚本script)你可以通过GPIO这个名字来使用这个模块(实际上上是使用了一个简称)
To import the module and check to see if it is successful:
如果要导入模块的同时检查是否成功,可以这样做
try:
import RPi.GPIO as GPIO
except RuntimeError:
print("Error importing RPi.GPIO! This is probably because you need superuser privileges. You can achieve this by using 'sudo' to run your script")
说明:
关键字Try和except的组合在Python中常用于捕捉异常(编程术语叫陷阱),在执行完
import RPi.GPIO as GPIO这条语句,会判断是否发生了RuntimeError错误(即运行错误),如果发生了,则条件成立,打印print函数里面的提示信息。
2. 引脚编号
当使用Rpi.GPIO模块编程的时候,树莓派的IO引脚有两种编码方式,第一种是BOARD编码方式,第二种是BCM编码方式,如下图所示:
可以使用下面的代码设置你需要的引脚编码方式:
GPIO.setmode(GPIO.BOARD)
# 或者
GPIO.setmode(GPIO.BCM)
想知道你现在是什么引脚编码方式,可以执行下面的代码得到
mode = GPIO.getmode()
返回结果 mode 将是下面三种情况之一 GPIO.BOARD, GPIO.BCM or None
3.关于警告
It is possible that you have more than one script/circuit on the GPIO of your Raspberry Pi. As a result of this, if RPi.GPIO detects that a pin has been configured to something other than the default (input), you get a warning when you try to configure a script. To disable these warnings:
很有可能你需要设置你的树莓派引脚多种功能,此时,如果Rpi.GPIO模块检测到某个引脚被配置了默认功能以外的功能(默认是输入),你将得到一个警告,比如:
要解决这个问题,你只需要加入如下代码:
GPIO.setwarnings(False)
4.设置一个通道
(注意这里面的通道就是指引脚)
当你要使用一个引脚作为输入或者输出功能的时候,你必须要配置它。如果要配置某个通道(引脚)作为输入,执行如下脚本(代码)
GPIO.setup(channel, GPIO.IN)
(这里的通道是指BOARD or BCM模式下的编码引脚).
配置某个引脚作为输出,执行如下代码:
GPIO.setup(channel, GPIO.OUT)
你还可以在设置某个引脚为输入或者输出的同时,初始化它为高电平或者低电平,代码如下:
GPIO.setup(channel, GPIO.OUT, initial=GPIO.HIGH)
5.一次设置多个引脚
你可以利用Python中的列表或者元组功能一次设置多个引脚:
chan_list = [11,12] #使用列表方式同时设置第11号引脚和12号引脚为输出!
#你还可以以元组的方式来设置:
# chan_list = (11,12)
GPIO.setup(chan_list, GPIO.OUT)
6.关于输入
通过以下方式可以得到一个输入引脚的值:
GPIO.input(channel)
上面的代码将返回一个0 / GPIO.LOW / False或者1 / GPIO.HIGH / True.
0代表低电平,False表示假,GPIO.LOW也表示低电平
1代表高电平,True表示真,GPIO.HIGH表示高电平
7.关于输出
要设置引脚的输出状态,代码如下:
GPIO.output(channel, state)
这里State 可以是 0 / GPIO.LOW / False或者1 / GPIO.HIGH / True.
8.一次设置多个引脚输出状态
你能够一次设置多个引脚的输出状态. For example:
chan_list = [11,12] # 列表的方式定义11和12引脚
GPIO.output(chan_list, GPIO.LOW) # sets all to GPIO.LOW
GPIO.output(chan_list, (GPIO.HIGH, GPIO.LOW)) # 设置11号引脚为高电平,12号引脚为低电平
9.Cleanup(释放资源)
一个好的编程习惯是:在程序结束的时候,通过cleanup函数释放所有资源。虽然系统会帮你释放,但是养成这种习惯是很好的,比如你在某个时候需要切换引脚的状态,之前是输入,某个时候要切换到输出,那么在设置输出状态的时候,你应该先释放着引脚,然后切换到输出。
通过下面的代码你可以释放正在使用的所有引脚:
GPIO.cleanup()
你还可以释放某个引脚,或者通过列表或者元组方式释放多个引脚:
GPIO.cleanup(channel)
GPIO.cleanup( (channel1, channel2) )
GPIO.cleanup( [channel1, channel2] )
10.树莓派开发板信息和GPIO模块版本信息
想知道你现在树莓派开发板信息,可以执行如下代码:
GPIO.RPI_INFO
要知道你的树莓派的版本信息可以执行如下代码:
GPIO.RPI_INFO['P1_REVISION']
GPIO.RPI_REVISION (deprecated)
想获取Python中 RPi.GPIO模块的版本信息,执行如下代码:
GPIO.VERSION
更多推荐
RPi.GPIO 模块编程手册
发布评论