工欲善其事,必先利其器。前面几节,我们详细介绍了使用Python代码中的函数功能。现在让我们回到最初的目标,使用函数来改变灯带颜色。
一、图形化程序中的颜色刷函数(不带参数)改变灯带颜色
1、创建颜色刷函数(不带参数)
在这个函数中,我们有两个形参,一个是变量当前颜色,另一个是变量等待时间。我们会在主程序中为这两个参数赋值,就可以动态改变灯带的颜色了。
2、主程序
这里,我们为当前颜色变量设置的是色,给等待时间变量设置了0.05秒。
五、图形化程序中的颜色刷函数(带参数)改变灯带颜色
1、创建颜色刷函数(带参数)
2、主程序
三、Python程序中的颜色刷函数(带参数)改变灯带颜色
在上面的图形化编程中我们发现,使用带参数的函数比不带参数的函数更为简练,所以接下来,我们直接使用带参数的函数。
1、在上面的函数中,函数名为colorWipe(颜色刷),它有三个参数,第一个参数是灯带,第二个参数是颜色,第三个参数是等待时间,这里的等待时间我们设置了一个默认值,也就是说,在后续函数的调用中,如果我们提供了新的等待时间,就执行新的等待时间,如果我们没有提供新的等待时间,函数将使用默认值0.1。
2、创建一个0-59的循环。
3、使用color参数为第i个灯设置颜色。
4、灯带刷新显示。
5、使用waitTime参数设置等待时间。
6、使用color(0,0,0)为第i个灯设置颜色,也就是熄灭第i个灯。
7、灯带刷新显示。
8、使用waitTime参数设置等待时间。
四、Python程序中的完整程序改变灯带颜色(带参数)
1、程序初始化
第1行代码是导入时间包。
第2行代码是从rpi_ws281x库中导入所有的包。这里的*指的是库中所有的包。
第3行代码是设置灯带的数量为60
第4行代码是设置灯带的接口使用18号
第5行代码是实例化一个灯带类,使用18号接口,控制60个灯。
第6行代码是灯带开始运行。
2、定义颜色刷函数(带参数)改变灯带颜色
3、调用函数改变灯带颜色
这里我们连续4次调用颜色刷函数,使用了不同的颜色(红、绿、蓝、白)和等待时间(0.1、0.15、0.2、0.25)。特别注意,第1次我们没有指定等待时间变量,程序将使用默认值。
4、完整程序如下
本节课我们综合运用了函数的知识及灯带的颜色控制,难度较大。所有的知识在前面的课中都有详细讲解,本节课重点是从整体上把握的各部分程序的作用,具体每一部分的实现方法,请参见前面几节。