【Raspberry Pi入门系列4】GPIO

2016-03-151.4万
AI 快速预览详细 收起
本文是Raspberry Pi入门系列的第四篇,主要讲解了GPIO的基本概念和编程方法。文章介绍了GPIO的两种编号方式:GPIO Numbering和Physical Numbering,并提供了Python编程示例,如导入RPi.GPIO库、设置模式和点亮LED灯。此外,还简要介绍了GPIO引脚支持的I2C、UART和SPI协议。通过本文,初学者可以快速掌握Raspberry Pi的GPIO编程基础。
The Raspberry Pi Platform and Python Programming for the Raspberry Pi课程笔记
详细地址戳这个:
https://www.coursera.org/learn/raspberry-pi-platform/home/week/4

这一周讲到了GPIO。

GPIO,顾名思义,就是General Purpose Input / Output。

在我使用的树莓派2代B上,它有40个引脚。

这两排的引脚有两种numbering方式:
1. GPIO Numbering:

2. Physical Numbering:

(一般来说GPIO numbering比较难记,不过用C编程的话好像只能选这种模式 = =。)
在使用Python对它们进行编程的时候,就有两种模式可以选择。
当然,首先我们要先导入GPIO库。
  1. <font size="2" face="微软雅黑">import RPi.GPIO as GPIO</font>
复制代码
按理来说默认情况下raspbian是已经安装好了GPIO库的,如果发现程序报错可以检查一下上述代码有没有字拼错,大小写也算。
如果最后发现确实是库没有安装的话参考下面这篇教程(不过GPIO官网挪位了,下载的时候修改一下地址就好):
http://wiki.jikexueyuan.com/project/raspberry-pi/gpio.html

然后在Python中我们就可以这样选择一种模式:
  1. <font size="2" face="微软雅黑">GPIO.setmode(GPIO.BOARD)     #  Physical Numbering
  2. </font>
复制代码
或者
  1. <font size="2" face="微软雅黑">GPIO.setmode(GPIO.BCM)         #  GPIO Numbering</font>
复制代码
这些GPIO口是multi-function的,除了当做一般的输入输出之外,还有其他用途。



其中就有支持I2C协议(快,距离有限)的:
SDA     data
SCL      clock

UART协议的:
TXD
RXD

SPI协议的:
SPIO_MOSI     master out slave in
SPIO_MISO     master in slave out   
SPIO_SCLK      clock all the device share
SPIO_CEO_N   chip enable; negative
SPIO_CE1_N   

关于这些引脚的详情戳官网链接:
http://pinout.xyz/pinout/pin8_gpio14

但Python的GPIO库貌似并不支持这些协议,因此如果有这些需求,可以参考下面的教程下载wiringPi或者BCM2835 C Library:
http://wiki.jikexueyuan.com/project/raspberry-pi/gpio.html

下面就是使用PYTHON点亮LED灯的例子(.py文件)了:
  1. <font size="2" face="微软雅黑">import RPi.GPIO as GPIO               #导入GPIO库
  2. import time                                   #导入Python的time库
  3. GPIO.setmode(GPIO.BOARD)        
  4. GPIO.setup(13, GPIO.OUT)             #将物理引脚13设为输出
  5. while True:                       
  6.         GPIO.output(13, True)
  7.         time.sleep(1)
  8.         GPIO.output(13, False)
  9.         time.sleep(1)</font>
复制代码
其实和Arduino还挺相似的不是。while True之前的部分开始时执行一次,while True的部分loop执行。(如果是输入的话把OUT改成IN,output改成input就好啦。)
至于LED的连接?参考Arduino。

下面是PWM的用法:

【Raspberry Pi入门系列4】GPIO图1【Raspberry Pi入门系列4】GPIO图2【Raspberry Pi入门系列4】GPIO图3
对于这些引脚的正确使用方式还得在日后的多多实践中得出真知。 - - 嗯刷完这一轮的感觉就是这样。
OK至此对树莓派的入门基本结束。
下一轮是树莓派的网络配置。

Screen Shot 2016-03-16 at 1.53.21 AM.png (260.19 KB, 下载次数: 8395)

Raspberry Pi GPIO入门教程 · 树莓派编程_image_3.webp

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(7)
yoyojacky
yoyojacky
gpio好好搞搞,传感器全靠他...
iooops
iooops
作者
你膜拜我的树莓派还打他……
nxcosa
nxcosa回复iooops
我去 这是打人的呀 没注意 我说我是后面那个膜拜的人 没注意到前面的人还有个小手在打人
凌风清羽
凌风清羽
评论内容
iooops
iooops
作者
回复凌风清羽
评论内容
nxcosa
nxcosa
NB 膜拜
iooops
iooops
作者
地板
iooops
iooops
作者
板凳
iooops
iooops
作者
沙发
- 没有更多了 -