0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RGB温度指示器的制作

454398 来源:工程师吴畏 2019-08-09 14:15 次阅读

第1步:你需要什么。

《从技术上讲,大多数基础产品教程通常以“Hello World!”开头。例如,甚至是一个“Blink”示例,由于您在某些时候使用过Arduino或Raspberry Pi,因此您可能已经非常熟悉它。但是我不想从头开始,因为每个人都在做同样的事情,这使得它真的有点无聊。

相反,我想从一个实际的项目想法开始。如果你愿意的话,它既简单又可扩展到更复杂的项目构想。

以下是我们需要的项目(参考Instructable本节提供的照片):

IP02 - 高级USB编程接口

CC03 - Arm Cortex M0 + Core

SW02 - VOC和气象传感器(使用BOSCH的BME680传感器)

xBUS连接器 - 启用不同xChip之间的I2C通信(x2)

xPDI连接器 - 启用编程和调试(x1)

步骤2:连接件

要将所有部分连接在一起,我们将首先从1个xBUS连接器和xPDI连接器开始。

按照我提供的图像,注意xChip的方向和连接器的位置。

在IP02和&之间。 CC03 xChips,很容易识别连接点。

对于CC03,它将是南侧。对于IP02,它将是xChip的北侧。

一旦完成,我们将在CC03 xChip的西侧添加另一个xBUS连接器。

完成?

现在,只需将SW02 xChip连接到CC03的西侧。

在我们将IP02插入笔记本电脑之前,请确保为这两个开关选择以下选项:

B (左侧开关)

选择 DCE (右侧开关)

最后,我们现在准备将IP02插入笔记本电脑并开始设置Arduino IDE。

步骤3:设置Arduino IDE

同样,在这个教程中,我假设你已经熟悉了Arduino IDE环境以及如何在开发环境中管理库。

为了这个项目的目的,我们需要两个主要的库:

arduino-CORE

SW02库

将两个库下载到桌面上的某个位置。

接下来,启动Arduino IDE 。

从主菜单中选择“草图”》“包含库”》“添加.ZIP库。..”

重复相同的过程两个库文件。

