RGB手电筒DIY图解

步骤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:用光着色
现在您已经建立了手电筒,请打开它并对其进行一些乐趣。

关于人工智能应用端三大领域介绍
igbt功率管怎么检测好坏?
回顾华虹宏力获“最具发展潜力企业”奖的介绍和说明
被号称手游神器的iPhone7Plus、三星S8、红辣椒4A、努比亚Z17能给我们什么样的体验?
中国5G发展是华为登顶智能手机市场的关键
RGB手电筒DIY图解
关于自动驾驶功能确认试验的研究
微软发布第33个Win 10兼容补丁 想要升级Win 10必不可少
中国移动NZONE S7正式开售 1699元起
可穿戴设备向医疗领域迈进,无痛检测血糖
Linux如何修改主机名命令
xMate 七轴柔性协作机器人的特性以及应用领域
滤波器的选型原则和分类
9-75VDC超宽输入范围非隔离电源模块—K78Uxx-1000R3(L)系列
中国酒店机器人行业市场行情及发展前景
AKGN20NC耳机评测 到底值不值得买
智能线激光轮廓扫描仪ZLDS202用于汽车轮胎轮廓、胎纹深度检测
深度测评2015款哈弗H1 1.5L AMT
武维华奥比中光调研 现场体验了3D感知技术在多领域的应用
关于智能传感器与现代汽车电子的简要分析