由於Arduino非常受到歡迎,因此有許多針對Arduino設計的輸出入模組就應運而生,這些模組的特色就是會為一些元件建立專屬的連接電路,使其在連接到Arduino時不需要再加上其它的零件,只要接上即可使用。本單元實習中所使用的RGB 3色LED模組就是其中的個常用的模組,它在3色LED上直接加上限流電阻,讓我們在使用的時候,只要直接把各個接腳連接到板子上的數位輸出接腳即可。以下是電路圖:

要再一次強調的是,上圖中所使用的元件我們假設是使用Arduino專用的3色LED模組,如果你用的是一般的3色LED(沒有附小小的電路板的話),一定要如上一個單元實習中所示的一樣,自行加上應用的限流電阻才行。此外,在上圖中,我們連接到Arduino板子上GND接腳那個3色LED針腳上面需要標示的是「-」或旦「GND」才行,其它的3支接腳即分別代表RGB三個顏色。在上圖的例子中,我們分別把它們接到數位數出入的2、3、4等三支接腳。我們使用的3色LED模組如下圖所示:

連接完成的電路如下所示:

硬體線路接好之後,就可以透過以下的程式碼輪流點亮3個顏色:

int LEDRpin = 2;
int LEDGpin = 3;
int LEDBpin = 4;
void setup() {
  pinMode(LEDRpin, OUTPUT);
  pinMode(LEDGpin, OUTPUT);
  pinMode(LEDBpin, OUTPUT);
  digitalWrite(LEDRpin, LOW);
  digitalWrite(LEDGpin, LOW);
  digitalWrite(LEDBpin, LOW);
}

void loop() {
  digitalWrite(LEDRpin, HIGH);
  digitalWrite(LEDGpin, LOW);
  digitalWrite(LEDBpin, LOW);
  delay(500);
  digitalWrite(LEDRpin, LOW);
  digitalWrite(LEDGpin, HIGH);
  digitalWrite(LEDBpin, LOW);
  delay(500);
  digitalWrite(LEDRpin, LOW);
  digitalWrite(LEDGpin, LOW);
  digitalWrite(LEDBpin, HIGH);
  delay(500);
}

執行的結果,如下面的影片所示的樣子:

然而,正如你所想的,RGB只是三種原色,實際上此顆LED可以顯示的顏色是可以混搭的,也就是3個接腳如果都是HIGH的話,那就會變成白色,如果RG是HIGH而B是LOW的話,則是黃色,依此類推。為了方便在程式中調整顏色,我們可以把程式改一下,加上一個專門輸出的函數turn,然後透過該函數來自由地開啟或是關閉其中的顏色,如下所示:

int LEDRpin = 2;
int LEDGpin = 3;
int LEDBpin = 4;

void turn(int r, int g, int b) {
  digitalWrite(LEDRpin, r);
  digitalWrite(LEDGpin, g);
  digitalWrite(LEDBpin, b);  
}

void setup() {
  pinMode(LEDRpin, OUTPUT);
  pinMode(LEDGpin, OUTPUT);
  pinMode(LEDBpin, OUTPUT);
  turn(LOW, LOW, LOW);
}

void loop() {
  turn(HIGH, LOW, LOW);  delay(500);
  turn(LOW, HIGH, LOW);  delay(500);
  turn(LOW, LOW, HIGH);  delay(500);
  turn(HIGH, HIGH, LOW);  delay(500);
  turn(LOW, HIGH, HIGH);  delay(500);
  turn(HIGH, HIGH, HIGH);  delay(500);
}

支援更多顏色執行範例影片如下所示:

 

(471)