资讯专栏INFORMATION COLUMN

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

URLOS / 2623人阅读

摘要:第二课七彩循环灯开发套件第二课正式开讲啦一起来看看我们这次会有什么新鲜内容谁将登场模块你将学会中的周期调用函数设定模块颜色介绍七彩循环灯中灯循环发出蓝绿青红紫黄白七种光。最后,创建对象将发出七彩色代码放入周期调用函数中,设定调用周期。

第二课 七彩循环灯

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

一起来看看我们这次会有什么新鲜内容!

谁将登场:

LED 模块

你将学会

Ruff 中的周期调用函数

设定 LED 模块颜色

介绍

七彩循环灯中:

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

元件

Ruff 开发板

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/80090.html

相关文章

  • 【物联网】JavaScript快速开发智能硬件应用—ruff开箱篇(一)

    摘要:前言最近听到有小伙伴们对感兴趣,我也跟着加入了大军中,本篇文章展示了的开发套件,以及入手后的小,后续持续更新参考文献官网思否首页开箱如同官网展示的配件如下上手官方我开发时使用的是系统,所以下载安装包创建项目文件,在当前目录执行下面命令查看 前言 最近听到有小伙伴们对ruff感兴趣,我也跟着加入了大军中,本篇文章展示了ruff的开发套件,以及入手后的小demo,后续持续更新参考文献ruf...

    NeverSayNever 评论0 收藏0
  • [ Ruff 开发套件 ] Lesson 4 - LCD 温湿度计

    摘要:向项目中添加名为的温湿度传感器模块,选择,驱动版本选择最新版。使用温湿度传感器模块的函数获取当前湿度温湿度模块的函数用法如下设置光标到第二行第二个字符处打印和当前湿度使用函数每秒钟重新检测和显示当前湿度。 showImg(https://segmentfault.com/img/bVC3uE?w=2552&h=1418); 谁将登场 LCD 模块 温湿度传感器 你将学会 ...

    since1986 评论0 收藏0
  • Ruff 上的 ZigBee 应用

    摘要:组包解包和解析以开关灯的控制协议来看的组包过程包的首尾是开始和结束标志。前三个字段分别是之后就是具体的控制数据。由于要在包内容里避免使用开头或者结尾的标志字段,所以需要对源包内容进行转义,转义示意如下。我们就可以接入上面展示的灯和开关了。 原理简介 这个智能控制系统采用 ZigBee 作为无线通信协议。在支持 OpenWRT 系统的路由器上刷入 Ruff,利用 ZigBee-USB d...

    miracledan 评论0 收藏0
  • Ruff 和 Raspberry Pi 的区别是什么?

    摘要:树莓派最初是为了教学目的提供的小电脑,其目标用户是初接触电脑的使用者。从硬件配置上说,树莓派是有绝对优势的,开发套件要弱一些。举个例子,如果采用树莓派做为起点,有可能运行时会选择,而是很难向更小的硬件上移植的。 简而言之,Ruff 是一套软件,树莓派是一个硬件,只不过,Ruff 是为了开发硬件应用而设计的。 从设计初衷谈起 Ruff 是为了开发应用而设计,所以,其目标用户是开发者。 ...

    caspar 评论0 收藏0
  • [一] Ruff之初体验

    摘要:实现项目的配置初始化,这个有些像我们在写模块的时候初始化配置,其实这里也是在初始化项目配置。 引言 首先简单说一下Ruff,Ruff是一个JavaScript运行时,专门为开发硬件而设计,其底层实现是基于Node.js,让我们可以使用JavaScript语言去实现自己想要的硬件功能设计,下面就是从零开始接触和学习使用Ruff showImg(https://segmentfault.c...

    Youngdze 评论0 收藏0

发表评论

0条评论

URLOS

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<