资料介绍
描述
该项目使用Netduino.Foundation库中包含的RgbPwmLed类。本指南由三部分组成:
- 第 1 部分:循环检查 RGB LED 上的红色、绿色和蓝色引脚,以确保它们正确接线。
- 第 2 部分:只需几行代码,即可使 LED 发出所有可能的颜色。
- 第 3 部分:探索Netduino.Foundation库提供的更有用的 LED API 方法。
RGB(红、绿、蓝)LED灯是具有四个腿的二极管 - 一个用于提到的每种颜色,一个用于共阴极(接地)或共阳极 (vcc),这也是最长的一个。
在这个项目中,您可以使用共阳极或共阴极 RGB LED。只需确保构建与您使用的 LED 对应的电路即可。
Netduino.Foundation是一个使用 Netduino 上的 .NET MicroFramework 快速构建连接事物的平台。由Wilderness Labs创建,它是开源的,由 Netduino 社区维护。
如果您是 Netduino 开发新手,我建议您转到Netduino 入门项目以正确设置您的开发环境。
组装电路
共阴极RGB LED
共阳极 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;它应该是第一个搜索结果。单击安装按钮。
苹果系统
在解决方案资源管理器中按住 Alt 键单击您的RgbPwmLed项目,然后单击添加 => 添加 Nuget 包以打开 NuGet 包窗口。搜索Netduino.Foundation包并单击Add Package将其添加到您的项目中。
第 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 每秒循环显示红色、绿色和蓝色,如下图所示:
第 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);
}
...
运行项目
现在运行项目时,您会看到如下内容:
我建议您查看RgbPwmLed 官方文档,这样您就可以看到还有哪些有趣的 API 方法可以让您在使用 RGB LED 时更轻松地工作。
查看 Netduino.Foundation!
就您可以使用 Netduino.Foundation 做的大量令人兴奋的事情而言,这个项目只是冰山一角。
- 它带有一个庞大的外围驱动程序库,其中包含最常见的传感器和外围设备的驱动程序。
- 外围驱动程序封装了核心逻辑并公开了一个简单、干净、现代的 API。
- 这个项目得到了一个不断发展的社区的支持,该社区不断致力于构建很酷的互联事物,并且总是很高兴能帮助新人并讨论新项目。
参考
- 基于RGB Gamma曲线LED显示图像的色散校正技术
- RGB混色器Arduino项目
- 如何使用Arduino的RGB Led产生16M色
- WS2812B RGB LED亮度控制和混色开源分享
- 红外遥控rgb七彩LED灯使用说明 15次下载
- 高分辨率RGB LED混色应用笔记 18次下载
- RGB LED在汽车氛围灯中的应用说明 26次下载
- SMD1204 RGB共阴三色贴片LED灯珠的数据手册免费下载 5次下载
- LED灯RGB色盘算法应用程序APP的详细资料免费下载 11次下载
- RGB LED的详细介绍如何通过一个RGB小灯随机产生不同的炫彩颜色 57次下载
- LED白光的成形原理及RGB灯等分别介绍 5次下载
- RGB三色直方图的绘制 17次下载
- RGB三色灯的原理 261次下载
- 6色LED背光模块光学特性
- 三色LED显示屏的设计与实现
- Micro LED显示面板的光学性能研究 1833次阅读
- LCD显示屏的RGB分类 RGB屏的EMI问题和解决方案 3496次阅读
- LED显示屏灰度有多少等级 2914次阅读
- RGB颜色空间与RGB三色中色调、饱和度、亮度之间的关系 8932次阅读
- RGB LED多重色彩光源的挑战及技术解决方法 2351次阅读
- dfrobot8x8 RGB LED Matrix 点阵模块简介 4092次阅读
- 基于RGB-LED的背光驱动系统设计 1696次阅读
- PdigilentRGB OLED显示屏简介 1667次阅读
- 微雪电子树莓派RGB全彩LED扩展|RGB LED HAT介绍 2343次阅读
- 微雪电子树莓派RGB全彩LED扩展|RGB LED HAT (B)介绍 3106次阅读
- 如何提高LED背光的发光效率 3083次阅读
- COB小间距显示技术解决了SMD分立器件LED小间距显示技术的痛点 4781次阅读
- LED舞台和建筑照明色彩控制:基于I2C控制功能LED的13位色彩控制 2272次阅读
- rgb led灯变色原理详解_RGB三基色LED变色程序 10.9w次阅读
- 爱绿Super Diamond LED超广色域显示技术 1314次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多