这个小任务很简单,不过在插上面包板设置相应输入输出GPIO口的时候稍微遇到了些麻烦,当时查了很多资料,感觉说的都不是特别清楚。特此开个帖子详述一下。
首先,在树莓派终端输入如下命令:
pinout
用来查看设置输入输出对应的gpio口,示例如下:
这里的GPIOX对应于树莓派面包板上的GXX编号。
举个例子,
如果要使用GPIO22(树莓派面包板上为G22),GPIO27(树莓派面包板上为G27)两个引脚控制红绿灯,那么其面包板对应的序号分别为15,13。完整的控制红绿灯交替闪烁的代码如下:
#!/usr/bin/python
# coding:utf-8
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)#面包板引脚,使用pinout查看gipo口对应引脚
# 进行引脚的初始化,因为是低电平触发,初始时设置为高电平
#GPIO.setup(37, GPIO.OUT,initial = GPIO.HIGH) # 轰鸣器
GPIO.setup(15, GPIO.OUT) # 红,G22,GIPIO22.pinout查看端口对应board引脚为15
#GPIO.setup(13, GPIO.OUT) # 黄
GPIO.setup(13, GPIO.OUT) # 绿,G27,GPIO27.pinout查看端口对应board引脚为13
def blink():
# 通过交替输出高低电频来是LED灯闪烁
# 红灯亮3s,绿灯不亮
GPIO.output(15, GPIO.HIGH)#红灯亮
GPIO.output(13, GPIO.LOW)#绿灯不亮
time.sleep(3)
# 绿灯亮3s,红灯不亮
GPIO.output(15, GPIO.LOW)#关闭红灯
GPIO.output(13, GPIO.HIGH)#打开绿灯
time.sleep(3)
# 主程序
try:
# 循环执行
while True:
blink()
except KeyboardInterrupt:
pass
GPIO.cleanup()
实物组装图如下(我努力把接线板拍清楚了嘿嘿):