参考: https://blog.csdn.net/weixin_44415639/article/details/114600919 https://blog.csdn.net/chenbo163/article/details/78716269 https://blog.51cto.com/u_11643026/4291142 这里文章用的编程引脚是物理引擎代号BOARD
1、GPIO控制包安装
参考:https://blog.csdn.net/weixin_42078116/article/details/119329032 gpio -v 版本2.52才行,2.50查看gpio readall输出报错 需要单独安装解决:
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio readall
2、代码控制红绿灯和有源轰鸣器
1)红绿灯 GND引脚用来接地,(GND引脚插在9,红色对应插在11;黄色插在13,绿色插在15) 2)有源轰鸣器 3个引脚,GND引脚用来接地,VCC引脚用来接3.3V的电源,I/O引脚用来GPIO编程控制蜂鸣器;(GND引脚插在39,这里VCC对应插在17;I/O引脚插在37) 有源轰鸣器,因为是低电平触发响,初始时设置为高电平GPIO.HIGH就可以不响
#!/usr/bin/python
#coding:utf-8
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
# 进行引脚的初始化,因为是低电平触发,初始时设置为高电平
GPIO.setup(37, GPIO.OUT,initial=GPIO.HIGH) #轰鸣器
GPIO.setup(11,GPIO.OUT) #红
GPIO.setup(13,GPIO.OUT) #黄
GPIO.setup(15,GPIO.OUT) #绿
def blink():
#通过交替输出高低电频来是LED灯闪烁
#红灯亮10s
GPIO.output(11,GPIO.HIGH)
time.sleep(10)
GPIO.output(11,GPIO.LOW)
time.sleep(0.5)
#黄灯亮3s
GPIO.output(13,GPIO.HIGH)
time.sleep(3.0)
GPIO.output(13,GPIO.LOW)
time.sleep(0.5)
# 绿灯亮10s
GPIO.output(15,GPIO.HIGH)
time.sleep(10)
GPIO.output(15,GPIO.LOW)
time.sleep(0.5)
# 黄灯亮3s
GPIO.output(13,GPIO.HIGH)
time.sleep(3.0)
GPIO.output(13,GPIO.LOW)
GPIO.output(37,GPIO.LOW)
time.sleep(3.0)
GPIO.output(37,GPIO.HIGH)
#主程序
try:
#循环执行
while True:
blink()
except KeyboardInterrupt:
pass
GPIO.cleanup()
|