接下来,我们需要选择相关的“Board”以及“Port”。 (请注意,我还使用橙色框突出显示了必要的选项。

Board:“Arduino/Genuino Zero(原生USB端口)”

端口:“COMXX”(这应该是根据您机器上反映的COM端口。我的是使用COM31)

好吧!我知道你一直渴望进入编码,所以在下一步,这就是我们将关注的重点。

第4步:代码时间

在本节中,我将首先从已完成的项目代码中共享代码片段。最后,我将发布完整的源代码,使您可以轻松地将代码复制并粘贴到Arduino IDE源文件中。

标题文件:

#include /* This is the library for the main XinaBox Core Functions. */

#include /* This is the library for the VOC & Weather Sensor xChip. */

定义一些用于控制RGB Led信号的常量:

#define redLedPin A4

#define greenLedPin 8

#define blueLedPin 9

接下来,我们需要声明一个函数原型来传递RGB值。

void setRGBColor(int redValue, int greenValue, int blueValue);

声明SW02对象:

xSW02 SW02;

setup()方法:

void setup() {

// Start the I2C Communication

Wire.begin();

// Start the SW02 Sensor

SW02.begin();

// Delay for sensor to normalise

delay(5000);

}

现在主循环():

void loop() {

float tempC;

}

接下来,我们需要使用我们之前在程序中创建的SW02对象进行轮询,以开始与传感器芯片的通信:

// Read and calculate data from SW02 sensor

SW02.poll();

现在,我们正在读取传感器的温度读数。

tempC = SW02.getTempC();

一旦我们读完了,我们要做的最后一件事是使用一系列if 。.. else 。..控制语句来确定温度范围,然后调用setRGBColor()函数。

// You can adjust the temperature range according to your climate. For me, I live in Singapore,

// which is tropical all year round, and the temperature range can be quite narrow here.

if (tempC 》= 20 && tempC 《 25) {

setRGBColor(0, 0, 255);

} else if (tempC 》= 25 && tempC 《 30) {

setRGBColor(0, 255, 0);

} else if (tempC 》= 30 && tempC 《 32) {

setRGBColor(255, 190, 9);

} else if (tempC 》= 32 && tempC 《 35) {

setRGBColor(243, 122, 0);

} else if (tempC 》= 35) {

setRGBColor(255, 0, 0);

}

注意:如果您有兴趣知道特定颜色的相关RGB值是什么,我会记录推荐你做谷歌搜索“RGB颜色值”。有很多站点可以使用颜色选择器来选择你想要的颜色。

// If you like to, and it is optional, you can also add a delay in between polling for the sensor‘s readings.

delay(DELAY_TIME);

你可以在开始时声明DELAY_TIME常量对于程序,这样,您只需要修改它的值一次,而不是在整个程序中的多个位置。最后,我们需要控制RGB LED的功能:

void setRGBColor(int redValue, int greenValue, int blueValue) {

analogWrite(redLedPin, redValue);

analogWrite(greenLedPin, greenValue);

analogWrite(blueLedPin, blueValue);

}

最终程序

#include

#include

#define redLedPin A4

#define greenLedPin 8

#define blueLedPin 9

void setRGBColor(int redValue, int greenValue, int blueValue);

const int DELAY_TIME = 1000;

xSW02 SW02;

void setup() {

// Start the I2C Communication

Wire.begin();

// Start the SW02 Sensor

SW02.begin();

// Delay for sensor to normalise

delay(5000);

}

void loop() {

// Create a variable to store the data read from SW02

float tempC;

tempC = 0;

// Read and calculate data from SW02 sensor

SW02.poll();

// Request SW02 to get the temperature measurement and store in the

// temperatue variable

tempC = SW02.getTempC();

if (tempC 》= 20 && tempC 《 25) {

setRGBColor(0, 0, 255);

} else if (tempC 》= 25 && tempC 《 30) {

setRGBColor(0, 255, 0);

} else if (tempC 》= 30 && tempC 《 32) {

setRGBColor(255, 190, 9);

} else if (tempC 》= 32 && tempC 《 35) {

setRGBColor(243, 122, 0);

} else if (tempC 》= 35) {

setRGBColor(255, 0, 0);

}

// Small delay between sensor reads

delay(DELAY_TIME);

}

void setRGBColor(int redValue, int greenValue, int blueValue) {

analogWrite(redLedPin, redValue);

analogWrite(greenLedPin, greenValue);

analogWrite(blueLedPin, blueValue);

}

现在我们的程序准备好了,让我们来吧编程xChip!上传过程与将程序上传到Arduino板的过程完全相同。

完成后,为什么不拔掉电源插头并将其带出来进行试运行。

查看我自己在室外测试项目时创建的短暂时间视频。我还使用了PB04(双AA智能电池)xChip,当它没有连接到笔记本电脑时为项目供电,使其紧凑和移动。

我还在下一步附加了Arduino项目文件。随意下载并运行它! :)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 指示器
    +关注

    关注

    0

    文章

    251

    浏览量

    38282
