Gearさんが投稿したArduino・フルカラーLED・PWMに関するカスタム事例|車のカスタム情報はCARTUNE
Gearさんが投稿したArduino・フルカラーLED・PWMに関するカスタム事例

Gearさんが投稿したArduino・フルカラーLED・PWMに関するカスタム事例

2021年04月13日 17時44分

Gearのプロフィール画像

ラジコンカーの灯火をプログラムで制御したいと思って色々と試してみたら、こんなことが出来たので嬉しくて、思わず投稿してしまいました。

クルマの話題でなくて申し訳ありません。

int val = 0;
int val2 = 0;
int WAIT = 10;
int LED_PIN_R = 9;
int LED_PIN_G = 10;
int LED_PIN_B = 11;

void setup(){
pinMode(LED_PIN_R, OUTPUT);
pinMode(LED_PIN_G, OUTPUT);
pinMode(LED_PIN_B, OUTPUT);
}

void loop(){
for(int i=0; i<255; i++){
val = i;
analogWrite(LED_PIN_R, val);
delay(WAIT);
}
for(int i=0; i<255; i++){
val = i;
analogWrite(LED_PIN_G, val);
delay(WAIT);
}
for(int i=0; i<255; i++){
val = i;
analogWrite(LED_PIN_B, val);
delay(WAIT);
}
delay(WAIT);

digitalWrite(LED_PIN_R, HIGH);
digitalWrite(LED_PIN_G, HIGH);
for(int j=255; j>0; j--){
val2 = j;
analogWrite(LED_PIN_B, val2);
delay(WAIT);
}
for(int i=0; i<255; i++){
val = i;
analogWrite(LED_PIN_B, val);
delay(WAIT);
}
delay(WAIT);

digitalWrite(LED_PIN_B, HIGH);
digitalWrite(LED_PIN_R, HIGH);
for(int j=255; j>0; j--){
val2 = j;
analogWrite(LED_PIN_G, val2);
delay(WAIT);
}
for(int i=0; i<255; i++){
val = i;
analogWrite(LED_PIN_G, val);
delay(WAIT);
}
delay(WAIT);

digitalWrite(LED_PIN_G, HIGH);
digitalWrite(LED_PIN_B, HIGH);
for(int j=255; j>0; j--){
val2 = j;
analogWrite(LED_PIN_R, val2);
delay(WAIT);
}
for(int i=0; i<255; i++){
val = i;
analogWrite(LED_PIN_R, val);
delay(WAIT);
}
delay(WAIT);
}

// シームレスを意識して、繰り返しの段差を取り除いた改良型のプログラムです。コメントに動作の概要を記述しておきます。

int val = 0;
int val2 = 0;
int WAIT = 10;
int LED_PIN_B = 9;
int LED_PIN_G = 10;
int LED_PIN_R = 11;

void setup(){
// 3原色の出力定義
pinMode(LED_PIN_B, OUTPUT);
pinMode(LED_PIN_G, OUTPUT);
pinMode(LED_PIN_R, OUTPUT);

// 3原色の立ち上がり 青〜緑〜赤
for(int i=0; i<255; i++){
val = i;
analogWrite(LED_PIN_B, val);
delay(WAIT);
}
for(int i=0; i<255; i++){
val = i;
analogWrite(LED_PIN_G, val);
delay(WAIT);
}
for(int i=0; i<255; i++){
val = i;
analogWrite(LED_PIN_R, val);
delay(WAIT);
}
delay(WAIT);
}

loop(){
// 繰り返し① 赤 減衰〜復元
digitalWrite(LED_PIN_B, HIGH);
digitalWrite(LED_PIN_G, HIGH);
for(int j=255; j>0; j--){
val2 = j;
analogWrite(LED_PIN_R, val2);
delay(WAIT);
}
for(int i=0; i<255; i++){
val = i;
analogWrite(LED_PIN_R, val);
delay(WAIT);
}
delay(WAIT);

// 繰り返し② 緑 減衰〜復元
digitalWrite(LED_PIN_B, HIGH);
digitalWrite(LED_PIN_R, HIGH);
for(int j=255; j>0; j--){
val2 = j;
analogWrite(LED_PIN_G, val2);
delay(WAIT);
}
for(int i=0; i<255; i++){
val = i;
analogWrite(LED_PIN_G, val);
delay(WAIT);
}
delay(WAIT);

// 繰り返し③ 青 減衰〜復元
digitalWrite(LED_PIN_G, HIGH);
digitalWrite(LED_PIN_R, HIGH);
for(int j=255; j>0; j--){
val2 = j;
analogWrite(LED_PIN_B, val2);
delay(WAIT);
}
for(int i=0; i<255; i++){
val = i;
analogWrite(LED_PIN_B, val);
delay(WAIT);
}
delay(WAIT);
}

/*
ArduinoとLEDの接続はブレッドボードを使わずに行えます。

方法は、LEDのGNDピンを少し前方へ曲げ、他の3本のピンをArduinoのデジタル9、10、11番ピンソケットに刺して、GND だけ別途配線してLEDとArduinoの接続は完了です。

こちらの方が分かりやすいかと思い同じような動作を異なるプログラムで記述してみました。ついでに少しだけゆったりとさせました。*/

int WAIT = 10;
int WAIT2= 50;
int STEP = 1;
int LED_PIN_R = 9;
int LED_PIN_G = 10;
int LED_PIN_B = 11;

void setup(){
pinMode(LED_PIN_R, OUTPUT);
pinMode(LED_PIN_G, OUTPUT);
pinMode(LED_PIN_B, OUTPUT);

int i=0;
while(i<=255){
analogWrite(LED_PIN_R, i);
delay(WAIT);
i=i+STEP;
}
i=0;
while(i<=255){
analogWrite(LED_PIN_G, i);
delay(WAIT);
i=i+STEP;
}
i=0;
while(i<=255){
analogWrite(LED_PIN_B, i);
delay(WAIT);
i=i+STEP;
}
delay(WAIT);
}

void loop(){
digitalWrite(LED_PIN_R, HIGH);
digitalWrite(LED_PIN_G, HIGH);
int i=255;
while(i>=0){
analogWrite(LED_PIN_B, i);
delay(WAIT);
i=i-STEP;
}
delay(WAIT2);
i=0;
while(i<=255){
analogWrite(LED_PIN_B, i);
delay(WAIT);
i=i+STEP;
}
delay(WAIT);

digitalWrite(LED_PIN_B, HIGH);
digitalWrite(LED_PIN_R, HIGH);
i=255;
while(i>=0){
analogWrite(LED_PIN_G, i);
delay(WAIT);
i=i-STEP;
}
delay(WAIT2);
i=0;
while(i<=255){
analogWrite(LED_PIN_G, i);
delay(WAIT);
i=i+STEP;
}
delay(WAIT);

digitalWrite(LED_PIN_G, HIGH);
digitalWrite(LED_PIN_B, HIGH);
i=255;
while(i>=0){
analogWrite(LED_PIN_R, i);
delay(WAIT);
i=i-STEP;
}
delay(WAIT2);
i=0;
while(i<=255){
analogWrite(LED_PIN_R, i);
delay(WAIT);
i=i+STEP;
}
}

そのほかのカスタム事例

キューブ Z12

キューブ Z12

いつもの日常🅿️暑すぎます〜🥵

  • thumb_up 0
  • comment 0
2025/08/03 10:22
ハリアー ZSU65W

ハリアー ZSU65W

ちょうど1年前‼️今年‼️虫無理😭そして暑すぎて無理😭

  • thumb_up 1
  • comment 0
2025/08/03 10:22
Nボックスカスタム JF3

Nボックスカスタム JF3

あのベンチ!

  • thumb_up 2
  • comment 0
2025/08/03 10:21
アトレーワゴン S331G

アトレーワゴン S331G

今日は足車のオイル交換来ました、近くにオートバックスとジェームスあるけど今回はジェームスで初めてのオイル交換です、金額は少し高いとも聴いているけどその辺は...

  • thumb_up 2
  • comment 0
2025/08/03 10:21
アクセラスポーツ BMEFS

アクセラスポーツ BMEFS

毎日暑いですね🥵💦日中のお出掛けは気合いが必要です…先週末にDにて、警告⚠️ランプ点灯の点検と履歴を消してもらいスッキリ⁉️バッテリー早期交換と言われたが...

  • thumb_up 2
  • comment 0
2025/08/03 10:21
レヴォーグ VM4

レヴォーグ VM4

Dにてデフオイル交換してます!まだまだ乗りますよ😁

  • thumb_up 2
  • comment 0
2025/08/03 10:21
インプレッサ

インプレッサ

先日殿ダム行ってきました✨ロックフィルダム外観から平成のピラミッドと言われているそうです当日は少年サッカー⚽️の大会があったのでメイン駐車場でも写真撮った...

  • thumb_up 2
  • comment 0
2025/08/03 10:20
レヴォーグ VMG

レヴォーグ VMG

Tが島のポリマー洗車激混みの為オカモトのオクタン価が高いのかなんなのか必ずレスポンスが上がるハイパワーハイオクを入れてトイレットペーパーを貰って(今日はテ...

  • thumb_up 2
  • comment 0
2025/08/03 10:18
ゼストスパーク

ゼストスパーク

14インチエーテックホイール変えました👍️

  • thumb_up 6
  • comment 0
2025/08/03 10:14

おすすめ記事