首页 / 行业
怎样用NetduinoFoundation控制RGBLED
2019-08-05 09:09:00
这个项目使用 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);
}
。..
运行项目
当你现在运行项目时,你会看到如下内容:
最新内容
手机 |
相关内容
逆变器技术对新能源汽车市场增长的
逆变器技术对新能源汽车市场增长的重要性,市场,新能源汽车,逆变器,控制,高效率,能和,随着全球对环境保护和可持续发展的关注不断增什么是高压接触器,高压接触器的组成
什么是高压接触器,高压接触器的组成、特点、原理、分类、常见故障及预防措施,高压,分类,闭合,用于,操作,损坏,AD694ARZ高压接触器是什么是射流继电器,射流继电器的基本
什么是射流继电器,射流继电器的基本结构、技术参数、工作原理、负载分类、如何选用、操作规程及发展历程,继电器,工作原理,分类,负什么是NFC控制器,NFC控制器的组成、
什么是NFC控制器,NFC控制器的组成、特点、原理、分类、常见故障及预防措施,控制器,分类,模式,移动支付,数据,信号,NFC(Near Field Com什么是电机启动器,电机启动器的基本
什么是电机启动器,电机启动器的基本结构、优缺点、工作原理、类型、检测、操作规程及发展历程,工作原理,类型,检测,结构,启动,断开,电流互感器作用 电流互感器为什么
电流互感器作用 电流互感器为什么一端要接地?,作用,误差,原因,连接,测量,短路故障,电流互感器(Current Transformer,简称CT)是一种用于应用在阀门控制中的直流有刷驱动芯
应用在阀门控制中的直流有刷驱动芯片,芯片,控制,支持,远程控制,电动,调节,直流有刷驱动芯片是一种用于控制直流电机的IPB072N15N3G振弦传感器智能化:电子标签模块
振弦传感器智能化:电子标签模块,模块,传感器,操作,连接,安装,控制,mbrs360t3g振弦传感器是一种常用的测量设备,用于检测物体的振动。