RPi.GPIO 模块编程手册

 

下家山翻译

参考资料:

https://sourceforge.net/p/raspberry-gpio-python/wiki/BasicUsage/

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

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`import RPi.GPIO as GPIO` 是 Python 中用于与 Raspberry Pi 的 GPIO 控制接口通信的一段导入语句。Raspberry Pi 是一种广泛使用的低成本单板计算机,通常被用于电子项目、原型设计以及各种自动化任务。 RPi.GPIO 库使得 Python 程序员能够通过 Python 脚本来控制 Raspberry Pi 上的物理输入输出设备(如按钮、LED 和传感器),而无需直接编写底层硬件驱动程序。这极大地简化了与硬件交互的过程,并允许开发者快速构建出功能丰富的嵌入式系统应用。 当你在 Python 脚本中看到 `import RPi.GPIO as GPIO` 这行代码时,这意味着该脚本将开始使用 RPi.GPIO 库的功能。接下来,通常会有一系列设置代码来初始化 GPIO 引脚模式(例如,将引脚配置为输入或输出)、设置警告机制(避免未连接引脚导致的警告信息)等操作。 使用 RPi.GPIO 的示例: ```python import RPi.GPIO as GPIO # 设置 GPIO 模式为 BCM 编码(大多数情况下使用) GPIO.setmode(GPIO.BCM) # 定义需要使用的 GPIO 引脚编号 pin_number = 18 # 将指定的 GPIO 引脚配置为输出 GPIO.setup(pin_number, GPIO.OUT) # 输出高电平(通常表示电源开启状态) GPIO.output(pin_number, GPIO.HIGH) # 清除输出,可以关闭 LED 或其他设备 GPIO.cleanup() ``` 在这个例子中,我们定义了一个名为 pin_number 的 GPIO 引脚,将其配置为输出,并向它发送高电平信号,以此模拟打开一个设备(比如 LED)。之后,我们清理所有设置,释放资源。 请注意,在实际操作 Raspberry Pi 的过程中,务必保证你的安全措施到位,特别是在处理电源和电路连接时。不当的操作可能导致硬件损坏或是意外情况发生。始终确保了解你正在操作的设备的安全指南和最佳实践。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值