文档章节

树莓派GPIO资料

夜丶魂
 夜丶魂
发布于 2017/05/05 13:46
字数 914
阅读 21
收藏 0

该程序包提供了一个在 Raspberry Pi 中控制 GPIO 的类。
注意,该模块不适合应用到追求实时性或计数周期的应用中。这是由于您无法预测 Ptyhon 何时繁忙,以及资源回收的时间。而且它是运行在基于 Linux 核心的系统中,也不合适用于实时应用 - 原因在于其它进程可能获得更高的 CPU 优先级。
还需要注意一点,目前的版本还不支持 Raspberry Pi 的 SPI、I2C、1-wire、串口等功能。计划在不久的将来会实现的!

导入模块
导入 RPi.GPIO 模块:

importRPi.GPIO as GPIO

通过该操作,您可以将模块名称映射为 GPIO,以便接下来您其它脚本进行使用。
导入模块并检查它是否导入成功,可以尝试:

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

针脚编号
目前有两种方式可以通过 RPi.GPIO 对 Raspberry Pi 上的 IO 针脚进行编号。
第一种方式是使用 BOARD 编号系统。该方式参考 Raspberry Pi 主板上 P1 接线柱的针脚编号。使用该方式的优点是无需考虑主板的修订版本,您硬件始终都是可用的状态。您将无需从新连接线路和更改您的代码。
第二种方式是使用 BCM 编号。这是一种较低层的工作方式 - 该方式参考 Broadcom SOC 的通道编号。使用过程中,您始终要保证主板上的针脚与图表上标注的通道编号相对应。您的脚本可能在 Raspberry Pi 主板进行修订版本更新时无法工作。
指定您所使用的方式(必须指定):

GPIO.setmode(GPIO.BOARD)

或者

GPIO.setmode(GPIO.BCM)

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

GPIO.setwarnings(False)
配置通道
您需要为每个用于输入或输出的针脚配置通道。
配置为输入的通道:
GPIO.setup(channel, GPIO.IN)

(通道编号是基于您所使用的编号系统所指定的(BOARD 或 BCM)。)
更多关于输入通道的进阶信息可以在这里找到。
配置为输出的通道:

GPIO.setup(channel, GPIO.OUT)

(通道编号是基于您所使用的编号系统所指定的(BOARD 或 BCM)。)
您还可以指定输出通道的初始值:

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

输入
读取 GPIO 针脚的值:

GPIO.input(channel)

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

输出
设置 GPIO 针脚的输出状态:

GPIO.output(channel, state)

(通道编号是基于您所使用的编号系统所指定的(BOARD 或 BCM)。)
状态可以为 0 / GPIO.LOW / False 或者 1 / GPIO.HIGH / True。

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

GPIO.cleanup()


Raspberry Pi 修订版本和 RPi.GPIO 版本
检测 Raspberry Pi 主板的修订版本:

GPIO.RPI_REVISION

检测 RPi.GPIO 的版本:

GPIO.VERSION

 

 

 

© 著作权归作者所有

共有 人打赏支持
夜丶魂
粉丝 8
博文 205
码字总数 133582
作品 0
长宁
高级程序员
私信 提问
Banana Pi VS Raspberrry Pi,是敌是友?

现在开源硬件,已经成为了一种潮流,很多开源硬件项目不断推出各自的开源硬件产品. 市场上主流的有: raspberrry Pi, arDuino,Pcduino, CubieBoard, 在各自的发展过程中,大家都在维护各自的社区...

sinovoip
2014/07/31
0
0
基于树莓派如何开发机器人(附PPT+视频) | 硬创公开课

导语:树莓派是为学习计算机编程教育而设计的一种微型电脑,其系统是基于Linux的, 虽然只有信用卡大小,但视频、音频等功能通通皆有,可谓是“麻雀虽小,五脏俱全”。因此自问世以来,受到了...

金红
2017/03/09
0
0
用Python让Raspberry Pi“动”起来

【编者按】本文是来自奥松机器人社区的投稿,作者为小强之工,真名贝振权,无线电、电子、嵌入式爱好者。 前段时间,接触了一款在开源硬件界被称为是“人气之王”的树莓派(Raspberry Pi)袖珍...

RagingTyphoon
2015/08/16
0
0
手机上使用MARSIOT去远程控制树莓派的简单教程

MARSIOT(火星互联)时一款手机APP,专门用来远程控制树莓派的GPIO。 APP一共不到2M,没有后台进程,没有读取短信或通讯录等恶意行为,绝对 是一个绿色软件,而且是我们中国人自己开发的软件,...

xiangstudio
2017/02/10
907
0
预告:基于树莓派如何开发机器人 | 硬创公开课

此前我们收到读者反馈,想听一节关于如何用树莓派开发机器人。树莓派为学习计算机编程教育设计的一种微型电脑,其系统基于Linux, 只有信用卡大小但视频、音频等功能通通皆有,可谓是“麻雀虽...

金红
2017/02/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx日志自动切割

1.日志配置(Nginx 日志) access.log----记录哪些用户,哪些页面以及用户浏览器,IP等访问信息;error.log------记录服务器错误的日志 #配置日志存储路径:location / {      a...

em_aaron
昨天
1
0
java 反射

基本概念 RTTI,即Run-Time Type Identification,运行时类型识别。RTTI能在运行时就能够自动识别每个编译时已知的类型。   要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运...

细节探索者
昨天
1
0
推荐转载连接

https://www.cnblogs.com/ysocean/p/7409779.html#_label0

小橙子的曼曼
昨天
3
0
雷军亲自打造的套餐了解下:用多少付多少

12月28日消息,小米科技创始人兼CEO雷军微博表示,小米移动任我行套餐方案,原则上就是明明白白消费,用多少付多少,不用不花钱!上网、电话和短信都是一毛钱,上网0.1元/M,电话0.1元/分钟,...

linuxCool
昨天
6
0
协议简史:如何学习网络协议?

大学时,学到网络协议的7层模型时,老师教了大家一个顺口溜:物数网传会表应。并说这是重点,年年必考,5分的题目摆在这里,你们爱背不背。 考试的时候,果然遇到这个问题,搜索枯肠,只能想...

Java干货分享
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部