[ Ruff 开发套件 ] Lesson 2 - 七彩循环灯

第二课 七彩循环灯

图片描述

Ruff 开发套件第二课正式开讲啦!javascript

一块儿来看看咱们此次会有什么新鲜内容!html

  • 谁将登场:java

    • LED 模块数组

  • 你将学会less

    • Ruff 中的周期调用函数函数

    • 设定 LED 模块颜色spa

介绍

七彩循环灯中:.net

  • LED 灯循环发出“蓝绿青红紫黄白”七种光。code

元件

  • Ruff 开发板htm

  • LED 模块

外设添加

  • 向项目中添加名为“LED”的 LED 模块,model 选择 KY-016,驱动版本选择最新版。

代码

  • 在编写代码以前须要完成 Ruff 开发板的设置链接、硬件连线。若是有疑问你们能够到这里了解。

  • 想了解 Ruff 应用开发步骤和模型,能够到这里

颜色的 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 设定发光时间。

    • 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 模块组按图中过程循环运行:

相关文章
相关标签/搜索