【树莓派+python】实现三色呼吸灯+按钮切换
后台-插件-广告管理-内容页头部广告(手机) |
文章目录
- Traffic-lights
- 电路连接
- 在这里插入图片描述
- 代码实现
- 算法设计流程图
- python环境配置
- 三色呼吸灯实现
- 三色呼吸灯+按钮控制
Traffic-lights
电路连接
【元件实物图】
- 图1为Button,按钮的状态控制SIG引脚的电平值。
- 图2为RGB灯,有三种颜色:R-red、G-green、B-blue。三种颜色需由不同的GPIO引脚控制
- 图3为连接好按钮、RGB灯的树莓派
【GPIO引脚连线图】
【模拟连线图】
为了方便连接,RGB LED灯的三个引脚接GPIO 2、3、4,GND接GND。按钮的SIG引脚接GPIO 17, GND接GND。
代码实现
算法设计流程图
python环境配置
-
在Vscode中使用SSH连接树莓派
-
按Ctrl+Shift+~调用bash
-
在命令行中输入python -m venv myenv创建虚拟环境,其中myenv是自定义的虚拟环境名称
谢谢杨老板抓虫…之前写成pip了 -
在命令行中输入source myenv/bin/activate激活虚拟环境
-
在本次实验中需要安装以下包:
激活虚拟环境后输入以下命令安装包 pip install gpiozero pip install rpi-gpio pip install lgpio- 1
- 2
- 3
- 4
-
在命令行中输入deactivate退出虚拟环境
三色呼吸灯实现
为了实现呼吸灯,首先需要控制灯的亮度实现渐变。TrafficLights类提供参数pwm,使用PWM 调光实现亮度的渐变。PWM调光的原理如下图所示。通过占空比来改变电子元件的功率。
因此可以写出代码如下,实现效果为:RGB灯以红、绿、蓝的颜色顺序循环呼吸,每个颜色呼吸3秒
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
三色呼吸灯+按钮控制
加入按钮后。设置了一个布尔类型的breathing作为标志。当每次按下button的时候,调用button_pressed函数,当此时breathing为False,也就是当时没有在呼吸时,将breathing设为True,并调用breathe函数开始呼吸;当此时breathing为True,也就是当时在呼吸时,将breathing设为False,此时breathe函数内部每0.1秒检查一次breathing的值,此时检查为False则停止呼吸。循环进行,直到下一次按按钮。
实现效果为:
- 第一次按按钮,RGB开始以红、绿、蓝的顺序开始呼吸
- 第二次按按钮,呼吸停止
- 反复循环直至Ctrl+C退出程序
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |