发新帖本帖赏金 10.00元(功能说明)我要提问
返回列表
打印

你想玩编程吗,想制作一款属于自己的氛围灯吗?看这里。

[复制链接]
861|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#技术资源# #申请原创# @21ic小喇叭 @21小跑堂  

  制作一款属于自己的氛围灯
效果.rar (3.32 MB)
  我们看看这个好看不?是不是很羡慕这个灯怎么这么漂亮还能变色还能渐变亮暗,是不是很神奇?有人会说啦我知道里面有很多颜色的LED灯他们不停地交替点亮就可以啦。其实你只猜对了一半,它里面确实是有LED灯,但是并不是很多种不同颜色的LED灯组成的。它里面只有一种LED灯,它就是RGBLED灯珠,它是由红色,绿色,蓝色,三种颜色的发光体组成一个灯组。这样他就可以显示出不同颜色了具体多少呢?拿好笔记本干货来啦按照计算,256级的RGB色彩总共能组合出约1678万种色彩,即256×256×256=16777216。通常也被简称为1600万色或千万色。也称为24位色(2的24次方)。是不是被震惊到了?我刚知道时也被震惊到了。可是为什么我们感觉没有看到过呢?其实啊是我们的眼睛很难分辨出这么多种颜色的。所有我们通常会认为颜色只有常用的几十种。可是RGBLED灯发光体我们知道了我们怎么让它为我所用让它工作呢?其实有很多种方法,比如说直接去买一款可调色RGB灯带或者可变色的七彩音响,也可以买一个可以调色的LED灯回来玩。可是我个人认为那样的话只能体验到消费和使用的乐趣。我会选择自己去试着制作一款只属于我自己的独一无二的可变色LED灯,这样不光能体验到使用的乐趣,更能体会到创造过程中那满满的收获感,何乐而不为?开始和我试着玩起来吧。
   由于家里没有找到合适的灯珠这里就用一个ESP32-C3开发板来当硬件。(没有这款开发板的小伙伴也没关系,我们可以找个RGBLED灯和开发板连起来即可。因为原理是一样的),软件继续使用米思齐来进行编程。
RGBLED灯的封装和驱动模式有很多,有四角直插的,还有四角贴片六角贴片的等。还分为共阳极和共阴极。这个就不用解释大家都能了解。有需要深入了解的请搜索RGB灯珠进行详细的学习。
因为我这款是板载共阴极RGBLED灯,我们只需要去看这款开发板的图纸即可。图纸上是这么标出的,三号引脚是红色,四号引脚是绿色,五号引脚是蓝色。怎么让它亮呢?还让变色呢?别着急,我们先把他们看成是三个LED灯并联在一起,我们先试着点亮这三个颜色的LED 。我们分别将三四五号引脚输出设为高试试。

红色绿色蓝色均点亮了。我们将三个引脚全部拉高同时点亮三个颜色会怎么样?

看我们得到了一个白色的灯珠。我们都知道除了红绿蓝三基色其他颜色都是通过组成得来的,我们先试着组成几种颜色比如说黄色吧,黄色就是由绿色和红色组成,就是绿色+红色=黄色,再比如紫色就是红色+蓝色=紫色。可是就只有三种颜色我们再怎么组合也组不出来1600多种色彩啊?别急这里就又有干货啦,通过调整模拟量输出来调整光的亮度不就完了,这样每一种颜色就可以有256种颜色,组合起来不就是1600多万了吗。可是颜色这么多么我怎么知道啥颜色组成啥颜色呢?别急这是我给你准备好的我用的资料,你也可以在网上自己搜索RGB颜色对照表。

   
颜色有啦我们怎么让他渐变呢,这就需要用到我们刚刚提到的,也就是之前学过的模拟量啦,
我们通过改变模拟量来控制小灯的亮灭这样不就可以达到小灯的呼吸效果了吗?可是我们总不能自己用手去不断地调整模拟量的输入吧?
今天我们再来认识一个新朋友就是它闪亮登场掌声欢迎。
我们先试着让一种颜色达到渐变这种效果,也就是网上说的呼吸灯。要我说还得感谢米思齐,它绝对是小白的好伙伴,学习物联网爱好者的福音,要不我怎么会知道变量呢。我们可以设置一个变量I让变量值从0-255逐步增加写好后我们先控制一个小灯让他逐渐变量,就黄色吧,编写完是这样的。
我们写入开发板试试效果。写入成功啦。可是我们看小灯直接就点亮了啊?他咋那着急呢?理论没问题啊?其实啊是因为我们的单片机运行速度太快啦我们根本没法看出来,那怎么办呢?对啦小伙伴肯定有猜到的就是加入延时让那个程序慢一点不就行啦?我们先试试10毫秒怎么样。
程序写好啦,看看效果,嗯小灯逐渐变到最亮就不变了。还是没有达到渐变效果啊只变亮啦,没变暗啊,别着急啊我们再写个减小的不就行啦。
编写完写入开发板注意这里是减小所以步长设为-1.如果你感觉变得太快或者太慢你可以试着改变延时时间。。试试咋样?不错吧渐变完成啦。如果你想更多的颜色怎们办呢那就多编写几个循环的渐变程序即可。我们从中间先选择七个颜色渐变试试?1红色,2绿色,3蓝色,4青色=绿色+蓝色5紫色=红色+蓝色,6黄色=红色+绿色,7白色=红色+绿色+蓝色。效果不错吧,可是我又想让他不光会呼吸还能让他越亮越快点怎么办?有小伙伴说啦我们改变变量的步数让他快点走完:也有的小伙伴说啦我们改变延时时间缩短延时的时间也能让小灯越闪越快。确实是个好办法,可是我们总不能搬着电脑每次想让他变快就改写延时时间或者步长写入开发板?那怎么办呢?对啦我们今天不是学习变量了吗?我们把延时时间也设置成一个变量不就行啦。切忌上边已经有一个变量I了我们在设置变量就不能命名为I了。我这里命名为L越闪越快肯定是时间越来越少所以步长是-1.程序写好啦我们写入开发板试试。

是不是更好看啦。
好啦我们总结下今天重要内容吧:
1 RGBLED灯的引脚颜色以及颜色的组成和应用;
2 变量的应用,什么是变量值什么是步长编程中如何设置;
3 当有不同的变量时要用不同的名字代替。
简单吧,好玩吧,我们可用它做氛围灯,音响都行,只要你想。记住只要多学多练一定会成功地,加油。小白不会一直是小白,菜鸟努力终将飞上蓝天。让我们一起努力,加油我们是最棒的。如果你也和我一样也是小白,也想学习物联网,也想提升自己学习编程,那就和我一起学起来吧,我们共同进步互相关心,鼓励,学习,让学习提升的路上不孤单。
大多数人都会选择安逸,可是我们不想做大多数人,我们不想超过任何人,我们只想超越昨天的自己。我们拒绝躺平,我们要不断地提升自我,超越自我。那样成功离我们还会远吗?
RGB.rar (3.91 KB)


使用特权

评论回复

打赏榜单

21小跑堂 打赏了 10.00 元 2022-09-21

相关帖子

发新帖 本帖赏金 10.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

76

主题

474

帖子

10

粉丝