发新帖

[试用评测] 【Superbit入门套件试用体验】+ 1600万色种颜色

[复制链接]
发表于 2019-1-21 22:55:20
| 165 查看 | 0 回复
    上一张帖子中我们实现了WS2812的流水灯,这一贴我们让灯变下颜色。
    牛顿在三百多年前用三棱镜取得了太阳光光谱,揭开了光波动性的篇章,人们开始探讨光的本质,依靠太阳光的反射,我们可以看到大自然中的各种颜色,反过来,光源要发出多种颜色的光,那必须覆盖足够宽的光谱,工程师最后选取了红绿蓝三原色来作为光源的基本颜色,通过RGB三颜色不同比例的混合,就能够组合成多彩的颜色。
    QQ截图20190121221913.jpg
    WS2812B正是利用了这样的原理来实现多色彩灯的,RGB三种颜色可以各自产生8bit宽度的亮度,再将这三原色组合,理论上讲,有256 x 256 x 256 = 1677216种颜色。
    先奉上WS2812B的datasheet:WS2812B datasheet
    WS2812B是一颗数字IC,根据传输数据的不同,可以分为三种数据:1 code,0 code,ret code,前两者采用占空比区分,后者为一个大于50us的低电平,如下图:
    QQ截图20190121223339.jpg
    信号传输时,每次传输24bit数据(RGB各8bit),如有级联模式,则需根据级联数量添加ret code,先传输最远端灯的数据,按顺序添加数据,ret code一次,WS2812B自动将数据往下传一次,实现多级连接。superbit底板上有四颗WS2812B彩灯,使用了级联方式,用一个IO口驱动。
    QQ截图20190121223403.jpg
    得益于microbit良好的生态环境,代码积木环境已经集成了RGB彩灯的积木,我们用如下代码实现1,2,3号灯随机显示不同亮度RGB三色,4号灯将前三种颜色组合起来:
    QQ截图20190121224518.jpg
    该代码积木中,先初始化配置4颗彩灯,随机设置RGB三色亮度,再把灯的亮度赋给四颗灯,注意需要led show这个积木,将颜色显示出来,延时1s,切换另一个颜色。
    以下为效果图:
    QQ截图20190121225342.jpg
    由于彩灯亮度太亮了,所以我拿纸巾做了下柔光。。。。。。

我要点赞 0

举报

您需要登录后才可以回帖 登录 | 立即注册