下面是一個使用 Arduino 控制共陽極全彩 LED 燈模組來顯示彩虹燈的程式。這段程式使用 PWM 控制 RGB LED 的顏色變化。
首先,確保你有正確的接線,通常紅色連接到 D9,綠色連接到 D10,藍色連接到
D11,陽極接到 VCC。
程式說明:
- pinMode(): 設定 RGB 引腳為輸出。
- loop(): 每次循環都呼叫 rainbowCycle() 函數來改變顏色。
- rainbowCycle(): 這個函數用來生成顏色循環,透過調整顏色值來創造彩虹效果。
- setColor(): 根據當前的步驟計算 RGB 值,並使用 analogWrite() 設定 LED 顏色。由於是共陽極,因此需要將顏色值反轉。
注意事項:
- 確保你的 LED 燈模組的接線正確。
- 根據 LED 模組的規格調整延遲和亮度。
希望這段程式能幫助你製作美麗的彩虹燈!
程式碼如下:
下面是一個使用 Arduino 控制共陽極全彩 LED 燈模組來顯示彩虹燈的程式。這段程式使用 PWM 控制 RGB LED 的顏色變化。首先,確保你有正確的接線,通常紅色連接到 D9,綠色連接到 D10,藍色連接到 D11,陽極接到 VCC。程式說明:
pinMode(): 設定 RGB 引腳為輸出。loop(): 每次循環都呼叫 breathe () 函數來改變顏色。這個函數用來生成顏色循環,透過調整顏色值來創造彩虹效果。setColor(): 根據當前的步驟計算 RGB 值,並使用 analogWrite() 設定 LED 顏色。由於是共陽極,因此需要將顏色值反轉。
// 定義 RGB 引腳
const int redPin = 9;
const int greenPin = 10;
const int bluePin = 11;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
// 呼吸燈顏色變化
breathe(255, 0, 0); // 紅色
breathe(255, 127, 0); // 橙色
breathe(255, 255, 0); // 黃色
breathe(0, 255, 0); // 綠色
breathe(0, 0, 255); // 藍色
breathe(75, 0, 130); // 靛色
breathe(148, 0, 211); // 紫色
}
void breathe(int r, int g, int b) {
// 漸變亮度上升
for (int brightness = 0; brightness <=
255; brightness++) {
setColor(r, g, b, brightness);
delay(10);
}
// 漸變亮度下降
for (int brightness = 255; brightness >=
0; brightness--) {
setColor(r, g, b, brightness);
delay(10);
}
}
void setColor(int r,
int g, int b, int brightness) {
int redValue = (r * brightness) / 255;
int greenValue = (g * brightness) / 255;
int blueValue = (b * brightness) / 255;
analogWrite(redPin, 255 - redValue); // 共陽極,需取反
analogWrite(greenPin, 255 - greenValue);
analogWrite(bluePin, 255 - blueValue);
}
留言
張貼留言