电子说
步骤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:用光着色
现在您已经建立了手电筒,请打开它并对其进行一些乐趣。
全部0条评论
快来发表一下你的评论吧 !