在这篇文章中,我们将使用Arduino构建LED条状控制器电路,它可以使用普通的红外遥控器来开启/关闭和降低/增加LED的亮度。
什么是LED灯条?(新手)
如果你不熟悉LED灯条,让我们来了解一下它是什么。
LED带灯(有时也称为带灯)是由一系列明亮的LED和控制电路组成的柔性PCB, LED带上的元件是贴片(SMD)。
用于装饰家庭、聚会场所、节日期间的户外活动等。
背面有粘性层,可粘贴在墙壁、木材或任何光滑表面,不需要粘合剂。
它有不同的长度,宽度,颜色,在这个项目中,我们将控制单色LED带。但如果你想单独控制RGB颜色,你可以修改给定的代码和电路。
根据规格的不同,LED条的工作电压为12V或24V,但在这个项目中,24V并不适合,因为arduino板的设计不适合处理24V。也有USB类型的LED带,可以工作在5V,需要对电路进行适当的修改才能在这个项目中使用。
到现在你应该已经了解LED灯条。
LED灯条需要控制器电路,这是现成的市场,但那些是昂贵的。在这个项目中,我们将构建一个简单和廉价的电路,可以通过任何红外遥控器控制LED灯条。
线路图:
电路由几个组件组成:带耦合电容的电压调节器、TSOP1738红外传感器、MOSFET IRFZ44N、LED条和arduino Uno项目的大脑。您可以为这个项目选择您最喜欢的arduino板。
TSOP1738传感器接收来自遥控器的红外信号,并以微控制器能够理解的方式进行解码。n沟道MOSFET放大来自arduino的信号并馈送到LED带。
电压调节器为arduino和LED带供电。确保你的电源能提供足够的电流给LED带。
该电路是为12V LED带设计的,您可以根据LED带的规格改变电压调节器。建议不要使用额定电压高于20V的LED带,因为arduino的绝对最大值是20V。
该电路可实现LED带的开断;通过对LED带施加不同的PWM信号,可实现亮度上下5级调节。
如何测试
要完成这些操作,请遵循以下说明:
•选择遥控器上的任何3个按钮,你将控制电路。我们需要知道这些按钮的十六进制代码
•打开IDE,进入文件>examples>IRremote>IRrecvDemo
•安装完成后,将USB连接到arduino和PC(没有外部电源),上传代码并打开串行监视器。
•现在按下每个按钮一次,你会看到它的十六进制代码在串行监视器上,并记录下来。这些十六进制代码需要和给定的程序一起上传到arduino。
注意:
该电路用于控制单色LED灯条。如果你有多色LED带短的RGB端子(呈白色),其余电路是一样的。
程序代码:
//--------- 项目由R.Girish ---------//
# include < IRremote.h >
int X;
int Y;
Int output = 9;
int W = 5;
Int receive = 10;
IRrecv IRrecv(接收);
decode_results Z;
无效的设置()
{
irrecv.enableIRIn ();
Y = 0;
X = 255;
pinMode(输出,输出);
}
无效循环()
{
如果(irrecv.decode (z))
{
if (Z.value==0x80C) //开/关十六进制码
{
如果(Y = = 0)
{
digitalWrite(输出、高);
Y = 1;
}
其他的
{
digitalWrite(输出、低);
Y = 0;
X = 255;
}}
if (Z.value==0x811 && Y==1) //降低亮度的十六进制代码
{
如果(x - 255 / W < 0)
{
analogWrite(输出,X);
}
其他的
{
X = X - 255 / W;
analogWrite(输出,X);
}}
if (Z.value==0x810 && Y==1) //增加亮度的十六进制代码
{
如果(X + 255 / W > 255)
{
analogWrite(输出,X);
}
其他的
{
X = X + 255 / W;
analogWrite(输出,X);
}}
irrecv.resume ();
}}
//--------- 项目由R.Girish ---------//
注意:
用以“0x”开头的十六进制代码替换0x80C、0x810和0x811