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使用
- 俄羅斯方塊實現原理
- 俄羅斯方塊代碼講解
- 手勢控制的樹莓派相冊
- 模塊介紹
- 爬取圖片
- 電子相冊
- 附錄
- 網址