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

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

3天内不再提示

怎样用NetduinoFoundation控制RGBLED

454398 来源:工程师吴畏 2019-08-05 09:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

这个项目使用 Netduino.Foundation 库中包含的RgbPwmLed 类。本指南由三部分组成:

第1部分:循环通过RGB LED上的红色,绿色和蓝色引脚,确保它们正确接线。

第2部分:只需几行代码就可以让LED焕发所有可能的色调。

第3部分:探索由Netduino.Foundation Library提供的更有用的LED API方法。

公共阴极和公共阳极RGB LED

在此项目中,您可以使用共阳极或共阴极RGB LED。只需确保构建与您正在使用的LED相对应的电路。

Netduino.Foundation 是一个使用Netduino上的.NET MicroFramework快速构建连接内容的平台。由Wilderness Labs创建,它是开源的,由Netduino社区维护。

如果你是Netduino开发的新手,我建议你去Netduino项目入门,正确设置你的开发环境。

组装电路

公共阴极RGB LED

共阴极RGB LED的电路

公共阳极RGB LED

共阳极RGB LED的电路

注意:请注意,两个电路中都没有使用寄存器。通常,通过全电压可以烧毁LED。但是,Netduino.Foundation可以使用PWM信号自动控制正向电压。

创建Netduino项目

在Visual Studio 2015 for Windows或最新的Visual Studio for Mac中创建Netduino项目;将项目命名为 RgbPwmLed 。

添加Netduino.Foundation NuGet包

Windows

右键单击RgbPwmLed项目,然后单击Manage NuGet包。在“浏览”选项卡中,搜索Netduino.Foundation;它应该是第一个搜索结果。单击“安装”按钮。

macOS

按住Alt键点击 RgbPwmLed 项目在 解决方案资源管理器 中,然后单击 添加=》添加Nuget包 打开NuGet包窗口。搜索 Netduino.Foundation 软件包,然后单击 添加软件包 将其添加到项目中。

第1部分:使RGB LED发红光,绿光和蓝光

在Program.cs文件中,粘贴以下代码:

using Microsoft.SPOT;

using Netduino.Foundation;

using System.Threading;

using N = SecretLabs.NETMF.Hardware.Netduino;

namespace RgbPwmLed

{

public class Program

{

public static void Main()

{

// create a new pwm controlled RGB LED on pins

// Red = 11, Green = 10, and Blue = 9.

var rgbPwmLed = new Netduino.Foundation.LEDs.RgbPwmLed(

N.PWMChannels.PWM_PIN_D11,

N.PWMChannels.PWM_PIN_D10,

N.PWMChannels.PWM_PIN_D9,

2.1f,

3.0f,

3.0f,

false);

// run forever

while (true)

{

rgbPwmLed.SetColor(Color.FromHex(“#FF0000”));

Debug.Print(“=========== RED! ===========”);

Thread.Sleep(1000);

rgbPwmLed.SetColor(Color.FromHex(“#00FF00”));

Debug.Print(“=========== GREEN! ===========”);

Thread.Sleep(1000);

rgbPwmLed.SetColor(Color.FromHex(“#0000FF”));

Debug.Print(“=========== BLUE! ===========”);

Thread.Sleep(1000);

}

}

}

}

在 Main 方法中,我们创建了一个新 RgbPwmLed 名为 rgbPwmLed 的对象。在构造函数中,我们指定用于控制LED的引脚。由于我们没有使用电阻,我们分别为每个引脚包括正向电压(红色为2.1V,绿色和蓝色为3.0V)。构造函数中的最后一个参数是可选的,它的布尔值 isCommonCathode 标志(默认为true)。根据您正在使用的电路相应地设置此值。

现在使用 rgbPwmLed 对象,在一个无限循环内,我们调用 SetColor(颜色)方法,传递红色,绿色和蓝色十六进制代码,并使线程休眠一秒钟。您还可以声明以RGB或HSA值指定的颜色,甚至是预定义的命名颜色。

此外,为了跟踪LED当前显示的颜色,您可以使用调试.Print 指示程序始终显示的颜色,只是为了确保正确连接所有LED支脚。

运行项目

单击Visual Studio中的运行按钮以查看RGB LED的运行情况!您应该看到LED每秒循环显示红色,绿色和蓝色,如下面的gif:

RGB LED灯红色,绿色和蓝色

第2部分:使RGB LED焕发所有色调

在这部分中,让我们稍微调整一下项目。让我们编写一个小算法来遍历Hue频谱中的所有360种颜色。为何360?使用色相,饱和度,亮度和Alpha颜色模型,它具有圆柱形几何形状,并以完全饱和度和alpha值通过每个度数,它将显示RGB光谱内的所有颜色。

删除 While(true)循环内的代码,然后粘贴 For 循环。它应该如下所示:

。..

while (true)

{

// loop through the entire hue spectrum (360 degrees)

for (int i = 0; i 《 360; i++)

{

var hue = ((double)i / 360F);

Debug.Print(hue.ToString());

// set the color of the RGB

rgbPwmLed.SetColor(Color.FromHsba(((double)i/360F), 1, 1));

// for a fun, fast rotation through the hue spectrum:

//Thread.Sleep (1);

// for a moderate walk through the forest of colors;

Thread.Sleep(10);

}

}

。..

在 For 中,我们声明一个本地双色调并分配结果划分i/360。之后,我们在 rgbPwmLed 对象上调用 SetColor(Color.FromHsba(hue,1,1))方法,最后执行 Thread.Sleep( 10)以适中的速度查看所有颜色。

运行项目

现在运行项目时,您应该看到像这样的东西:

RGB LED循环通过不同的色调

第3部分:使用StartRunningColors方法

你应该检查的另一个有用的API方法是 StartRunningColors ,它包括传递一个颜色列表以及每个人的持续时间。以下代码片段使LED发光 Color.White 1000ms(1s),然后 Color.Aqua 500ms(0.5s),然后 Color.ForrestGreen 1000ms(1s),最后 Color.OrangeRed 500ms(0.5s)。

。..

while (true)

{

// run through various colors for 10 seconds

rgbPwmLed.StartRunningColors(

new System.Collections.ArrayList

{

Color.White,

Color.Aqua,

Color.ForestGreen,

Color.OrangeRed

},

new int[] { 1000, 500, 1000, 500 });

Thread.Sleep(10000);

}

。..

运行项目

当你现在运行项目时,你会看到如下内容:

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

    关注

    244

    文章

    24705

    浏览量

    692388
  • Netduino
    +关注

    关注

    0

    文章

    19

    浏览量

    3553
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入解析ZiLOG Z86E02 SL1925通OTP微控制

    深入解析ZiLOG Z86E02 SL1925通OTP微控制器 在电子设计领域,微控制器是众多项目的核心。ZiLOG的Z86E02 SL1925通OTP(One-Time
    的头像 发表于 04-04 12:15 634次阅读

    电子手轮怎样控制变频器输出

    电子手轮与变频器的协同控制是现代工业自动化领域中一项关键技术,广泛应用于数控机床、纺织机械、包装设备等需要精密调速的场合。其核心原理是通过手轮的脉冲信号实时调节变频器输出频率,从而实现对电机转速的精准控制。本文将深入解析电子手轮控制
    的头像 发表于 03-16 17:35 666次阅读
    电子手轮<b class='flag-5'>怎样</b><b class='flag-5'>控制</b>变频器输出

    UPS不间断电源是怎样排名的?哪家好?

      高科技的发展,让UPS不再是单纯的“备用电池”,而是保障NAS、服务器、家庭数据中心稳定运行的“电力守门员”。面对市面上五花八门的品牌和型号,我们应该怎样选呢?所谓的大品牌到底靠不靠谱呢?今天小编就从拓扑架构、能效表现、智能化程度等硬核技术指标,来拆解UPS不间断电源是怎样
    的头像 发表于 03-12 16:58 497次阅读

    1024 颗 LED 点亮像素创意!涂鸦 T5 AI 像素屏方案,高密度·高兼容·全开源

    (Tuya-T5-Pixels)基于TuyaOpen开源框架打造,采用32x32LED像素矩阵(1024颗WS2812RGBLED),搭配高性能涂鸦T5Wi-Fi/蓝牙芯片模组,
    的头像 发表于 01-29 18:11 416次阅读
    <b class='flag-5'>用</b> 1024 颗 LED 点亮像素创意!涂鸦 T5 AI 像素屏方案,高密度·高兼容·全开源

    请问单片机IO口控制19V5A直流电通断应该怎样实现?

    单片机IO口控制19V 5A直流电通断,不使用继电器,应该怎样实现?
    发表于 01-06 08:18

    请问CW32微控制器的封装类型和尺寸是怎样的?

    CW32微控制器的封装类型和尺寸是怎样的?
    发表于 12-16 07:22

    怎样理解变频器内置PID控制参数的含义

    变频器内置PID控制参数是工业自动化领域中实现精确控制的核心要素,其合理配置直接影响电机调速、压力调节、温度控制等过程的稳定性和响应速度。要深入理解这些参数的含义,需从PID控制原理、
    的头像 发表于 12-06 07:39 2550次阅读

    怎样用艾德克斯IT8900A电子负载测量燃料电池的交流阻抗?

    燃料电池交流阻抗是燃料电池发电性能的关键数据,进行燃料电池的交流阻抗测试可以识别有问题的燃料电池单体及其在组装过程中产生的偏差。
    的头像 发表于 12-01 17:25 703次阅读
    <b class='flag-5'>怎样用</b>艾德克斯IT8900A电子负载测量燃料电池的交流阻抗?

    怎么LL命令读取SPI?

    ;hspi1, mrx_data, 3, HAL_MAX_DELAY);命令读取ADC结果3字节,即时优化后也需要1.95us,远远不能匹配ADC的速度。我想也只有LL命令才会快了,测试了很长时间都不成功。 请教怎么LL命令读取SPI?从cubemx的配置到MDK,需要怎样
    发表于 09-09 08:17

    机智云AI智能体机芯 | 快速使用指南

    PART01设备外观设计PART02使用说明1、通电开机长按开机键3s开机,开机后请先对设备进行重置操作(单击开/关机键五次)。重置完成后,设备会进入配网状态,此时RGBLED会呈「○白蓝色呼吸
    的头像 发表于 08-15 18:27 1716次阅读
    机智云AI智能体机芯 | 快速使用指南

    单片机怎么控制转速

           在工业自动化、智能家居、机器人等领域,单片机控制电机转速是实现精准运动控制的核心技术。通过结合硬件电路设计与软件算法优化,单片机可根据不同应用场景灵活调整电机转速。以下从控制方法、实际
    的头像 发表于 07-25 13:58 1196次阅读

    电气控制设备厂家如何避免 BK 控制变压器的 “陷阱

    BK机床控制变压器电气控制设备厂家们在追求发展的同时,正面临着BK机床控制变压器采购的“陷阱”,一不小心就会陷入困境,影响整个企业的运营与发展,这究竟是怎样的情况呢?一些厂家在采购BK
    的头像 发表于 07-04 13:45 590次阅读
    电气<b class='flag-5'>控制</b>设备厂家如何避免 BK <b class='flag-5'>控制</b>变压器的 “陷阱

    BK 机床控制变压器,怎样避免频繁维修?

    你有没有遇到过BK机床控制变压器频繁维修的烦心事呀?在自动化生产线中,BK机床控制变压器一旦出问题,不仅维修成本高,还会影响整个生产进度呢。BK机床控制变压器从现实情况来看,很多BK机床控制
    的头像 发表于 06-27 11:10 763次阅读
    BK 机床<b class='flag-5'>控制</b>变压器,<b class='flag-5'>怎样</b>避免频繁维修?

    MPS HR1211实现数字PFC+LLC控制器解决方案助力快充适配器

    MPS HR1211实现数字PFC+LLC控制器解决方案助力快充适配器
    的头像 发表于 06-19 15:43 3282次阅读
    <b class='flag-5'>用</b>MPS HR1211实现数字PFC+LLC<b class='flag-5'>控制</b>器解决方案助力快充适配器

    树莓派4 打造专属流媒体控制台!

    树莓派体验DIY智能科技!如今市面上有各种各样的流媒体控制台,但购买现成的哪有自己从零开始制作的有趣呢?至少,这似乎是树莓派创客社区的精神所在,就像创客兼开发者Last-Shake-9874所展示
    的头像 发表于 05-11 08:33 738次阅读
    <b class='flag-5'>用</b> 树莓派4 打造专属流媒体<b class='flag-5'>控制</b>台!