HueDial¶
この例では、回転ノブの位置に基づいてRGB LEDの色を制御します。 ノブの異なる位置は異なるHUE値に対応し、これらはRGB色値に変換され、RGB LEDの色が変わります。
必要なコンポーネント
このプロジェクトには以下のコンポーネントが必要です。
全体のキットを購入すると便利です。こちらがリンクです:
名称 |
このキットのアイテム数 |
リンク |
---|---|---|
Elite Explorer Kit |
300+ |
以下のリンクから別々に購入することもできます。
コンポーネント紹介 |
購入リンク |
---|---|
- |
|
配線図
回路図
コード
注釈
ファイル
03_huedial.ino
をelite-explorer-kit-main\fun_project\03_huedial
のパスから直接開くことができます。または、このコードをArduino IDEにコピーしてください。
どのように動作しますか?
以下はコードの詳細な説明です:
グローバル変数の定義:
redPin
,greenPin
,bluePin
:それぞれ赤、緑、青のLEDに接続されたPWMピンを定義します。KNOB_PIN
:回転ノブに接続されたアナログ入力ピンを定義します。setup()
:RGB LEDのピンを出力として設定します。 アナログピンはデフォルトで入力として設定されているので、ノブのピンの入力モードを設定する必要はありません。
loop()
:回転ノブの値を読み取ります。この値は0から1023の範囲です。 ノブの値を0-1の範囲に正規化します。 正規化された値を0-360の範囲のHUE値に変換します。 HUE値をRGB値に変換します。 これらのRGB値を使用してLEDの色を更新します。
setColor()
:RGB LEDの色を設定するために、各LEDピンに対して
analogWrite()
関数を使用して適切なPWM値を設定します。HUEtoRGB()
:この関数はHUE値をRGB値に変換します。これはHSLからRGBへの変換方法を使用しますが、彩度と明るさを100%に保ちながらHUEコンポーネントにのみ焦点を当てます。 アルゴリズムは6段階に分けられ、それぞれ60度をカバーしています。 各HUE段階のRGB値を計算し、それらの値を
analogWrite()
関数に対して期待される0-255の範囲にスケーリングします。