介紹

最近聖誕節外面看到一堆燈飾亮晶晶的真的是很迷人對吧!好想把外頭的裝飾品都拿進來房間裡,偷偷跟你講,我有辦法!

準備材料

紅外線接收器
全彩RGB三色
SMD LED模組
紅外線遙控器
9V電池轉接頭
(Arduino)

硬體接線過程

我們將會用紅外線遙控器做為控制燈源顏色變化,當紅外線接收器接收到遙控器所發射出的訊號時,會將收到的訊號碼轉換並控制全彩RGB三色SMD LED模組的燈光顏色變化。

1、將紅外線接收器的接收端與Arduino UNO 板的GND、VCC-5V、Digital端連接

2、將全彩RGB三色SMD LED模組與Arduino UNO板上的Digital端及GND連接

程式碼實作部分

#include <IRremote.h> //將紅外線遙控器所需的程式庫引用進來
int IRPin = 7; //紅外線接收器的Digital腳位
int G = 11, R = 10, B = 9,I = 12;//LED模組Digital腳位
int rotate = 0;
IRrecv  IR(IRPin);      
decode_results  results; 
void setup() {
  Serial.begin(9600);
  IR.enableIRIn();
  pinMode(R,OUTPUT);
  pinMode(G,OUTPUT);
  pinMode(B,OUTPUT);
  pinMode(I,OUTPUT);
}

void lightshow(int rr,int gg,int bb,int dt)
{digitalWrite(R,rr);digitalWrite(G,gg);digitalWrite(B,bb);delay(dt);} //點顏色燈的函式
void loop() {

  if (IR.decode(&results)) { Serial.println(results.value); 
    switch (results.value){ //分case去表示當按紅外線遙控器的按鈕會發出什麼燈

   //以下訊號碼可以自行測試
   //LED模組是以三原色(紅、綠、藍)控制

      case 3810010651 : rotate = 0; lightshow(1,0,0,1000); break;
      case 5316027 : rotate = 0;lightshow(0,1,0,1000); break;
      case 4001918335 : rotate = 0;lightshow(0,0,1,1000); break;
      case 1386468383 : rotate = 0;lightshow(1,1,0,1000); break;
      case 3622325019 : rotate = 0;lightshow(1,0,1,1000); break;
      case 553536955 : rotate = 0;lightshow(0,1,1,1000); break;
      case 4034314555 : rotate = 0;lightshow(1,1,1,1000); break;
      case 2538093563 : rotate = 0;lightshow(0,0,0,1000); break;
      case 1217346747 : rotate = 1;break;

    }
    IR.resume();
  }
  if(rotate == 1){ //當為呼吸燈狀態時所用
    
    lightshow(1,0,0,1000); 
    lightshow(0,1,0,1000);
    lightshow(0,0,1,1000);
    lightshow(1,1,0,1000);
    lightshow(1,0,1,1000);
    lightshow(0,1,1,1000);
    lightshow(1,1,1,1000);
    
  }
}

獨立電源

將程式碼輸入後應該就可以看的到美麗的燈光變化了,我們可以外接9V電池,讓整體物件可以置於想要放置的燈罩、聖誕樹等任何裝飾物內使之發亮,我手工做了一個小燈罩,將物件放內讓整間屋子發光發亮吧!

影片展示

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *