龙空技术网

DIY一个彩色LED温度计(下)

尹一格 112

前言:

此刻同学们对“温度计flash动画”大体比较关心,朋友们都想要分析一些“温度计flash动画”的相关文章。那么小编同时在网摘上搜集了一些关于“温度计flash动画””的相关内容,希望姐妹们能喜欢,我们快快来学习一下吧!

书接上回,前面我们已经搭建好电路,并成功读取测量到的温度值,今天,我们要将温度值用彩色LED表示出来。

不论用直线LED还是环形的,我们首先要明确一点,不可能将0 ~ 50度的温度值找50个LED显示出来。不说50个LED是多长,就是看温度时一个个数也费劲。因此,我们需要更聪明的方法来显示。那么,有几种方案可供考虑:

1 用LED拼成7段数码管的8字形,来显示温度。如用此方案,还不如直接用现成的数码管显示。

2 按数字进制加权,分各位和十位两组LED,一组5个,一组10个。这是个办法。

3 只使用10个LED,用颜色区分十位数,也就是将0 - 50度分成5个区间,0 ~ 9度,10 ~ 19度,...,40 ~ 49度。不同的区间使用不同的颜色显示各位数。此方案使用LED数最少,而且,从颜色上就能一眼看出现在温度大致是多少,十几度,二十几度?我们要采用此方案。

当然,聪明的朋友也许还能想出其他的好办法。我们今天就以第三方案来显示温度。首先,我们将温度分成5个区间,那么现在要确定一下各个区间的颜色,以下是我这定的区间颜色:

确定完颜色,那么,下一步,我们要开始构架程序了,关于彩色LED的显示请参考前面的教程,这里就不再赘述了。主程序第一步,要导入所使用到的库:

1-5行导入必要的库和驱动。

13-16行分别实例化温度传感器(ds)和彩色LED(ring)。其中,LED的ring指明了LED链的长度为10个LED。

18行定义了10个LED的初始颜色值,每个颜色值按照(红,绿,蓝)定义。初始的颜色是我随意指定的,可用于测试。

此时,可将此程序通过控制台输入并执行,如果没有报任何错误,最后可通过执行:

检验是否按照data中设定的颜色显示了。

接下来,我们要自定义一个函数,用于执行将指定的颜色填入到data中,并且10个LED中只填写我们指定的个数,剩下的要设置成黑色(不亮)。这样,我们就可以按照温度值中的各位指定亮的LED数,而亮的颜色由我们指定。

以前讲过,定义函数的方法:

def 函数名(参数):

语句1;

....

现在,我们就来学习定义这个函数吧:

我们定义了一个名为setColor的函数,有两个参数,n和color。参数n就是指定要亮几个LED,参数color则指明了LED亮什么颜色。

注意,这里的参数n取值0 ~ 9,因此,在0的时候,实际上是要亮一个LED的,n=1时,亮2个LED,依次n=9时,10个LED全亮。

同样,将这个函数输入后,可通过执行42,43两行的命令来检查函数的执行效果。

通过,执行后,我发现,原来设定的颜色值有很大的偏差,在电脑屏幕上和直接LED发出的光,是不同的,这里提醒大家,LED非常刺眼,请使用白纸盖上,否则程序还没调完,我们的眼睛先完蛋了。那么,正是由于LED直接发出的强光,使颜色并不强烈,因此我们需要在这里动白纸盖上的情况下,找到令我们满意的5中颜色。后面,我使用的就是调整后的颜色值,整体都降低亮度,并加强单色颜色值。

测试完这个函数后,还需要再定义一个函数,是直接完成温度值的显示,也就是,我们给定温度值,这个函数直接再10个LED上显示出来。函数定义如下:

函数名为showTemperature,只有一个参数:温度值val。我们用if语句将温度值划分了5个区间,提取个位数,按照不同区间的颜色调用了之前定义的setColor()函数。同样,输入完这个函数后,可使用60行的语句直接调用此函数,指定不同的温度值,检验函数的执行情况。这里提示一下,执行showTemperature(-1)可以关掉所有LED。

好了一切准备就绪,我们知道怎样读取温度值了,有知道如何将温度显示出来了。那么主程序也就呼之欲出了。当然还是无限循环了,再循环中,重复做两件事:测量并读取温度值,显示温度值。主程序循环如下:

So easy吧!注意,再转换和读取温度值之间要延时(等待)1000ms。

完整的程序如下:

续1

续2

续3

续4

最后,我们将程序写入到名为temp.py的文件,考入FLASH盘中后,先使用:

执行检验。如果没有什么问题,可设置成上电启动,及修改main.py文件,将上面的命令加入到main.py文件中去。

现在,我们的uPyBoard板子加电或复位后,都会自动运行这个温度计程序。用手捏住温度传感器的黑色塑料部分,可看到LED的变化。

【演示视频】

最后的最后,现在剩下的任务就是需要找一个壳子,将温度计安装进去,这里有两个建议:温度计不用时刻工作(很耗电且LED太亮),我们也不会经常去关心温度的,因此安装一个电源开关是个好办法,建议选用一个不带锁定的开关,用手指一按,就打开电源,显示温度,松开手指就断电。

另一个建议,就是要在LED上安装一层覆盖物,如厚一些的白纸,薄的PVC板等,在其上LED对应位置写下0 ~ 9的数字。比如这样:

至于设计成什么样子就看个人发挥了。覆盖物的厚度可根据实际情况决定。

好了,属于我们自己的独特温度计就制作完成了,祝大家玩得愉快。如果有好的作品,可在微信中留言,我可已给大家展示出来。

请继续关注:创客DIY乐园(MakerDIY-Park),您的关注就是我前进的动力。

标签: #温度计flash动画