树莓派的优势在于Liunx操作系统加GPIO口,其中IO口时物联网组成中不可缺少的,高低电平的控制是很有必要的存在,再加有python的支持,玩转GPIO相对就容易多了
管脚编号
BCM: 编号侧重 CPU 寄存器,根据 BCM2835 的 GPIO 寄存器编号。
wpi: 编号侧重实现逻辑,把扩展 GPIO 端口从 0 开始编号,这种编号方便编程。正如下图 WiringPi 栏。
引脚物理编号排序:方形焊接口为1脚,两两为序,先短后长
配置GIPO为输出
1、首先对 RPi.GPIO 进行设置
|
2、设置某个输出针脚状态为高电平:
|
3、设置某个输出针脚状态为低电平:
|
4、程序结束后进行清理
|
注意,您可以读取使用 input() 函数设置的输出通道的当前状态。例如对输出进行切换:
|
配置GIPO为输入:
1、首先对 RPi.GPIO 进行设置:
|
2
、判断输入电平状态:
GPIO.input(12)# 返回0/GPIO.LOW/False/1/GPIO.HIGH/True
|
3、上下拉配置:
GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_UP)//上拉 # 或者 GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)//下拉 |
4
、轮询检测:
|
5
、边缘检测1:
GPIO.RISING(上升)、GPIO.FALLING(下降)、GPIO.BOTH(两者均可)
|
6
、边缘检测2:
|
7、程序结束后进行清理
GPIO.cleanup() #释放引脚 |
配置GIPO的PWM输出:
1、首先对 RPi.GPIO 进行设置:
import RPi.GPIO as GPIO GPIO.setmode(GPIO.BOARD) GPIO.setup(12, GPIO.OUT)#输出 p = GPIO.PWM(12, 50) #创建一个 PWM 实例:通道,频率(一般为50HZ,可为100HZ) |
2、启用 PWM:
p.start(dc) # dc 代表占空比(范围:(熄灭)0.0 <= dc >= 100.0(最亮)) |
3、更改频率:
p.ChangeFrequency(freq) # freq 为设置的新频率,单位为 Hz |
4、更改占空比:
p.ChangeDutyCycle(dc) # 范围:0.0 <= dc >= 100.0 |
5、停止PWM:
p.stop() #停止 PWM GPIO.cleanup()#释放 |
一次性设置多个引脚
|