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

そのほかのカスタム事例

フェアレディZ HZ33

フェアレディZ HZ33

久しぶりの投稿乗り心地が悪くドライブが苦痛だなあ…なんて思ってたんですが、思い切ってタイヤを変えてみました!スポーツタイヤではなくなったけど乗り心地はかな...

  • thumb_up 0
  • comment 0
2025/10/16 02:44
ジェイド FR4

ジェイド FR4

こんな時間にコンビニ行って良かった。いや良くないんやけどまさかの釘が…

  • thumb_up 0
  • comment 0
2025/10/16 02:39
シルビア S14 後期

シルビア S14 後期

来週には車検いけそうだそうで…🫶納車近づいてて最高✌️初、N-Styleお邪魔して興奮した…めっちゃ嬉しすぎてやばい😭

  • thumb_up 3
  • comment 0
2025/10/16 02:36
3シリーズ セダン 320i

3シリーズ セダン 320i

  • thumb_up 0
  • comment 0
2025/10/16 02:32
S660

S660

超久しぶりの投稿です。フロントタイヤ165-50-16から165-45-16に変えた。タイヤと車高調で2cm下げた。もうちょっと下げれそうだけど、現状でウ...

  • thumb_up 2
  • comment 0
2025/10/16 02:32
グレイス GM9

グレイス GM9

お久しぶりです。久しぶりの投稿です!秋の初めに馬仙峡へすごい山道を走ってきました。

  • thumb_up 3
  • comment 0
2025/10/16 02:11

DC5type-Rのフロントジオメトリー改善〜🤤まずはタイロッド根元を35mm上げ上げ〜😁若干前に出してアッカーマンの調整🎶🤭ここのスライド部にも強度か必...

  • thumb_up 4
  • comment 0
2025/10/16 02:11
N-VAN JJ1

N-VAN JJ1

おはこんばんちは😄信楽のうどん屋狸家分福さんです♪🍜近くで見るとデカい👍陶器?足湯?連休明けの平日なのに人がいっぱい🈵💦半分は陶器の販売と足湯カフェ☕️ギ...

  • thumb_up 5
  • comment 0
2025/10/16 02:08
スカイライン V36

スカイライン V36

今日は横浜の「BARPOLESTAR」前でカメ活🐢📸ここは「あぶない刑事」でも使われた、有名な聖地巡礼場所でもあるんです。ちなみにお隣りの「BARStar...

  • thumb_up 8
  • comment 0
2025/10/16 02:01

おすすめ記事