一、硬件連接
樹莓派的GPIO針(就是SD卡插槽旁邊的兩排一共26根針)的1號針旁邊寫了一個P1,其他針的編號是從左至右從上至下編號的。
一般刷機板有4~5個針,旁邊寫的有定義。
3B+GPIO的編號:

3B+GPIO的編號

樹莓派 40Pin 引腳對照表
GPIO2、3 SDA與SCL 分別是 I2 C這種串行總線的時鐘與數(shù)據(jù)線,用于溫度傳感器交換數(shù)據(jù)或者連接LCD顯示器。
GPIO14、15 Rx和Tx串口通信。
GPIO9~11 (MOSI、MISO、SCLK) 這種串口叫做SPI。
GPIO18、21都叫做PWM,可以控制電機的轉(zhuǎn)速與轉(zhuǎn)矩,以及LED的明暗。
二、擴展板

PiFace 擴展板
1、產(chǎn)品名稱:PiFace數(shù)字I/0擴展板
2、產(chǎn)品貨號:RB-01C062
3、可直接插入Raspberry Pi的GPIO插座
4、2個可轉(zhuǎn)換的繼電器
5、4個轉(zhuǎn)換按鈕
6、8處數(shù)字輸入和集電極開路輸出
7、8個LED指示燈
8、簡單的Python, Scratch and C語言程序
9、圖形仿真虛擬器
10、繼電器可以切換電壓高達20V(上限)或電流高達5A(上限)
PiFace 有自己的Python模塊。
https://pypi.org/project/pifacedigitalio/
http://piface.github.io/

Raspberry Pi GPIO 擴展板

接入面包板使用

RaspiRobot Board

Gertboard 樹莓派擴展板
二、原型板
原型板需自己焊接。
-
Pi Plate
adafruit pi plate
adafruit pi plate
三、樹莓派LED指示燈狀態(tài)
LED亮燈狀態(tài)
| LED | 顏色 | 功能 | 正常狀態(tài) |
|---|---|---|---|
| ACT | 綠色 | card status | 閃爍:SD卡正在活動(類似電腦的硬盤燈) |
| PWR | 紅色 | power | 不閃爍:正常 |
| FDX | 橙 | full duplex | 亮:全雙工/不亮:半雙工 |
| LNK | 橙 | link | 亮:網(wǎng)絡(luò)連接成功 |
| 100 | 橙 | 100 Mbps | 亮:100 Mbps/不亮:10 Mbps |
常見亮燈狀態(tài):
| ACT | PWR | FDX | LNK | 100 | 狀態(tài)解讀 | 解讀/原因 |
|---|---|---|---|---|---|---|
| ○●○ | ●●● | ○○○ | ○○○ | ○○○ | 正常 | ACT燈:SD卡正在活動 |
| ○○○ | ●●● | ○○○ | ○○○ | ○○○ | 不正常 | SD卡啟動文件損壞或沒有SD卡 |
| ○○○ | ○●○ | ○○○ | ○○○ | ○○○ | 不正常 | 電源電壓不正常 |
| ●○● | ●●● | ○○○ | ○○○ | ○○○ | 不正常 | 看下文解釋 |
| ○●○ | ●●● | ●●● | ●●● | ●●● | 正常 | 全雙工/100 Mbps |
| ○●○ | ●●● | ●●● | ●●● | ○○○ | 正常 | 全雙工/10 Mbps |
| ○●○ | ●●● | ○○○ | ●●● | ●●● | 正常 | 半雙工/100 Mbps |
| ○●○ | ●●● | ○○○ | ●●● | ○○○ | 正常 | 半雙工/10 Mbps |
○●○:閃爍 ●●●:常亮 ○○○:不亮 ●○●:有規(guī)律閃爍
●○●:ACT燈有規(guī)律閃爍的解讀
四、樹莓派如何安全關(guān)機重啟
選擇有很多一行一個關(guān)機方法:
sudo shutdown -h now
sudo halt
sudo poweroff
sudo init 0
重啟方法:
sudo reboot
shutdown -r now
shutdown -r 18:23:52 #定時重啟在18點23分52秒關(guān)閉
五、編號規(guī)范
樹莓派和普通電腦不一樣的地方在于它還帶了17個可編程的GPIO(General Purpose Input/Output),可以用來驅(qū)動各種外設(shè)(如傳感器,步進電機等)。但GPIO的編號方法有些混亂,不同的API(如wiringPi,RPi.GPIO等)對GPIO的端口號編號并不一樣,下面則用圖表標明了對應(yīng)的叫法,這樣在看程序例子的時候可以確定物理是哪個接口。
GPIO庫
- wiringPiC,有Perl, PHP, Ruby, Node.JS和Golang的擴展,支持wiringPi Pin和BCM GPIO兩種編號
- RPi.GPIOPython,支持Board Pin和BCM GPIO兩種編號
- Webiopi,Python, 使用BCM GPIO編號
- WiringPi-Go, Go語言,支持以上三種編號
編號規(guī)范
- 第一列是wiringPi API中的缺省編號,
wiringPiSetup()采用這列編號 - 第二列(Name)往往是轉(zhuǎn)接板的編號
- 第三列是樹莓派板子上的自然編號(左邊引腳為1-15,右邊引腳為2-26),
RPi.GPIO.setmode(GPIO.BOARD)采用這列編號 - 樹莓派主芯片提供商Broadcom的編號方法,相當于調(diào)用了
WiringPiSetupGpio()或RPi.GPIO.setmode(GPIO.BCM)采用這列編號
| wiringPi Pin | Name | Board Pin | BCM GPIO |
|---|---|---|---|
| 0 | GPIO 0 | 11 | 17 |
| 1 | GPIO 1 | 12 | 18 |
| 2 | GPIO 2 | 13 | 21 |
| 3 | GPIO 3 | 15 | 22 |
| 4 | GPIO 4 | 16 | 23 |
| 5 | GPIO 5 | 18 | 24 |
| 6 | GPIO 6 | 22 | 25 |
| 7 | GPIO 7 | 7 | 4 |
| 8 | SDA | 3 | 0 |
| 9 | SCL | 5 | 1 |
| 10 | CE0 | 24 | 8 |
| 11 | CE1 | 26 | 7 |
| 12 | MOSI | 19 | 10 |
| 13 | MISO | 21 | 9 |
| 14 | SCLK | 23 | 11 |
| 15 | TXD | 8 | 14 |
| 16 | RXD | 10 | 15 |
Rev.2 新增的引腳:
| wiringPi Pin | Name | Board Pin | BCM GPIO |
|---|---|---|---|
| 17 | GPIO 8 | 28 | |
| 18 | GPIO 9 | 29 | |
| 19 | GPIO10 | 30 | |
| 20 | GPIO11 | 31 |

