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

そのほかのカスタム事例

ヴォクシー ZWR80W

ヴォクシー ZWR80W

グリル下の細いメッキをモール化✨ここだけ買うのも抵抗あったので余ってる1.5mmのモールを加工して取り付け✨純正のメッキより太いからいい感じです🫡スピンド...

  • thumb_up 3
  • comment 0
2024/06/20 21:13
ムーヴキャンバス LA800S

ムーヴキャンバス LA800S

第2回GDC×キャンバス合同オフ⑤ここからは自由にコラボ三昧。コラボしたり雑談したり写真撮ったり自由時間。ベージュコラボ。ここから増殖してキャンバス12台...

  • thumb_up 3
  • comment 0
2024/06/20 21:12
Z4

Z4

619リバイバルツーリング続編‼️本当お天気で良かったですね~👍👍リバイバルでランチを済ませいざ三浦半島東京湾側へ‼️定番の宮川公園に寄りいつもの桟橋に寄...

  • thumb_up 11
  • comment 0
2024/06/20 21:11
デリカD:5 CV1W

デリカD:5 CV1W

作業日:2023年8月3日「夏休みの工作用にどうですか?原寸PDF付スマートキー用カッティングシートプロテクター」夏休みなので以前作ったスマートキー用のカ...

  • thumb_up 6
  • comment 0
2024/06/20 21:11
プリウス MXWH60

プリウス MXWH60

今日は妻と2人で千葉の富津市まで。途中、京葉道路の幕張PAでトイレ休憩した時白プリと遭遇したので、一枚パチリ📷旬の黄金アジを食べに『磯料理マルゴ』まで。限...

  • thumb_up 6
  • comment 0
2024/06/20 21:11
N-WGN カスタム JH4

N-WGN カスタム JH4

今日も相変わらず会社帰りにCD録音。今日は、泉谷しげるのアルバムとベスト、吉田拓郎のベスト、電気グルーヴのシングル、邦楽オムニバス、松本隆が作詞提供した曲...

  • thumb_up 9
  • comment 0
2024/06/20 21:10
ハイゼットデッキバン S100W型

ハイゼットデッキバン S100W型

海と空と水色デッキバン

  • thumb_up 4
  • comment 0
2024/06/20 21:10
bB QNC21

bB QNC21

ストリートビューで懐かしの仕様発見!この時まとまってた気がする関係ないですが、このタイヤ欲しい人いますか?155/55R15で15インチのホイール使ってた...

  • thumb_up 4
  • comment 0
2024/06/20 21:10

おすすめ記事