电子发烧友App

硬声App

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

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

3天内不再提示
电子发烧友网>电子资料下载>电子资料>使用RGB LED和Netduino显示彩虹色

使用RGB LED和Netduino显示彩虹色

2022-11-08 | zip | 0.26 MB | 次下载 | 2积分

资料介绍

描述

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

  • 第 1 部分:循环检查 RGB LED 上的红色、绿色和蓝色引脚,以确保它们正确接线。
  • 第 2 部分:只需几行代码,即可使 LED 发出所有可能的颜色。

RGB(红、绿、蓝)LED灯是具有四个腿的二极管 - 一个用于提到的每种颜色,一个用于共阴极(接地)或共阳极 (vcc),这也是最长的一个。

 
pYYBAGNomZ6AWC4wAAAkjYM8I8s842.png
共阴极和共阳极 RGB LED
 

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

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

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

组装电路

共阴极RGB LED

 
pYYBAGNomaSAESgEAALQPHokmIs729.png
共阴极RGB LED电路
 

共阳极 RGB LED

 
poYBAGNomaiAdUp-AALINI9_mXY023.png
共阳极RGB LED电路
 

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

创建一个 Netduino 项目

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

添加 Netduino.Foundation NuGet 包

视窗

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

 
pYYBAGNomWqAEDA1AACr4qxL74Q42.jpeg
 

苹果系统

在解决方案资源管理器中按住 Alt 键单击您的RgbPwmLed项目,然后单击添加 => 添加 Nuget 包以打开 NuGet 包窗口。搜索Netduino.Foundation包并单击Add Package将其添加到您的项目中。

 
poYBAGNoma-AG0h7AAB8PGdq7A408.jpeg
 

第 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对象,在一个 while 无限循环中,我们正在调用SetColor(Color color)方法,以十六进制代码传递红色、绿色和蓝色,并使线程休眠一秒钟。您还可以声明以 RGB 或 HSA 值指定的颜色,甚至是预定义的命名颜色。

此外,要跟踪 LED 上当前显示的颜色,您可以使用Debug.Print 指示程序始终显示的颜色,以确保正确连接所有 LED 支脚。

运行项目

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

RGB LED 上的 Netduino 循环引脚
 

第 2 部分:使 RGB LED 通过所有色调发光

在这一部分中,让我们为项目增添一些趣味。让我们编写一个小算法来遍历色相光谱中所有 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)以适中的速度查看所有颜色。

运行项目

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

 
 

第 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);
}
...

运行项目

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

使用 StartRunningColors 的 RGB LED
 

我建议您查看RgbPwmLed 官方文档,这样您就可以看到还有哪些有趣的 API 方法可以让您在使用 RGB LED 时更轻松地工作。

查看 Netduino.Foundation!

就您可以使用 Netduino.Foundation 做的大量令人兴奋的事情而言,这个项目只是冰山一角。

  • 它带有一个庞大的外围驱动程序库,其中包含最常见的传感器和外围设备的驱动程序。
  • 外围驱动程序封装了核心逻辑并公开了一个简单、干净、现代的 API。
  • 这个项目得到了一个不断发展的社区的支持,该社区不断致力于构建很酷的互联事物,并且总是很高兴能帮助新人并讨论新项目。

参考

  • 电子基础知识 - RGB LED 如何工作?

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1NB-IoT芯片厂商的资料说明
  2. 0.31 MB   |  22次下载  |  1 积分
  3. 2智慧监狱建设的核心终端—智慧监仓屏
  4. 0.25 MB   |  2次下载  |  免费
  5. 3PC318C016M/D 200V半桥栅极驱动器技术手册
  6. 0.77 MB   |  2次下载  |  免费
  7. 45.0SMDJ200A单向TVS瞬态抑制二极管规格书
  8. 0.88 MB   |  1次下载  |  免费
  9. 5PC318C041EQ 200V半桥栅极驱动器技术手册
  10. 0.50 MB   |  次下载  |  免费
  11. 6PC318C042NM 200V半桥栅极驱动器技术手册
  12. 0.55 MB   |  次下载  |  免费
  13. 7技嘉H110主板IT8628E_BX IO电路图资料
  14. 2.61 MB   |  次下载  |  1 积分
  15. 8H110主板CPU PWM芯片ISL95858HRZ-T核心供电电路图资料
  16. 0.63 MB   |  次下载  |  1 积分

本月

  1. 1元宇宙深度解析—未来的未来-风口还是泡沫
  2. 6.40 MB  |  241次下载  |  免费
  3. 2元宇宙底层硬件系列报告
  4. 13.42 MB  |  184次下载  |  免费
  5. 32022 年展望報告 – 半導體產業
  6. 1.43 MB  |  136次下载  |  免费
  7. 4晶振与滤波器应用电路《电子工程师必备:元器件应用宝典》
  8. 1.57 MB  |  90次下载  |  免费
  9. 5汽车电子行业深度解析:智能化与电动化方兴未艾
  10. 6.47 MB  |  71次下载  |  免费
  11. 6中国DPU行业白皮书
  12. 23.80 MB  |  37次下载  |  免费
  13. 7晶科鑫代理线-微盟电子2021年度产品目录选型手册
  14. 14.75 MB  |  27次下载  |  免费
  15. 8NB-IoT芯片厂商的资料说明
  16. 0.31 MB   |  22次下载  |  1 积分

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935137次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420064次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233089次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191425次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183352次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81602次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73822次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65991次下载  |  10 积分