見出し画像

素人による電子工作の学習記録 5回目〜3つのロータリーポテンショメーターによるRGB LEDの調整


はじめに

 本稿は連載『素人による電子工作の学習記録』の5回目です。前稿の4回目では、ロータリーポテンショメーターを用いてLEDの光度を調整させる方法に関して学習したことを述べました。そして5回目の本稿では、3つのロータリーポテンショメーターを用いてRGB LEDの点灯を調整させる方法に関して学習したことを述べます。 

用いた部品

 今回は下記の(a)-(g)に示した部品を用いました(図1を参照)。(e)に挙げたRGB LEDのRGBとは、Red、Green、Blueの頭文字を表しており、これらの色は光の三原色にあたります。なお、(g)ロータリーポテンショメーターに関しては前稿の4回目をご覧ください。

(a)コントロールボード× 1
(b)ブレッドボード× 1
(c) USBケーブル× 1
(d) Jumper M/M × 15
(e) RGB LED × 1
(f) 抵抗 220Ω × 3
(g) ロータリーポテンショメーター× 3

図1 用いた部品

電子回路の構成

 電子回路の構成は図2の通りです。今回の目標は、図2にある3つのロータリーポテンショメーターを調節して回すことで、RGB LEDを任意の色に点灯させることです。

図2 電子回路の構成

プログラム

 プログラムは下記の通りです。なお、本プログラムで用いた関数はこちらのURLから参照できます。

int LED_pin_R = 11; 
int LED_pin_G = 10;
int LED_pin_B = 9;

void setup(){
  pinMode(LED_pin_R, OUTPUT);
  pinMode(LED_pin_G, OUTPUT);
  pinMode(LED_pin_B, OUTPUT);
}

void loop(){
  int ADC_value;

  ADC_value = analogRead(A0);
  analogWrite(LED_pin_R, map(ADC_value, 0, 1023, 0, 255));

  ADC_value = analogRead(A1);
  analogWrite(LED_pin_G, map(ADC_value, 0, 1023, 0, 255));

  ADC_value = analogRead(A2);
  analogWrite(LED_pin_B, map(ADC_value, 0, 1023, 0, 255));  
}

RGB LEDの調整

 結果は図3-6のようになりました。これらの図において、右側のロータリーポテンショメーターが赤色のLED、中央のロータリーポテンショメーターが緑色のLED、左側のロータリーポテンショメーターが青色のLEDに対応しています。
 図3-5は1つのロータリーポテンショメーターのみを回した場合を表しており、赤、緑、青の単色でLEDがそれぞれ点灯しています。一方、図6では3つのロータリーポテンショメーターを任意に回した場合を表しており、光の三原色によると、各ロータリーポテンショメーターの回し方を調整すれば大抵の色を表すことができるようです。

図3 右側のロータリーポテンショメーターのみを最大に回した場合
図4 中央のロータリーポテンショメーターのみを最大に回した場合
図5 左側のロータリーポテンショメーターのみを最大に回した場合
図6 全ロータリーポテンショメーターを任意に回した場合

後記

 本稿も5回目となり、素人ながら少しずつ電子工作らしいものを読者の皆さんにご覧いただけるようになった印象を受けています。本連載の1回目でも述べた通り、私はFreenoveの電子工作キットに付随する電子版のチュートリアルを用いて電子工作の学習をしているのですが、本稿でこのチュートリアルの1/3までの学習を終えたことになります。やはり、読者の皆さんに学習過程を公開することで、三日坊主の私でも電子工作の学習を続けられていますね(詳しくはこちらの記事をご覧ください)。 
 『素人による電子工作の学習記録 』は次回の6回目に続きます。どうぞ引き続きお付き合いください!

***
著者からのお願い
 
この記事がよいと思っていただけましたら、下記にある「スキ」のアイコンをクリックしていただけますと非常に励みになります。「スキ」の数に応じて、今後に執筆する記事の内容を参考にさせていただきます。
 また、下記にある「気に入ったらサポート」をクリックしていただき、著者をサポートしてくださいましたら望外の喜びです。 

著者のXアカウント 
ハカセさん@since20230823
https://twitter.com/since20230823

この記事が気に入ったらサポートをしてみませんか?