GPIO(General Purpose I/O Ports)意思是通用输入/输出端口, 通俗的说就是一些引脚,可以通过它们输出高低电平或者通过它们读入引脚的状态(高电平/低电平)。
树莓派上有40根排针,引脚编号按照物理位置来编号,最靠近角上那一根引脚为2号引脚。旁边是1号引脚。
<p id="color" style="color:purple" align="center">图 树莓派引脚规则示意图</p>
那么这40根引脚具体的用途和定义是什么呢,可以参照下图(树莓派的引脚图)。
<div align="center"><img src="images/screenshot_1559124463574.png"/></div>
<b>注意:</b>
树莓派我们编程一般直接用Python,针对GPIO编程,Python提供了第三方库,常用的是RPI.GPIO。
## 安装RPI.GPIO库
终端输入命令
```
sudo apt-get -y python-pip #安装pip
sudo pip install rpi.gpio #安装RPI.GPIO
```
树莓派不同版本引脚可能有差别,可以使用命令
```
gpio readall
```
打印出所有管脚。
<div align="center"><img src="images/screenshot_1559199732757.png"/></div>
## 控制GPIO编程
### 导入RPi.GPIO库
可以用下面的代码导入RPi.GPIO模块
``` python
import PRi.GPIO as GPIO
```
导入之后,就可以使用GPIO模块的函数了。如果想检查模块是否导入成功,也可以这样写:
```py
try:
import RPi.GPIO as GPIO
exceptRuntimeError:
print("error")
```
### 针脚编号
在RPi.GPIO中,同时支持树莓派上的两种GPIO引脚编号。第一种编号是BOARD编号,这和树莓派电路板上的屋里引脚编号相对应。第二种编号是BCM规则,更底层的工作方式,需要保证主板上的针脚与图表上标注的通道编号相对应。
指定使用的针脚编号
```python
GPIO.setmode(GPIO.BOARD)
```
或
```python
GPIO.setmode(GPIO.BCM)
```
### 配置通道
需要为每个用于输入/输出的针脚配置通道。
配置某一针脚为输入:
```python
GPIO.setup(channel, GPIO.IN)
```
<b>注意:</b>channel是通道编号,取决于你指定的是BOARD还是BCM编号。
例如,当你硬件接到了树莓派的11号引脚(物理引脚),如果你指定BOARD编号,则channel是11;如果指定BCM编号,则channel是17。<br>
配置某一针脚为输出:
```python
GPIO.setup(channel, GPIO.OUT)
```
channel是通道编号,取决于你指定的是BOARD还是BCM编号。
另外,还可以指定输出通道的初始值:
```python
GPIO.setup(channel, GPIO.OUT, initial=GPIO.HIGH) #初始值为高电平
```
或
```python
GPIO.setup(channel, GPIO.OUT, initial=GPIO.LOW) #初始值为低电平
```
### 输入
读取GPIO针脚的值:
```python
GPIO.input(channel)
```
channel是通道编号,取决于你指定的是BOARD还是BCM编号。
GPIO.input()读出的值为0/GPIO.LOW/False或1/GPIO.HIGH/True。
### 输出
设置GPIO针脚的输出:
```python
GPIO.output(channel, state)
```
channel是通道编号,基于你指定的是BOARD还是BCM编号。state取值为0/GPIO.LOW或1/GPO.HIGH。
## 清理
程序结束后,设置所有使用的通道状态为输入,可以避免由于短路意外损坏树莓派针脚。
<b>注意:</b>该操作仅会清除脚本使用过的GPIO通道。
在脚本结束后,进行清理:
```python
GPIO.cleanup()
```
- 前言
- 第一章 树莓派快速入门
- 1. 初识树莓派3B+
- 2. 烧录系统
- 3. 树莓派连接键盘鼠标和显示器
- 4. 启动树莓派
- 5.树莓派连接网络
- 6. Windows远程访问树莓派
- 7. 终端通过raspi-config配置树莓派
- 第二章 树莓派编程
- 1. Linux入门操作
- 常用的linux命令
- 重要的快捷键
- 通过命令安装软件
- 树莓派关机/重启
- 2. 创建、编辑和保存文件
- 3. 创建并运行Python程序
- 4. 使用树莓派的GPIO口
- 第三章 树莓派套件应用
- 树莓派3B+ IO扩展板介绍
- 家居系统
- 会呼吸的RGB灯
- 树莓派控制家电
- 制作一个环境检测仪
- 树莓派摄像头做远程监控
- 摄像头使用
- socket通信
- PiCamera + socket远程监控
- AI语音
- 配置snowboy
- 自定义响应
- 采集语音和语音播放
- 语音机器人
- 图灵机器人
- 俄罗斯方块小游戏
- pygame基本使用
- ADKeyboard使用
- 俄罗斯方块实现原理
- 俄罗斯方块代码讲解
- 手势控制的树莓派相册
- 模块介绍
- 爬取图片
- 电子相册
- 附录
- 网址