电子发烧友App

硬声App

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

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

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

使用RGB LED和Netduino显示彩虹色

2022-11-08 | zip | 0.26 MB | 次下载 | 免费

资料介绍

描述

该项目使用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. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费