RPi.GPIO模块使用基础是怎样的

发布时间:2022-01-05 19:16:04 作者:柒染
来源:亿速云 阅读:148

这篇文章将为大家详细讲解有关RPi.GPIO模块使用基础是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

RPi.GPIO 模块程序包提供了一个在 Raspberry Pi 中控制 GPIO 的类。

注意,该模块不适合应用到追求实时性或计数周期的应用中。这是由于您无法预测 Ptyhon 何时繁忙,以及资源回收的时间。而且它是运行在基于 Linux 核心的系统中,也不合适用于实时应用 – 原因在于其它进程可能获得更高的 CPU 优先级。如果您一定要追求实时操作的性能,可以考虑购买一块 Arduino 主板http://www.arduino.cc!

还需要注意一点,目前的版本还不支持 Raspberry Pi 的 SPI、I2C、1-wire、串口等功能。计划在不久的将来会实现的!

导入模块

导入 RPi.GPIO 模块:

1

import RPi.GPIO as GPIO

通过该操作,您可以将模块名称映射为 GPIO,以便接下来您其它脚本进行使用。

导入模块并检查它是否导入成功,可以尝试:

1

2

3

4

try:

    import RPi.GPIO as GPIO

except RuntimeError:

    print("导入 RPi.GPIO 时出现错误!这可能由于没有超级用户权限造成的。您可以使用 'sudo' 来运行您的脚本。")

针脚编号

目前有两种方式可以通过 RPi.GPIO 对 Raspberry Pi 上的 IO 针脚进行编号。

第一种方式是使用 BOARD 编号系统。该方式参考 Raspberry Pi 主板上 P1 接线柱的针脚编号。使用该方式的优点是无需考虑主板的修订版本,您硬件始终都是可用的状态。您将无需从新连接线路和更改您的代码。

第二种方式是使用 BCM 编号。这是一种较低层的工作方式 – 该方式参考 Broadcom SOC 的通道编号。使用过程中,您始终要保证主板上的针脚与图表上标注的通道编号相对应。您的脚本可能在 Raspberry Pi 主板进行修订版本更新时无法工作。

指定您所使用的方式(必须指定):

1

GPIO.setmode(GPIO.BOARD)

或者

1

GPIO.setmode(GPIO.BCM)

警告

可能您的 Raspberry Pi 的 GPIO 上同时有多个脚本/循环。因此,如果 RPi.GPIO 检测到某个针脚被设置为其它用途而非默认的状态(默认为输入),您会在尝试配置某脚本时得到警告消息。

禁用该警告消息:

1

GPIO.setwarnings(False)

配置通道

您需要为每个用于输入或输出的针脚配置通道。

配置为输入的通道:

1

GPIO.setup(channel, GPIO.IN)

(通道编号是基于您所使用的编号系统所指定的(BOARD 或 BCM)。)

更多关于输入通道的进阶信息可以在这里找到。

配置为输出的通道:

1

GPIO.setup(channel, GPIO.OUT)

(通道编号是基于您所使用的编号系统所指定的(BOARD 或 BCM)。)

您还可以指定输出通道的初始值:

1

GPIO.setup(channel, GPIO.OUT, initial=GPIO.HIGH)

输入

读取 GPIO 针脚的值:

1

GPIO.input(channel)

(通道编号是基于您所使用的编号系统所指定的(BOARD 或 BCM)。)这将返回 0 / GPIO.LOW / False 或者 1 / GPIO.HIGH / True。

输出

设置 GPIO 针脚的输出状态:

1

GPIO.output(channel, state)

(通道编号是基于您所使用的编号系统所指定的(BOARD 或 BCM)。)

状态可以为 0 / GPIO.LOW / False 或者 1 / GPIO.HIGH / True。

清理

在任何程序结束后,请养成清理用过的资源的好习惯。使用 RPi.GPIO 也同样需要这样。恢复所有使用过的通道状态为输入,您可以避免由于短路意外损坏您的 Raspberry Pi 针脚。注意,该操作仅会清理您的脚本使用过的 GPIO 通道。

在您的脚本结束后进行清理:

1

GPIO.cleanup()

Raspberry Pi 修订版本和 RPi.GPIO 版本

检测 Raspberry Pi 主板的修订版本:

1

GPIO.RPI_REVISION

检测 RPi.GPIO 的版本:

1

GPIO.VERSION

关于RPi.GPIO模块使用基础是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. Python操作MySQL的pymsql模块是怎么使用的
  2. python基础四(模块的导入)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

rpi.gpio

上一篇:ansible该怎么使用

下一篇:常用Message Queue对比是怎样的

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》