使用树莓派肯定少不了一些外设,这些外设基本都是通过树莓派上带有的GPIO引脚进行连接,GPIO(General-purpose input/output),通用型之输入输出的简称。说的直白一些就是一些可以连接外部设备的针脚,可以通过它们输出高低电平或者通过它们读入引脚的状态-是高电平或是低电平,比如连接一些传感器或者控制器之类的设备,以下为树莓派2B的GPIO接口图说明:
使用方式
这里主要只介绍通过python对GPIO进行控制,当然也可以通过其他编程语言进行GPIO的操作,
树莓派自带相关包,导入GPIO相关模块:
import RPi.GPIO as GPIO
也可以包含在try exception语法中。
针脚编码方式
树莓派有两种引脚编码方式:
1. BOARD编号,这和树莓派电路板上的物理引脚编号相对应。不用担心树莓派的版本问题。
2. BCM规则,是更底层的工作方式,它和Broadcom的片上系统中信道编号相对应。对于不同的树莓派版本,编写的代码可能无法通用。
设置方式:
GPIO.setmode(GPIO.BOARD)
# or
GPIO.setmode(GPIO.BCM)
关闭警告信息
某个引脚被设置了非默认值,在使用这个引脚的时候会提示异常,可以使用一下函数关闭异常信息:
GPIO.setwarnings(False)
引脚模式设置:
# 输入模式
GPIO.setup(channel, GPIO.IN)
# 输出模式
GPIO.setup(channel, GPIO.OUT)
# 为输出的引脚设置默认值
GPIO.setup(channel, GPIO.OUT, initial=GPIO.HIGH)
释放引脚使用
GPIO.cleanup()
引脚值
# 高电平
GPIO.HIGH
# 低电平
GPIO.LOW
设置引脚值
GPIO.output(channel, state)
channel
为引脚编号,可以为python的list类型同时传入多个引脚,state为要设置的引脚状态,也就是上面说的高低电平。
读取引脚状态
GPIO.input(channel)
返回引脚的高低电平值