步驟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:用光著色
現在您已經建立了手電筒,請打開它并對其進行一些樂趣。
-
手電筒
+關注
關注
6文章
108瀏覽量
29235 -
RGB
+關注
關注
4文章
807瀏覽量
59918
發布評論請先 登錄
QK1209低壓按鍵充電LED驅動IC技術指南

FRED應用:LED手電筒模擬
納祥科技客戶案例:網紅Type-c迷你強光手電筒方案,超210流明輸出

NS4836 1A線性同步移動電源管理芯片-帶KEY鍵和手電筒功能中文手冊

單節鋰電池手電筒專用LED驅動芯片FP7153:高效率同步降壓方案

手電筒控制芯片 LED高亮低亮閃燈 DFN-10L(EP)戶外應急燈芯片


手電筒控制IC,LED手電筒驅動芯片FP7153同步降壓LED驅動IC應用說明與電路設計原理

解鎖手電電源驅動板焊接密碼:大研智造激光焊錫機優勢
NS4836 1A 線性同步移動電源管理芯片-帶 KEY 鍵和手電筒功能

三檔手電筒集成IC FS5289數據手冊
適用于車燈,手電筒的多功能LED降壓恒流型芯片
一文搞懂掃描電鏡(SEM)技術解讀與大功率半導體模塊封裝解析

評論