RGB手电筒DIY图解

电子说

1.3w人已加入

描述

步骤1:RGB草图

手电筒

此步骤说明arduino progra如何m有效,您可以根据需要跳到下一页。

基本上,该代码允许您使用一个变量而不是三个变量来控制RGB led的颜色。

大多数代码专用于遵循我包含的图形,它显示通过混合不同数量的红色,绿色和蓝色光而产生的颜色。

程序步骤:

1。读取电位计的值

2。将电位计的值转换为更可用的数字范围

3。使用if语句为每种颜色生成红色,绿色和蓝色模拟值。

您可以复制并粘贴代码或下载包含的zip文件。

int rpin = 6;//can be any PWM pin

int bpin = 3;//can be any PWM pin

int gpin = 5;//can be any PWM pin

int rcolor = 255;// holds the coresponding brightness for each color

int gcolor = 255;

int bcolor = 255;

int start = 100;// used for the option startup code

int potv = 0;// Potentiometer voltage

int color =0;//mapped pot value

void setup(){

pinMode(rpin, OUTPUT);

pinMode(gpin, OUTPUT);

pinMode(bpin, OUTPUT);

// color check leave this commented out unless you want to

// have the flashligth cycle through the colors at the beging

// //red

// analogWrite(rpin, 0);

// analogWrite(gpin, 255);

// analogWrite(bpin, 255);

// delay(start);

// //yellow

// analogWrite(rpin, 0);

// analogWrite(gpin, 0);

// analogWrite(bpin, 255);

// delay(start);

// //green

// analogWrite(rpin, 255);

// analogWrite(gpin, 0);

// analogWrite(bpin, 255);

// delay(start);

// //cyan

// analogWrite(rpin, 255);

// analogWrite(gpin, 0);

// analogWrite(bpin, 0);

// delay(start);

// //blue

// analogWrite(rpin, 255);

// analogWrite(gpin, 255);

// analogWrite(bpin, 0);

// delay(start);

// //magenta

// analogWrite(rpin, 0);

// analogWrite(gpin, 255);

// analogWrite(bpin, 0);

}

void loop(){

potv = analogRead(A0); //read Potentiometer position

color=map(potv,0,1023,0,1530);// change input number range

if(color》= 0 && color 《=255){

//red to yellow

gcolor = map(color,0,255,255,0);

analogWrite(rpin, 0);

analogWrite(gpin, gcolor);

analogWrite(bpin, 255);

}

if(color》= 255 && color 《=510){

//yellow to green

rcolor = (color - 255);

analogWrite(rpin, rcolor);

analogWrite(gpin, 0);

analogWrite(bpin, 255);

}

if(color》= 510 && color 《=765){

//green to cyan

bcolor = (color - 510);

bcolor = map(bcolor,0,255,255,0);

analogWrite(rpin, 255);

analogWrite(gpin, 0);

analogWrite(bpin, bcolor);

}

if(color》= 765 && color 《=1020){

//cyan to blue

gcolor = (color - 765);

analogWrite(rpin, 255);

analogWrite(gpin, gcolor);

analogWrite(bpin, 0);

}

if(color》= 1020 && color 《=1275){

//blue to magenta

rcolor = (color - 1020);

rcolor = map(rcolor,0,255,255,0);

analogWrite(rpin, rcolor);

analogWrite(gpin, 255);

analogWrite(bpin, 0);

}

if(color》= 1275 && color 《=1530){

//magenta to red

bcolor = (color - 1275);

analogWrite(rpin, 0);

analogWrite(gpin, 255);

analogWrite(bpin, bcolor);

}

}

第2步:上传程序

手电筒

使用引导加载程序抓取atmega328并将其插入到Arduino Uno中。

首先制作确保atmega328正在工作,请从Arduino IDE的示例菜单中上传眨眼草图。在确认您的芯片工作正常后,上传RGB草图并从Arduino Uno移除atmega328,以供以后使用。

注意:我最初配置的是我的手电筒的atmega328时钟运行在其内部时钟上,尽管最终它确实起作用了,但这并不是一件容易的事。

步骤3:修改手电筒盒

手电筒

手电筒

手电筒

手电筒

首先,您必须确定是要使用原始开关还是将其替换为自己的拨动开关。我更换了开关,是因为我不想尝试焊接到旧的开关上。

之后,您可以在电位器上钻孔,也可以在开关上钻孔。确保测试所有零件是否合适。

接下来,您需要用大功率LED替换原来的灯泡。每个手电筒都会有所不同,但是对于我来说,我卸下了拧紧旧灯泡的灯泡,并用热胶粘上了新的LED。

最后拿起您的护舷板并将其切开,以使其适合我喜欢使用的手电筒中

步骤4:放置组件

手电筒

手电筒

手电筒

我以一种非常规的方式绘制了原理图,因此,如果您有任何疑问,请提出,我将尽力回答。电阻器上的数字是它们的欧姆值,而22欧姆电阻器对则是LED的红色通道。

我强烈建议您在开始将零件焊接到挡板上之前先制定好计划。我没有,起初在将零件安装到手电筒时遇到了麻烦。我建议您将所有零件放在板上,然后用胶带将它们粘下来。然后使用永久性标记画出路径,计划尽可能多的焊接。

步骤5:焊接

手电筒

手电筒

现在是焊接的时候了,希望您的木板要比我的更有条理,但如果有人关心,那么它可以工作。

要在整个挡板上走更长的距离,我想用一块导线和弯曲导线。焊接后,切掉所有多余的导线,并将已编程的atmega328插入其插座。

请确保仔细检查电路,以防止损坏电路。

如果一切正常,请给电路加电以进行测试。

第6步:安装

手电筒

首先要解决所有问题。我首先安装了开关和电位计。然后,我将9伏电池放入并滑入了护舷板。如果不合适,可以尝试向下弯曲一些零件,但是您可能需要将烙铁放回原处并移动一些东西。最后拧上盖子。

步骤7:用光着色

现在您已经建立了手电筒,请打开它并对其进行一些乐趣。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分