用AI ChatGPT4寫彩虹呼吸燈程式碼

 




下面是一個使用 Arduino 控制共陽極全彩 LED 燈模組來顯示彩虹燈的程式。這段程式使用 PWM 控制 RGB LED 的顏色變化。

首先,確保你有正確的接線,通常紅色連接到 D9,綠色連接到 D10,藍色連接到 D11,陽極接到 VCC

程式說明:

  1. pinMode(): 設定 RGB 引腳為輸出。
  2. loop(): 每次循環都呼叫 rainbowCycle() 函數來改變顏色。
  3. rainbowCycle(): 這個函數用來生成顏色循環,透過調整顏色值來創造彩虹效果。
  4. 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);

}


留言