收藏 人收藏

    评论

    相关推荐

    浅谈架空暂态特征型远传故障指示器

    新品—架空暂态特征型远传故障指示器—深圳鼎信生产厂家 型号:JY -DX 一、背景 随着电力系统的不断发展,对架空线路的安全运行和故障快速定位的要求越来越高。传统的故障指示器大多只能提供就地指示
    的头像 发表于 12-04 16:35 112次阅读

    线路故障指示器为什么变成红色

    线路故障指示器变成红色,通常是因为检测到了线路中的特定电气量变化,这些变化与线路故障紧密相关。具体来说,以下是一些导致线路故障指示器变红的主要原因: 1. 短路或接地故障 短路故障 :当线路中发
    的头像 发表于 09-24 11:04 428次阅读

    线路故障指示器如何复位

    线路故障指示器是一种用于监测电力线路故障的设备,它可以帮助电力维护人员快速定位故障点,从而提高故障处理的效率。复位线路故障指示器是故障处理过程中的一个重要步骤,确保设备能够恢复正常工作状态。以下
    的头像 发表于 09-24 11:01 344次阅读

    线路故障指示器工作原理是什么

    线路故障指示器是一种用于检测和定位电力系统中故障的设备,它能够帮助电力维护人员快速准确地找到故障点,从而提高电力系统的可靠性和安全性。 线路故障指示器的工作原理概述 1. 基本概念 线路故障指示器
    的头像 发表于 09-24 10:54 754次阅读

    线路故障指示器怎么判断故障点

    线路故障指示器在判断故障点时,主要通过检测线路中的电气量变化来实现。以下是一些具体的判断方法和步骤: 一、工作原理 线路故障指示器一般具备电流采集、电场测量和无线通信功能。当线路出现短路或接地故障
    的头像 发表于 09-24 10:52 658次阅读

    使用电源正常状态指示器实现输出放电功能

    电子发烧友网站提供《使用电源正常状态指示器实现输出放电功能.pdf》资料免费下载
    发表于 08-29 09:45 0次下载
    使用电源正常状态<b class='flag-5'>指示器</b>实现输出放电功能

    内置超级电容模块的故障指示器有哪些特性?

    内置超级电容模块的故障指示器有哪些特性?安装在输配电线路、电力电缆及开关柜进出线上的故障指示器在电流流通的线路中起着非常重要的作用,一旦线路发生故障,巡线人员可以利用指示灯的报警显示快速的确定故障
    的头像 发表于 06-04 09:39 453次阅读
    内置超级电容模块的故障<b class='flag-5'>指示器</b>有哪些特性?

    电力电缆故障指示器|误差探讨|行波故障定位的选项

    的影响,如温度、湿度、污染程度、振动等因素,这些都可能影响指示器的正常工作。  3. 维护不当:如果维护工作没有得到充分的重视,或者维护不及时、维护方法不当,可能导致指示器的精度下降。  4. 设备老化:随着时间的推移,设备可能
    的头像 发表于 03-28 10:49 918次阅读

    汽车制动失效指示器电路分享

    几乎 40%的事故是由于制动故障问题而发生的。通过及早发现这种情况,我们可以降低事故率。“汽车制动失效指示器”项目是解决这一全球性问题的方法。
    的头像 发表于 02-25 16:02 1089次阅读
    汽车制动失效<b class='flag-5'>指示器</b>电路分享

    水位指示器电路图分享

    水位指示器是一种用于测量和显示容器内水位高度的装置。它广泛应用于各种场合,如工业生产、电力系统、水处理工程、农业灌溉等领域。
    的头像 发表于 02-20 15:25 4746次阅读
    水位<b class='flag-5'>指示器</b>电路图分享

    典型指示器电路图分享

    指示器是一种用于提供信息或指示的设备或组件。它的工作原理和作用取决于其应用领域和设计,但通常都是通过视觉、听觉或触觉等方式向用户传递信息。
    的头像 发表于 02-12 12:24 1401次阅读
    典型<b class='flag-5'>指示器</b>电路图分享

    水位指示器电路图分享

    水位指示器是一种用于检测和指示水位的设备。它通常采用简单的机制来工作,如利用静压力原理将水位信号转换为电信号输出到控制仪表,以对被测介质的液位、密度等进行自动检测并报警。
    的头像 发表于 02-12 09:29 3886次阅读
    水位<b class='flag-5'>指示器</b>电路图分享

    水位指示器电路图分享

    水位指示器是一种用于检测和指示水位的设备。它通常采用简单的机制来工作,如利用静压力原理将水位信号转换为电信号输出到控制仪表,以对被测介质的液位、密度等进行自动检测并报警。
    的头像 发表于 02-12 09:20 1553次阅读
    水位<b class='flag-5'>指示器</b>电路图分享

    电池电量指示器电路图分享

    电池电量指示器是一种装置,也被称为电眼,用于指示蓄电池的电量或充电程度。当电量指示器显示绿色时,表示电瓶电量充足,电瓶是完好的;当电量指示器显示黑色时,表示电瓶电量不足需要充电了;当电
    的头像 发表于 02-07 18:18 9012次阅读
    电池电量<b class='flag-5'>指示器</b>电路图分享

    故障指示器的作用

    故障指示器在电力系统中扮演着非常重要的角色,通过监测电力设备的状态变化,及时反馈故障信息,以帮助运维人员快速定位和解决问题,从而提升电力系统的安全性和可靠性。 首先,故障指示器可以用来监测电力设备
    的头像 发表于 12-27 11:06 1340次阅读