HueDial

この例では、回転ノブの位置に基づいてRGB LEDの色を制御します。 ノブの異なる位置は異なるHUE値に対応し、これらはRGB色値に変換され、RGB LEDの色が変わります。

必要なコンポーネント

このプロジェクトには以下のコンポーネントが必要です。

全体のキットを購入すると便利です。こちらがリンクです:

名称

このキットのアイテム数

リンク

Elite Explorer Kit

300+

Elite Explorer Kit

以下のリンクから別々に購入することもできます。

コンポーネント紹介

購入リンク

Arduino Uno R4 WiFi

-

ブレッドボード

BUY

ジャンパーワイヤー

BUY

抵抗器

BUY

RGB LED

BUY

ポテンショメーター

BUY

配線図

../_images/03_hue_dial_bb.png

回路図

../_images/03_hue_schematic.png

コード

注釈

  • ファイル 03_huedial.inoelite-explorer-kit-main\fun_project\03_huedial のパスから直接開くことができます。

  • または、このコードをArduino IDEにコピーしてください。

どのように動作しますか?

以下はコードの詳細な説明です:

  1. グローバル変数の定義:

    redPin, greenPin, bluePin:それぞれ赤、緑、青のLEDに接続されたPWMピンを定義します。 KNOB_PIN:回転ノブに接続されたアナログ入力ピンを定義します。

  2. setup()

    RGB LEDのピンを出力として設定します。 アナログピンはデフォルトで入力として設定されているので、ノブのピンの入力モードを設定する必要はありません。

  3. loop()

    回転ノブの値を読み取ります。この値は0から1023の範囲です。 ノブの値を0-1の範囲に正規化します。 正規化された値を0-360の範囲のHUE値に変換します。 HUE値をRGB値に変換します。 これらのRGB値を使用してLEDの色を更新します。

  4. setColor()

    RGB LEDの色を設定するために、各LEDピンに対して analogWrite() 関数を使用して適切なPWM値を設定します。

  5. HUEtoRGB()

    この関数はHUE値をRGB値に変換します。これはHSLからRGBへの変換方法を使用しますが、彩度と明るさを100%に保ちながらHUEコンポーネントにのみ焦点を当てます。 アルゴリズムは6段階に分けられ、それぞれ60度をカバーしています。 各HUE段階のRGB値を計算し、それらの値を analogWrite() 関数に対して期待される0-255の範囲にスケーリングします。