第二课 七彩轮回灯
Ruff 开辟套件第二课正式开讲啦!
一起来看看我们此次会有什么新颖内容!
谁将上台:
LED 模块
你将学会
Ruff 中的周期挪用函数
设定 LED 模块色彩
引见
七彩轮回灯中:
LED 灯轮回发出“蓝绿青红紫黄白”七种光。
元件
Ruff 开辟板
LED 模块
外设增加
向项目中增加名为“LED”的 LED 模块,model 挑选 KY-016,驱动版本挑选最新版。
代码
色彩的 RGB 值
为了轻易编写代码,起首我们将色彩和 RGB 值一一对应。
建立一个 color 对象
将七种色彩增加为 color 的属性,属性值赋为对应 RGB 值。
罕见色彩和 RGB 值对照表
色彩和 RGB 值一一对应实例:
var color = Object.create({ blue: 0x0000ff, green: 0x00ff00, purple: 0xff00ff, cyan: 0x00ffff, yellow: 0xffff00, white: 0x000000, red: 0xff0000 });
假如想知道更多色彩的 RGB 值,能够到这里。
发出七彩色
接下来我们处理:怎样让 LED 模块按递次发出七彩色。
这里运用LED 模块设定色彩的函数
setRGB
,语法以下:setRGB(rgb, [callback])
rgb
值是由三个数字构成的数组,或者是一个24位二进制数。
运用延时函数
setTimeout
设定发光时候。按递次发出七彩色实例步骤和代码以下:
设定 LED 发蓝光;
500ms 时 ,设定 LED 发绿光;
1.0s 时 ,设定 LED 发青光;
1.5s 时,设定 LED 发红光;
2.0s 时,设定 LED 发紫光;
2.5s 时,设定 LED 发黄光;
3.0s 时,设定 LED 发白光;
$('#led').setRGB(color.blue);
setTimeout(function () {
$('#led').setRGB(color.green);
}, 500);
setTimeout(function () {
$('#led').setRGB(color.cyan);
}, 1000);
setTimeout(function () {
$('#led').setRGB(color.red);
}, 1500);
setTimeout(function () {
$('#led').setRGB(color.purple);
}, 2000);
setTimeout(function () {
$('#led').setRGB(color.yellow);
}, 2500);
setTimeout(function () {
$('#led').setRGB(color.white);
}, 3000)
周期挪用函数
接下来我们处理怎样轮回发光的题目。
轮回发光能够经由历程根据肯定周期挪用发光函数完成。
这里我们运用
setInterval
函数完成周期挪用,setInterval
函数语法以下:setInterval(表达式, 周期时候)
setInterval() 要领可根据指定的周期(以毫秒计)挪用表达式。
想相识更多有关
setInterval
函数的内容,能够到这里相识。
末了,
建立 color 对象;
将发出七彩色代码放入周期挪用函数中,设定挪用周期 3.5s。
功德圆满~
快去本身着手完成吧!
完全代码
'use strict';
$.ready(function (error) {
if (error) {
console.log(error);
return;
}
var color = Object.create({
red: 0xff0000,
blue: 0x0000ff,
green: 0x00ff00,
purple: 0xff00ff,
cyan: 0x00ffff,
yellow: 0xffff00,
white: 0x000000
});
var light = setInterval(
function () {
$('#led').setRGB(color.blue);
setTimeout(function () {
$('#led').setRGB(color.green);
}, 500);
setTimeout(function () {
$('#led').setRGB(color.cyan);
}, 1000);
setTimeout(function () {
$('#led').setRGB(color.red);
}, 1500);
setTimeout(function () {
$('#led').setRGB(color.purple);
}, 2000);
setTimeout(function () {
$('#led').setRGB(color.yellow);
}, 2500);
setTimeout(function () {
$('#led').setRGB(color.white);
}, 3000)
}, 3500);
});
课后练习
交通红绿灯
运用三个 LED 模块,
LED 模块组按图中历程轮回运转: