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;
}
}

そのほかのカスタム事例

タントカスタム LA600S

タントカスタム LA600S

CTの皆さんお疲れちゃんです! 以前MOVEに付けていた刀のシフトノブをTANTOに付けました🤣 やっぱシフトノブは刀じゃないとしっくり来ない🤣 MOMO...

  • thumb_up 0
  • comment 0
2026/06/10 15:45
500 312141

500 312141

補修&カスタムで長期間預けていた 『ドラえもん号』が戻って来ました〜😊気になっていた剥がれ箇所も 完璧に仕上げてくれています♪シャークアンテナは前595で...

  • thumb_up 1
  • comment 0
2026/06/10 15:44
アトレー

アトレー

リフトアップ完成〜 なかなかのええ感じに仕上がりました 約5cmぐらい上がったかな 交換部品 フトアップキット:シルクロード テララルロッド:シルクロード...

  • thumb_up 3
  • comment 0
2026/06/10 15:42
ランサーエボリューション X

ランサーエボリューション X

お疲れ様です 遅めのランチは喜多方ラーメン坂内です焼豚いっぱい食べた😋やっと手に入った😆イオン寄ったら買っちゃった😅

  • thumb_up 7
  • comment 0
2026/06/10 15:40
コルトラリーアートバージョンR

コルトラリーアートバージョンR

買って3ヶ月のrpf1と71rsがお亡くなりに 夜走り朝帰りの油断した一瞬で…左フロントが1番酷くて左リアは歪んでますけどエア漏れはしてないぽいです 今は...

  • thumb_up 9
  • comment 0
2026/06/10 15:37
フェアレディZ RZ34

フェアレディZ RZ34

ノートNISMOのシートをメルカリにて購入しましたので、Zの純正シートと入替えて診るエアバッグサイドシートキャンセラーとRECARO用シートレールを揃えて...

  • thumb_up 9
  • comment 0
2026/06/10 15:34
コペン L880K

コペン L880K

めちゃくちゃ久々の投稿な気がしますw そしていつの間にか色が変わってますw 純正ビルシュタインのサスのまま走ってたらアッパーマウントのゴムブッシュ千切れま...

  • thumb_up 12
  • comment 0
2026/06/10 15:33
シビック FL1

シビック FL1

洗車からの近場ドライブ🚗お題提出 魅せるサイドラインお題提出 魅せるホイールライン…? あ、そんなの無かった🤣bekoさんがBOOWY聴いてたので真似😁 ...

  • thumb_up 14
  • comment 0
2026/06/10 15:32
カローラツーリング

カローラツーリング

納車! ストレスの無い国産コンパクトへ。 自宅駐車場がやや狭く…

  • thumb_up 10
  • comment 0
2026/06/10 15:31

おすすめ記事