RPi.GPIO 模块使用基础
来源:互联网 发布:51单片机at指令 编辑:程序博客网 时间:2024/05/21 09:06
原贴地址
更新日志:
2013 年 5 月 25 日更新:根据 2013 年 3 月 30 日更新的官方文档完成了初步翻译。
本文会在适当的时间里进行增删改等操作,如果您对该文感兴趣,可以仅收藏本页。
本文链接:RPi.GPIO 模块使用基础
该程序包提供了一个在 Raspberry Pi 中控制 GPIO 的类。
注意,该模块不适合应用到追求实时性或计数周期的应用中。这是由于您无法预测 Ptyhon 何时繁忙,以及资源回收的时间。而且它是运行在基于 Linux 核心的系统中,也不合适用于实时应用 – 原因在于其它进程可能获得更高的 CPU 优先级。如果您一定要追求实时操作的性能,可以考虑购买一块 Arduino 主板http://www.arduino.cc!
还需要注意一点,目前的版本还不支持 Raspberry Pi 的 SPI、I2C、1-wire、串口等功能。计划在不久的将来会实现的!
本文是 RPi.GPIO 模块文档系列文章的第一篇,除本文外还包括以下几篇:
使用 RPi.GPIO 模块的输入(Input)功能
使用 RPi.GPIO 模块的输出(Output)功能
使用 RPi.GPIO 模块的脉宽调制(PWM)功能
导入模块
导入 RPi.GPIO 模块:
import RPi.GPIO as GPIO
通过该操作,您可以将模块名称映射为 GPIO,以便接下来您其它脚本进行使用。导入模块并检查它是否导入成功,可以尝试:
importRPi.GPIO as GPIOexcept RuntimeError: 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
相关网站
原文地址:RPi.GPIO module basics
项目地址:RPi.GPIO
- RPi.GPIO 模块使用基础
- 树梅派应用10:RPi.GPIO 模块使用基础
- 使用 RPi.GPIO 模块的输入(Input)功能
- 使用 RPi.GPIO 模块的输出(Output)功能
- 使用 RPi.GPIO 模块的脉宽调制(PWM)功能
- 使用 RPI.GPIO 模块的脉宽调制(PWM)功能
- 树梅派应用11:使用 RPi.GPIO 模块的输入(Input)功能
- 树梅派应用12:使用 RPi.GPIO 模块的输出(Output)功能
- 树梅派应用13:使用 RPI.GPIO 模块的脉宽调制(PWM)功能
- RPi.GPIO 官方使用文档翻译
- RPI.GPIO使用手册
- RPI.GPIO使用手册
- RPI.GPIO使用手册
- 树莓派RPi.GPIO使用手册
- Python RPi GPIO编程控制
- 使用python的rpi.gpio控制树莓派2B输出pwm信号的误差
- 【RPi树莓派使用指南】GPIO驱动方法
- Raspberry Pi Blink(Python RPi.GPIO)
- 植物大战僵尸经典开发步骤
- 玩转位运算
- Android四大组件之Broadcast
- hdu 2795 Billboard 线段树
- 拜占庭将军问题深入探讨
- RPi.GPIO 模块使用基础
- BDQN_Java_S1_基础什锦
- Windows和 Centos7 双系统的搭建
- iOS 状态栏、导航栏颜色修改
- POJ1006 生理周期 暴力解
- 0-1背包问题(回溯法)
- iOS 面试题
- php 遍历目录并打印所有文件名
- NOIP2014 Day1T2 联和权值 数学&图论